Commit Graph

12 Commits

Author SHA1 Message Date
Steve Murphy
62bbd7a589 Merged revisions 177286 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

................
  r177286 | murf | 2009-02-18 16:50:57 -0700 (Wed, 18 Feb 2009) | 39 lines
  
  Merged revisions 177225 via svnmerge from 
  https://origsvn.digium.com/svn/asterisk/branches/1.4
  
  ........
    r177225 | murf | 2009-02-18 15:43:14 -0700 (Wed, 18 Feb 2009) | 34 lines
    
    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.6.0@177289 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-02-19 00:05:07 +00:00
Kevin P. Fleming
fa635ea4b0 port gcc 4.3.x warning fixes from trunk to this branch
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.0@153743 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-11-03 00:39:04 +00:00
Steve Murphy
1ea8431ada Merged revisions 138845 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

........
r138845 | murf | 2008-08-19 10:31:24 -0600 (Tue, 19 Aug 2008) | 1 line

Oops. put a decl in a generated file. My bad, but fixed now.
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.0@138847 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-08-19 16:38:21 +00:00
Steve Murphy
1f651e547e Merged revisions 138815 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

........
r138815 | murf | 2008-08-19 09:59:12 -0600 (Tue, 19 Aug 2008) | 19 lines

These changes are in regards to bug 13249, where users are being surprised by the changes made
to the Set app in trunk/1.6.x, as they come from the 1.4 world. They are only bitten if
they write their AEL dialplan in the 1.4 world, and then carry it over to a trunk/1.6.x 
installation where a "make samples" was executed, or where they hand-edited the 
asterisk.conf file and added the [compat] category with app_set = 1.6 (or higher).

(this commit does not totally solve 13249, at least not yet)

The change involves issueing a single warning while the AEL file is loading, if:
 1. app_set is present in the config file, and set to 1.6 or higher.
 2. there are double quotes in an assignment statement (eg x = "hi there";)
 3. the warning was not already issued.

The standalone app, aelparse, does not (yet) issue this warning. I'd have to
have it read in the asterisk.conf file, and that's a bit of hassle. I'll add
it if users request it, tho.



........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.0@138846 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-08-19 16:36:22 +00:00
Steve Murphy
e45d4f3bf1 Merged revisions 130145 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

Merging this rev from trunk to 1.6.0 was not
simple. Why? Because we've enhanced trunk to
do a [fast] merge-and-delete operation which 
also solved problems with contexts having 
entries from different registrars.
Fast as in the amount of time the contexts
are locked down. That *is* fast, but traversing
the entire dialplan looking for priorities to
delete takes more time overall.
This particular fix involved pulling in those
enhancements from trunk, along with all the
various fixes and refinements made along the
way.

Merging all this from trunk into 1.6 involved:
a. mergetrunk6 in the stuff from 130145;
b. revert all but the prop changes
c. catalog all revisions to pbx.c since 1.6.0 was forked
   (at rev 105596).
d. catalog all revisions to pbx.c in trunk since 1.6.0
   was forked, making special note of all revs that
   were not merged into 1.6.0.
e. study each rev in trunk not applied to 1.6.0, and
   determine if it was involved in the merge_and_delete
   enhancements in trunk. 25 commits were done in 1.6.0,
   all but one (106306) was a merge from trunk.
   Trunk had 22 additional changes, of which 7 were
   involved in the merge_and_delete enhancements:
    106757
    108894
    109169
    116461
    123358
    130145
    130297
f. Go to trunk and collect patches, one by one,
   of the changes made by each rev across the
   entire source tree, using svn diff -c <num> > pfile
g. Apply each patch in order to 1.6.0, and 
   resolve all failures and compilation problems
   before proceding to the next patch.
h. test the stuff.
i. profit!


........
r130145 | murf | 2008-07-11 12:24:31 -0600 (Fri, 11 Jul 2008) | 40 lines

(closes issue #13041)
Reported by: eliel
Tested by: murf

(closes issue #12960)
Reported by: mnicholson

In this 'omnibus' fix, I **think** I solved both
the problem in 13041, where unloading pbx_ael.so
caused crashes, or incomplete removal of previous
registrar'ed entries. And I added code to completely
remove all includes, switches, and ignorepats that
had a matching registrar entry, which should
appease 12960.

I also added a lot of seemingly useless brackets
around single statement if's, which helped debug 
so much that I'm leaving them there.

I added a routine to check the correlation between
the extension tree lists and the hashtab 
tables. It can be amazingly helpful when you have
lots of dialplan stuff, and need to narrow
down where a problem is occurring. It's ifdef'd
out by default.

I cleaned up the code around the new CIDmatch code.
It was leaving hanging extens with bad ptrs, getting confused
over which objects to remove, etc. I tightened
up the code and changed the call to remove_exten
in the merge_and_delete code.

I added more conditions to check for empty context
worthy of deletion. It's not empty if there are
any includes, switches, or ignorepats present.

If I've missed anything, please re-open this bug,
and be prepared to supply example dialplan code.


........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.0@130946 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-07-15 13:14:07 +00:00
Steve Murphy
ab92fc1f35 made AEL 8-bit transparent; mainly the lexer was tossing chars with the hi-order bit set. Not nice. Also, allow @ in extension names, and a backslash, also.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89682 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-27 18:50:44 +00:00
Steve Murphy
c9f3efc381 Merged revisions 87168 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r87168 | murf | 2007-10-26 10:34:02 -0600 (Fri, 26 Oct 2007) | 1 line

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/trunk@87187 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-10-26 17:39:39 +00:00
Steve Murphy
d914cbee48 Merged revisions 86936 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r86936 | murf | 2007-10-23 22:14:28 -0600 (Tue, 23 Oct 2007) | 1 line

closes issue #11037 -- unable to specify app:spec in hint arguments
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@86954 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-10-24 04:44:27 +00:00
Steve Murphy
b3168a76c9 Merged revisions 84239 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r84239 | murf | 2007-10-01 14:27:52 -0600 (Mon, 01 Oct 2007) | 1 line

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/trunk@84327 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-10-01 23:03:50 +00:00
Kevin P. Fleming
5cbba2923c deal with more gcc 4.2 const pointer warnings
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@83978 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-09-27 00:06:06 +00:00
Steve Murphy
83e28341b5 an unreported crash I debugged, looked like it was backing up way too far after hitting the syntax error. An inspection of the code revealed that error tokens in lists were not rearranged when the rules were rearranged as part of a code neatening-up process. By moving the error tokens to where they should be, I also reduced the number of shift/reduce conflicts to 3 instead of 8. This introduces subtle differences in error messages, so the regressions had to be updated.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@80649 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-23 23:37:33 +00:00
Steve Murphy
9836efb5fb This commit closes bug 7605, and half-closes 7638. The AEL code has been redistributed/repartitioned to allow code re-use both inside and outside of Asterisk. This commit introduces the utils/conf2ael program, and an external config-file reader, for both normal config files, and for extensions.conf (context, exten, prio); It provides an API for programs outside of asterisk to use to play with the dialplan and config files.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@79595 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-15 19:21:27 +00:00