Skip to content
Snippets Groups Projects
  1. Oct 06, 2015
    • Matt Jordan's avatar
      Fix improper usage of scheduler exposed by 5c713fdf · 8cb614fe
      Matt Jordan authored
      When 5c713fdf was merged, it allowed for scheduled items to have an ID of
      '0' returned. While this was valid per the documentation for the API, it was
      apparently never returned previously. As a result, several users of the
      scheduler API viewed the result as being invalid, causing them to reschedule
      already scheduled items or otherwise fail in interesting ways.
      
      This patch corrects the users such that they view '0' as valid, and a returned
      ID of -1 as being invalid.
      
      Note that the failing HEP RTCP tests now pass with this patch. These tests
      failed due to a duplicate scheduling of the RTCP transmissions.
      
      ASTERISK-25449 #close
      
      Change-Id: I019a9aa8b6997584f66876331675981ac9e07e39
      8cb614fe
  2. Oct 03, 2015
    • Ivan Poddubny's avatar
      manager: Fix GetConfigJSON returning invalid JSON · 89dec767
      Ivan Poddubny authored
      When GetConfigJSON was introduced back in 1.6, it returned each
      section as an array of strings: ["key=value", "key2=value2"].
      Afterwards, it was changed a few times and became
      ["key": "value", "key2": "value2"], which is not a correct JSON.
      This patch fixes that by constructing a JSON object {} instead of
      an array [].
      
      Also, the keys "istemplate" and "tempates" that are used to
      indicate templates and their inherited categories are now wrapped in
      quotes.
      
      ASTERISK-25391 #close
      Reported by: Bojan Nemčić
      
      Change-Id: Ibbe93c6a227dff14d4a54b0d152341857bcf6ad8
      89dec767
  3. Oct 02, 2015
  4. Oct 01, 2015
    • Richard Mudgett's avatar
      res_sorcery_memory_cache.c: Fix deadlock with scheduler. · 1b80dbeb
      Richard Mudgett authored
      A deadlock can happen when a sorcery object is being expired from the
      memory cache when at the same time another object is being placed into the
      memory cache.  There are a couple other variations on this theme that
      could cause the deadlock.  Basically if an object is being expired from
      the sorcery memory cache at the same time as another thread tries to
      update the next object expiration timer the deadlock can happen.
      
      * Add a deadlock avoidance loop in expire_objects_from_cache() to check if
      someone is trying to remove the scheduler callback from the scheduler.
      
      ASTERISK-25441 #close
      
      Change-Id: Iec7b0bdb81a72b39477727b1535b2539ad0cf4dc
      1b80dbeb
    • Richard Mudgett's avatar
      res_sorcery_memory_cache.c: Replace inline code with function. · 9c1ca287
      Richard Mudgett authored
      Make sorcery_memory_cache_close() call remove_all_from_cache() instead of
      partially inlining it.
      
      ASTERISK-25441
      
      Change-Id: I1aa6cb425b1a4307096f3f914d17af8ec179a74c
      9c1ca287
    • Richard Mudgett's avatar
      res_sorcery_memory_cache.c: Shutdown in a less crash potential order. · 6554a3b2
      Richard Mudgett authored
      Basically you should shutdown in the opposite order of how you setup since
      later setup pieces likely depend on earlier setup pieces.  e.g.,
      Registering your external API with the rest of the system should be the
      last thing setup and the first thing unregistered during shutdown.
      
      Change-Id: I5715765b723100c8d3c2642e9e72cc7ad5ad115e
      6554a3b2
    • Richard Mudgett's avatar
      res_sorcery_memory_cache.c: Misc tweaks. · 359394cc
      Richard Mudgett authored
      Change-Id: I8cd32dffbb4f33bb0c39518d6e4c991e73573160
      359394cc
    • Richard Mudgett's avatar
      res_sorcery_memory_cache.c: Made use OBJ_SEARCH_MASK. · 7942d1c2
      Richard Mudgett authored
      Change-Id: Ibca6574dc3c213b29cc93486e01ccd51f5caa46c
      7942d1c2
  5. Sep 30, 2015
  6. Sep 29, 2015
  7. Sep 28, 2015
  8. Sep 25, 2015
  9. Sep 24, 2015
    • Mark Michelson's avatar
      logger: Prevent duplicate dynamic channels from being added. · 3eefa07a
      Mark Michelson authored
      There was a problem observed where the "logger add channel" CLI command
      would allow for a channel with the same name to be added multiple times.
      This would result in each message being written out to the same file
      multiple times.
      
      The problem was due to the difference in how logger channel filenames
      are stored versus the format they are allowed to be presented when they
      are added. For instance, if adding the logger channel "foo" through the
      CLI, the result would be a logger channel with the file name
      /var/log/asterisk/foo being stored. So when trying to add another "foo"
      channel, "foo" would not match "/var/log/asterisk/foo" so we'd happily
      add the duplicate channel.
      
      The fix presented here is to introduce two new methods in the logger
      code:
       * make_filename(): given a logger channel name, this creates the
         filename for that logger channel.
       * find_logchannel(): given a logger channel name, this calls
         make_filename() and then traverses the list of logchannels in order
         to find a match.
      
      This change has made use of make_filename() and find_logchannel()
      throughout to more consistently behave.
      
      ASTERISK-25305 #close
      Reported by Mark Michelson
      
      Change-Id: I892d52954d6007d8bc453c3cbdd9235dec9c4a36
      3eefa07a
    • Mark Michelson's avatar
      Do not swallow frames on channels leaving bridges. · f42084be
      Mark Michelson authored
      When leaving a bridge, indications on a channel could be swallowed by
      the internal indication logic because it appears that the channel is on
      its way to be hung up anyway. One such situation where this is
      detrimental is when channels on hold are redirected out of a bridge. The
      AST_CONTROL_UNHOLD indication from the bridging code is swallowed,
      leaving the channel in question to still appear to be on hold.
      
      The fix here is to modify the logic inside ast_indicate_data() to not
      drop the indication if the channel is simply leaving a bridge. This way,
      channels on hold redirected out of a bridge revert to their expected "in
      use" state after the redirection.
      
      ASTERISK-25418 #close
      Reported by Mark Michelson
      
      Change-Id: If6115204dfa0551c050974ee138fabd15f978949
      f42084be
  10. Sep 23, 2015
Loading