Skip to content
Snippets Groups Projects
  1. Sep 24, 2008
  2. Sep 12, 2008
    • Tilghman Lesher's avatar
      Create a new config file status, CONFIG_STATUS_FILEINVALID for differentiating · 08af5bb3
      Tilghman Lesher authored
      when a file is invalid from when a file is missing.  This is most important when
      we have two configuration files.  Consider the following example:
      
      Old system:
      sip.conf     users.conf     Old result               New result
      ========     ==========     ==========               ==========
      Missing      Missing        SIP doesn't load         SIP doesn't load
      Missing      OK             SIP doesn't load         SIP doesn't load
      Missing      Invalid        SIP doesn't load         SIP doesn't load
      OK           Missing        SIP loads                SIP loads
      OK           OK             SIP loads                SIP loads
      OK           Invalid        SIP loads incompletely   SIP doesn't load
      Invalid      Missing        SIP doesn't load         SIP doesn't load
      Invalid      OK             SIP doesn't load         SIP doesn't load
      Invalid      Invalid        SIP doesn't load         SIP doesn't load
      
      So in the case when users.conf doesn't load because there's a typo that
      disrupts the syntax, we may only partially load users, instead of failing with
      an error, which may cause some calls not to get processed.  Worse yet, the old
      system would do this with no indication that anything was even wrong.
      
      (closes issue #10690)
       Reported by: dtyoo
       Patches: 
             20080716__bug10690.diff.txt uploaded by Corydon76 (license 14)
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@142992 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      08af5bb3
  3. Sep 09, 2008
  4. Sep 06, 2008
  5. Sep 04, 2008
    • Steve Murphy's avatar
      Merged revisions 141094 via svnmerge from · ec25f4be
      Steve Murphy authored
      https://origsvn.digium.com/svn/asterisk/branches/1.4
      
      ........
      r141094 | murf | 2008-09-04 17:15:07 -0600 (Thu, 04 Sep 2008) | 70 lines
      
      (closes issue #13357)
      Reported by: pj
      Tested by: murf
      
      (closes issue #13416)
      Reported by: yarns
      Tested by: murf
      
      If you find this message overly verbose, relax, it's probably
      not meant for you. This message is meant for probably only
      two people in the whole world: me, or the poor schnook that
      has to maintain this code because I'm either dead or unavailable
      at the moment.
      
      This fix solves two reports, both having to do with embedding
      a function call in a ${} construct. It was tricky because the
      funccall syntax has parenthesis () in it. And up till now,
      the 'word' token in the flex stuff didn't allow that, because
      it would tend to steal the LP and RP tokens. To be truthful,
      the "word" token was the trickiest, most unstable thing in
      the whole lexer. I was lucky it made this long without complaints.
      I had to choose every character in the pattern with extreme
      care, and I knew that someday I'd have to revisit it. Well,
      the day has come.
      
      So, my brilliant idea (and I'm being modest), was to use the 
      surrounding ${} construct to make a state machine and capture 
      everything in it, no matter what it contains. But, I have to now
      treat the word token like I did with comments, in that I turn
      the whole thing into a state-machine sort of spec, with new
      contexts "curlystate", "wordstate", and "brackstate".
      
      Wait a minute, "brackstate"? Yes, well, it didn't take very many
      regression tests to point out if I do this for ${} constructs,
      I also have to do it with the $[] constructs, too.
      
      I had to create a separate pcbstack2 and pcbstack3 because
      these constructs can occur inside macro argument lists, and
      when we have two state machines operating on the same structures
      we'd get problems otherwise. I guess I could have stopped at
      pcbstack2 and had the brackstate stuff share it, but it doesn't
      hurt to be safe. So, the pcbpush and pcbpop routines also now
      have versions for "2" and "3".
      
      I had to add the {KEYWORD} construct to the initial pattern for
      "word", because previously word would match stuff like "default7",
      because it was a longer match than the keyword "default". But,
      not any more, because the word pattern only matches only one or
      two characters now, and it will always lose. So, I made it the
      winner again by making an optional match on any of the keywords
      before it's normal pattern.
      
      I added another regression test to make sure we don't
      lose this in future edits, and had to fix just one regression,
      where it no longer reports a 'cascaded' error, which I guess
      is a plus.
      
      I've given some thought as to whether to apply these fixes to
      1.4 and the 1.6.x releases, vs trunk; I decided to put it in
      1.4 because one of the bug reports was against 1.4; and it
      is unexpected that AEL cannot handle this situation. It actually
      reduced the amount of useless "cascade" error messages that
      appeared in the regressions (by one line, ehhem). There is
      a possible side-effect in that it does now do more careful
      checking of what's in those ${} constructs, as far as matching
      parens, and brackets are concerned. Some users may find a an
      insidious problem and correct it this way. This should be 
      exceedingly rare, I hope.
      
      
      ........
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@141115 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      ec25f4be
    • Jeff Peeler's avatar
      Merged revisions 141028 via svnmerge from · f7efe4a1
      Jeff Peeler authored
      https://origsvn.digium.com/svn/asterisk/branches/1.4
      
      ........
      r141028 | jpeeler | 2008-09-04 12:00:29 -0500 (Thu, 04 Sep 2008) | 7 lines
      
      (closes issue #11979)
      Fixes multiple parking problems:
      Crash when executing a park on an extension dialed by AGI due to not returning the proper return code.
      Crash when using a builtin feature that was a subset of a enabled dynamic feature.
      Crash due to always hanging up the peer despite the fact that the peer was supposed to be parked.
      
      
      ........
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@141039 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      f7efe4a1
  6. Sep 03, 2008
    • Steve Murphy's avatar
      In these changes, I have added some explanation · 06885911
      Steve Murphy authored
      of changes to the Set and MSet apps, so people aren't
      so shocked and surprised when they upgrade from
      1.4 to 1.6.
      
      Also, for the sake of those upgrading from 1.4 to
      1.6 with AEL, I provide automatic support for the 
      "old" way of using Set(), that still does the
      exact same old thing with quotes and backslashes
      and so on as 1.4 did, by having AEL compile in the
      use of MSet() instead of Set(), everywhere it inserts
      this code.
      
      But, if the app_set var is set to 1.6 or higher,
      it uses the "new", non-evaluative Set().
      
      This only usually happens if the user manually 
      inserts this into the asterisk.conf file, or runs
      the "make samples" command.
      
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@140824 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      06885911
  7. Sep 02, 2008
  8. Aug 29, 2008
    • Mark Michelson's avatar
      Merged revisions 140488 via svnmerge from · 5dfefa5e
      Mark Michelson authored
      https://origsvn.digium.com/svn/asterisk/branches/1.4
      
      ........
      r140488 | mmichelson | 2008-08-29 12:34:17 -0500 (Fri, 29 Aug 2008) | 22 lines
      
      After working on the ao2_containers branch, I noticed
      something a bit strange. In all cases where we provide
      a callback function to ao2_container_alloc, the callback
      function would only return 0 or CMP_MATCH. After inspecting
      the ao2_callback() code carefully, I found that if you're
      only looking for one specific item, then you should return
      CMP_MATCH | CMP_STOP. Otherwise, astobj2 will continue
      traversing the current bucket until the end searching for
      more matches.
      
      In cases like chan_iax2 where in 1.4, all the peers are
      shoved into a single bucket, this makes for potentially
      terrible performance since the entire bucket will be
      traversed even if the peer is one of the first ones come
      across in the bucket.
      
      All the changes I have made were for cases where the 
      callback function defined was passed to ao2_container_alloc
      so that calls to ao2_find could find a unique instance
      of whatever object was being stored in the container.
      
      
      ........
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@140489 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      5dfefa5e
  9. Aug 19, 2008
  10. Aug 11, 2008
  11. Aug 10, 2008
  12. Aug 09, 2008
  13. Aug 08, 2008
    • Steve Murphy's avatar
      Merged revisions 136726 via svnmerge from · a40f1cc1
      Steve Murphy authored
      https://origsvn.digium.com/svn/asterisk/branches/1.4
      
      ........
      r136726 | murf | 2008-08-07 18:15:34 -0600 (Thu, 07 Aug 2008) | 32 lines
      
      
      (closes issue #13236)
      Reported by: korihor
      
      Wow, this one was a challenge!
      
      I regrouped and ran a new strategy for
      setting the ~~MACRO~~ value; I set it once
      per extension, up near the top. It is only
      set if there is a switch in the extension.
      
      So, I had to put in a chunk of code to detect
      a switch in the pval tree.
      
      I moved the code to insert the set of ~~exten~~
      up to the beginning of the gen_prios routine, 
      instead of down in the switch code.
      
      I learned that I have to push the detection
      of the switches down into the code, so everywhere
      I create a new exten in gen_prios, I make sure
      to pass onto it the values of the mother_exten
      first, and the exten next.
      
      I had to add a couple fields to the exten
      struct to accomplish this, in the ael_structs.h
      file. The checked field makes it so we don't
      repeat the switch search if it's been done.
      
      I also updated the regressions.
      
      
      ........
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@136746 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      a40f1cc1
  14. Aug 06, 2008
  15. Aug 05, 2008
  16. Aug 04, 2008
  17. Aug 01, 2008
  18. Jul 31, 2008
  19. Jul 30, 2008
  20. Jul 19, 2008
  21. Jul 17, 2008
  22. Jul 16, 2008
    • Mark Michelson's avatar
      Don't try to dereference the dbfile pointer if · 255a9680
      Mark Michelson authored
      we know that it's NULL.
      
      (closes issue #13092)
      Reported by: gknispel_proformatique
      Patches:
            trunk_sqlite_check_vars_null.patch uploaded by gknispel (license 261)
      
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@131361 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      255a9680
    • Steve Murphy's avatar
      Merged revisions 131242 via svnmerge from · 37001f58
      Steve Murphy authored
      https://origsvn.digium.com/svn/asterisk/branches/1.4
      
      ........
      r131242 | murf | 2008-07-16 11:53:43 -0600 (Wed, 16 Jul 2008) | 19 lines
      
      (closes issue #13090)
      Reported by: murf
      
      The problem was that, esoteric as it is, because the hangerupper
      context immediately preceded the std-priv-extent macro, that 
      the checking code accidentally would fall from traversing hangerupper
      into the std-priv-exten macro, where it would hit the hangerupper
      in the 'includes', and proceed into an infinite recursion.
      
      A small fix to traverse into the statements of the context instead
      of the context solves this issue.
      
      I also added some commented out printfs for debug, which were pretty
      handy in the face of a dorky gdb.
      
      This was a problem around since the package was first written;
      but evidently pretty rare in turning up in the field.
      
      
      ........
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@131243 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      37001f58
  23. Jul 15, 2008
  24. Jul 13, 2008
    • Michiel van Baak's avatar
      Make all sed calls Posix sed compatible. · 0d49cdae
      Michiel van Baak authored
      To make sure nobody commits script-modified files we first make a backup
      of asterisk.tex, run the script, generate the pdf and / or html,
      and put the original asterisk.tex back.
      This will guard us for the stuff that happened before that someone committed 
      a locally modified asterisk.tex, with changes done by this script.
      
      (closes issue #13062)
      Reported by: mvanbaak
      Patches:
            sed_without-i-v3.diff uploaded by mvanbaak (license 7)
      Tested by: mvanbaak
      
      Feedback from Corydon. Thanks for taking the time to go through this.
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@130578 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      0d49cdae
  25. Jul 11, 2008
  26. Jul 10, 2008
  27. Jul 09, 2008
  28. Jul 08, 2008
  29. Jul 05, 2008
Loading