Commit Graph

83 Commits

Author SHA1 Message Date
Sean Bright
5de742a483 Properly handle @s within hints in AEL.
AEL was not handling the case of a device hint containing an @ symbol, which
caused parking hints (e.g. hint(park:exten@context)) to error out the parser.
This patch makes AEL treat the @ the same way it treats colon and ampersand
now, meaning the characters are included in verbatim.

(closes issue #14941)
Reported by: bpgoldsb
Patches:
      bug14941.patch uploaded by seanbright (license 71)
Tested by: bpgoldsb


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@189462 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-04-20 20:58:39 +00:00
Steve Murphy
39a6b55183 This patch fixes a regression of sorts that was introduced in
rev 24425.

It basically fixes AST-190/ABE-1782.

What was wrong: the user has 6000 extensions in one context; and
then 6000 contexts, one per extension. The parser could only handle
about 4893 of the 6000 extens in the single context.

This was due to the regression I mentioned. To get rid of
shift/reduce conflicts, Luigi set up right-recursive lists
for globals, context elements, switch lists, and statements.
Right recursive lists got rid of the warnings, but instead, they
use up a tremendous amount of stack space when the lists are long.

I saw this a few years back, and resolved not to fix it until
someone complained. That day has arrived!

After the changes were made, I ran the regression test suite,
and there were no problems.

I took the test case the user provided, and added 100,000 
extensions to the single context, that already had 6,000 extens
in it. (I'll see your 6, and raise you 100!) It takes a few minutes
to read it all in, check it and generate code for it, but no
problems.

So, I think I can say that fundamentally, there are no longer
any limits on the number of items you can place in contexts,
statement blocks, switches, or globals, beyond your virt mem
constraints.




git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@177225 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-02-18 22:43:14 +00:00
Kevin P. Fleming
add5ff5b05 fix a bunch of potential problems found by gcc 4.3.x, primarily bare strings being passed to printf()-like functions and ignored results from read()/write() and friends
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@153337 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-11-01 18:22:39 +00:00
Kevin P. Fleming
50a28e9853 improve header inclusion process in a few small ways:
- it is no longer necessary to forcibly include asterisk/autoconfig.h; every module already includes asterisk.h as its first header (even before system headers), which serves the same purpose
  - astmm.h is now included by asterisk.h when needed, instead of being forced by the Makefile; this means external modules will build properly against installed headers with MALLOC_DEBUG enabled
  - simplify the usage of some of these headers in the AEL-related stuff in the utils directory


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@144924 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-09-27 15:00:48 +00:00
Steve Murphy
4c7393a6a4 closes issue #11086 where a user complains that references to following contexts report a problem; The problem was REALLy that he was referring to empty contexts, which were being ignored. Reporter stated that empty contexts should be OK. I checked it out against extensions.conf, and sure enough, empty contexts ARE ok. So, I removed the restriction from AEL. This, though, highlighted a problem with multiple contexts of the same name. This should be OK, also. So, I added the extend keyword to AEL, and it can preceed the 'context' keyword (mixed with 'abstract', if nec.). This will turn off the warnings in AEL if the same context name is used 2 or more times. Also, I now call ast_context_find_or_create for contexts now, instead of just ast_context_create; I did this because pbx_config does this. The 'extend' keyword thus becomes a statement of intent. AEL can now duplicate the behavior of pbx_config,
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@87168 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-10-26 16:34:02 +00:00
Steve Murphy
94aabf9844 closes issue #11037 -- unable to specify app:spec in hint arguments
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@86936 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-10-24 04:14:28 +00:00
Steve Murphy
b7f66e48e8 closes issue #10777 -- by returning a null for the parse tree when there's really nothing there, and making sure we don't try to do checking on a null tree.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@84239 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-10-01 20:27:52 +00:00
Russell Bryant
d6b8fb4dc0 gcc 4.2 has a new set of warnings dealing with cosnt pointers. This set of
changes gets all of Asterisk (minus chan_alsa for now) to compile with gcc 4.2.
(closes issue #10774, patch from qwell)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@83432 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-09-21 14:37:20 +00:00
Steve Murphy
765b1af228 backport of 80649, a fix to an unreported problem in the ael parser, that results in a crash on a 64bit machine
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@80689 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-24 13:20:18 +00:00
Steve Murphy
dc63d79143 this fixes bug 9883, wherein macros were not allowing the includes construct. fixed and tested, looks OK. Now includes can serve as an adjunct to catch.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@67526 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-06-05 21:30:18 +00:00
Steve Murphy
fd54b47404 These mods fix bug 9623, where an '@' in the eswitch contents causes a syntax error. I also updated the regressions.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@62883 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-05-03 13:54:56 +00:00
Steve Murphy
4d6a91eef0 removed <err.h> as in trunk from the ael stuff. Also, threw in a minor fix to frame.c to avoid build-killing compiler warnings.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@49020 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-12-28 19:21:56 +00:00
Steve Murphy
c37666252d These changes fix the problems reported in bug 8090
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@44380 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-10-04 19:57:08 +00:00
Steve Murphy
834c7265de This commit merges the contents of 7721, as it applied to the trunk version. Added the item that would previously trigger a false error to test1.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@39571 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-08-12 19:28:33 +00:00
Steve Murphy
14c12fed9b The contents of branch teams/murf/bug_7598 are being folded in here.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@39151 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-08-07 12:59:47 +00:00
Steve Murphy
db0b142b06 committing a fix for colons in goto arguments and suppressing operator messages in globals assignments.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@37925 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-07-19 02:55:24 +00:00
Russell Bryant
73ae55698f merge changes from team/murf/AEL-trunk-fixesonly
- fix callerid matching for extensions
 - fix nested switch statements
 - fix compilation with bison 2.1a or higher
(issue #7309)


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@34665 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-06-18 21:36:24 +00:00
Kevin P. Fleming
472c1ca282 simplify autoconfig include mechanism (make tholo happy he can use lint again :-)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@32846 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-06-07 18:54:56 +00:00
Luigi Rizzo
b569ebd593 more simplifications
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@24460 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-05-03 17:07:56 +00:00
Luigi Rizzo
5f612f9ae6 consistent rule for goto...
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@24431 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-05-03 16:58:16 +00:00
Luigi Rizzo
e5b0c721e5 remove another useless nonterminal
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@24430 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-05-03 16:46:55 +00:00
Luigi Rizzo
34d67f7d09 remove a useless nonterminal
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@24429 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-05-03 16:38:50 +00:00
Luigi Rizzo
49227c7ba1 more simplifications
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@24428 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-05-03 16:37:14 +00:00
Luigi Rizzo
7695df3896 remove more shift-reduce conflicts
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@24427 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-05-03 16:34:31 +00:00
Luigi Rizzo
820ef22951 remove a redundant rule
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@24426 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-05-03 16:33:00 +00:00
Luigi Rizzo
673607f87a reduce shift/reduce warnings
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@24425 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-05-03 16:28:48 +00:00
Luigi Rizzo
9ebc190fdc simplify case_statements
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@24424 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-05-03 16:12:31 +00:00
Luigi Rizzo
e2e92e49a6 switch statement in one place
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@24423 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-05-03 16:08:35 +00:00
Luigi Rizzo
7cc4511fa2 common syntax for context name
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@24421 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-05-03 16:00:49 +00:00
Luigi Rizzo
34dcc89e24 another instance of context name
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@24344 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-05-02 20:50:18 +00:00
Luigi Rizzo
7a625b894d fix a bug previously introduced in the handling of timespec.
Fortunately we have regression tests!



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@24343 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-05-02 20:44:56 +00:00
Luigi Rizzo
0cf25becb9 simplify case statements
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@24341 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-05-02 20:18:02 +00:00
Luigi Rizzo
05d2b78132 one more instance of assignment
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@24340 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-05-02 20:13:58 +00:00
Luigi Rizzo
0e8e343e1f global_statement is really an assignment statement
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@24339 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-05-02 20:11:24 +00:00
Luigi Rizzo
b222d1247f expressions used in if, while, switch are all of the same kind
(it remains to see why 'random' gives 16 shift/reduce conflicts...)



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@24292 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-05-02 19:17:49 +00:00
Luigi Rizzo
99dec41a4c macro statements can be empty
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@24258 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-05-02 18:51:33 +00:00
Luigi Rizzo
65b8f8365e empty arglists are valid
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@24257 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-05-02 18:48:47 +00:00
Luigi Rizzo
3173305448 rename the rule for context names properly
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@24256 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-05-02 18:45:18 +00:00
Luigi Rizzo
9eaa57bebc simplify handling of 'include' lists
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@24255 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-05-02 18:41:57 +00:00
Luigi Rizzo
827abbf46e ... and use a single rule for timespec
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@24254 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-05-02 18:33:15 +00:00
Luigi Rizzo
7b10b81a58 use a single rule to parse timeranges hh:mm-hh:mm
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@24252 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-05-02 18:23:41 +00:00
Luigi Rizzo
5c940c74a6 if/ifTime/random statements are all the same thing
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@24248 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-05-02 18:08:27 +00:00
Luigi Rizzo
16f94523ad includedname is just a regular word_or_default name,
no need for a separate nonterminal


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@24219 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-05-02 17:58:57 +00:00
Luigi Rizzo
df3f8aa2b9 remove useless 'extern' declaration
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@24216 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-05-02 17:37:33 +00:00
Luigi Rizzo
5cbf333fee remove some unneeded local variables.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@24178 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-05-02 14:27:19 +00:00
Luigi Rizzo
f262d06975 more usage of nword(). I think the references to source
line/columns are also correct now.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@24175 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-05-02 14:25:01 +00:00
Luigi Rizzo
d8e1ad052a more simplifications involving linku1
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@24174 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-05-02 14:12:01 +00:00
Luigi Rizzo
182a536722 correct linku1() to handle the case tail = NULL correctly.
Now the function can be used to simplify other conditional blocks.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@24173 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-05-02 14:08:18 +00:00
Russell Bryant
34e0ae0e6a The build of aelparse was still broken in some cases, so instead of having to
keep figuring out workarounds for build issues on various platforms, just go
ahead and remove what started all of this.  Two instances of ast_calloc have
been changed to calloc in pbx/ael/ael.y.

ast_copy_string isn't actually needed here because the only place it is used is
in ast_expr2f.c.  However, the utils Makefile already builds its own
ast_expr2f.o with -DSTANDALONE, which makes it use strncpy instead of
ast_copy_string.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@24115 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-05-02 03:03:27 +00:00
Luigi Rizzo
2c2f7e817b fix dereferencing freed memory
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@23795 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-05-01 00:02:12 +00:00