Skip to content
Snippets Groups Projects
  1. Jan 02, 2018
  2. Dec 31, 2017
    • Sean Bright's avatar
      ice: Increase foundation buffer size · 15f8b9b8
      Sean Bright authored
      Per RFC 5245, the foundation specified with an ICE candidate can be up
      to 32 characters but we are only allowing for 31.
      
      ASTERISK-27498 #close
      Reported by: Michele Prà
      
      Change-Id: I05ce7a5952721a76a2b4c90366168022558dc7cf
      15f8b9b8
  3. Dec 30, 2017
    • Corey Farrell's avatar
      core: Use macros to generate ao2_container callbacks where possible. · bc73337e
      Corey Farrell authored
      This uses AO2_STRING_FIELD_HASH_FN and AO2_STRING_FIELD_CMP_FN where
      possible in the Asterisk core.
      
      This removes CMP_STOP from the result of CMP_FN callbacks for the
      following structure types:
      * ast_bucket_metadata
      * ast_bucket_scheme
      * generic_monitor_instance_list (ccss.c)
      * ast_bucket_file (media_cache.c)
      * named_acl
      
      Change-Id: Ide4c1449a894bce70dea1fef664dade9b57578f1
      bc73337e
  4. Dec 28, 2017
    • Richard Mudgett's avatar
      stasis_channels.c: Misc cleanup. · 2dde5bef
      Richard Mudgett authored
      * Use current OBJ_SEARCH_xxx defines instead of the deprecated versions.
      
      * Fix hash_cb and cmp_cb container functions to correctly use the
      OBJ_SEARCH_xxx values.
      
      * Remove incorrect usage of CMP_STOP.  Most uses in the system have no
      effect.  This allows the collapse of channel_role_single_cmp_cb() and
      channel_role_multi_cmp_cb() into channel_role_cmp_cb().
      
      * Remove unnecessary usage of RAII_VAR().
      
      Change-Id: I02c405518cab22aa2a082b61e2353bf7cd629a70
      2dde5bef
    • Richard Mudgett's avatar
      manager.c: Update AMI Status event documentation · d69b7c6c
      Richard Mudgett authored
      The AMI Status event had linkedid listed twice and was missing the
      effective connected line name and number headers.
      
      NOTE: The linkedid and other standard channel snapshot fields in the XML
      documentation are part of the <channel_snapshot/> XML template defined in
      doc/appdocsxml.xslt.
      
      Change-Id: I004c4c4f9e7b40ef55035c831702721bec82496c
      d69b7c6c
  5. Dec 26, 2017
    • Corey Farrell's avatar
      cdr: Missing NULL check and unlock. · 94eb12ca
      Corey Farrell authored
      * handle_dial_message: Missing a check for NULL peer.
      * cdr_generic_register: Missing unlock on allocation failure.
      
      cdr_generic_register is fixed by reordering so the new structure is
      allocated and initialized before locking the list.
      
      Change-Id: I5799b99270d1a7a716a555c31ac85f4b00ce8686
      94eb12ca
  6. Dec 24, 2017
    • Corey Farrell's avatar
      loader: Add volatile to resource_being_loaded. · 23aa20bf
      Corey Farrell authored
      Some compiler optimizers seem to assume that dlopen will not use
      __attribute__((constructor)) functions to call back to the program.
      This was causing resource_being_loaded to be optimized away completely.
      
      ASTERISK-27531 #close
      Tested By: abelbeck
      
      Change-Id: If17a3b889e06811a0e7119f0539d052494d6ece9
      23aa20bf
  7. Dec 22, 2017
  8. Dec 20, 2017
    • Corey Farrell's avatar
      Fix Common Typo's. · 1b80ffa4
      Corey Farrell authored
      Fix instances of:
      * Retreive
      * Recieve
      * other then
      * different then
      * Repeated words ("the the", "an an", "and and", etc).
      * othterwise, teh
      
      ASTERISK-24198 #close
      
      Change-Id: I3809a9c113b92fd9d0d9f9bac98e9c66dc8b2d31
      1b80ffa4
    • Corey Farrell's avatar
      bridge: Old channel video source not set to NULL after unref. · aaa3884d
      Corey Farrell authored
      The bridge holds onto the old channel video source after it's been
      released.  This can lead to use after free errors.
      
      ASTERISK-27229 #close
      
      Change-Id: Ib2dab61677dd8a21f7ad53cdc9b8ca93297838b3
      aaa3884d
    • Corey Farrell's avatar
      core: Fix unused variable error in handle_show_sysinfo. · c2850bfe
      Corey Farrell authored
      Apparently in OSX it's possible for OSX to HAVE_SYSCTL but not
      HAVE_SYSINFO or HAVE_SWAPCTL.  In this case freeswap caused an unused
      variable error.
      
      ASTERISK-26563 #close
      
      Change-Id: I8ec5b1897b786cc1abaf62264aa75039eea05510
      c2850bfe
  9. Dec 19, 2017
    • Corey Farrell's avatar
      CLI: Address multiple issues. · d51837a1
      Corey Farrell authored
      * listen uses the variable `s` for the result from ast_poll() then
        overwrites it with the result of accept().  Create a separate variable
        poll_result to avoid confusion since ast_poll does not return a file
        descriptor.
      * Resolve fd leak that would occur if setsockopt failed in listen.
      * Reserve an extra byte while processing completion results from remote
        daemon.  This fixes a bug where completion processing used strstr() on
        a string that was not '\0' terminated.  This was no risk to the Asterisk
        daemon, the bug was only reachable the remote console process.
      * Resolve leak in handle_showchan when the channel is not found.
      * Multiple leaks and a deadlock in pbx_config CLI completion.
      * Fix leaks in "manager show command".
      
      Change-Id: I8f633ceb1714867ae30ef4e421858f77c14485a9
      d51837a1
    • Corey Farrell's avatar
      dns_core: Protect against array index violation. · b8f54f74
      Corey Farrell authored
      Add a check to allocate_dns_record to prevent calling a pointer
      retrieved from beyond dns_alloc_table.
      
      ASTERISK-27495 #close
      
      Change-Id: Ie2f6e4991cea46baa12e837bd64cc22b44d322bb
      b8f54f74
    • Ivan Poddubny's avatar
      bridge: Stop music on hold on adding an arbitrary channel to a bridge · 3b99a033
      Ivan Poddubny authored
      When a channel that is on hold gets added to a bridge by
      the Bridge AMI action or the dialplan application of the same name,
      music continues to play, causing "robotic sound".
      
      This commit adds a call to ast_moh_stop to stop the music.
      Also, it makes the AMI Park action use the right MOH class when the
      channel gets parked.
      
      Reported by: Zane Conkle
      
      ASTERISK-25079 #close
      
      Change-Id: I4b129c5a20c15e63968842460ac5a1a85903cf9f
      3b99a033
    • Corey Farrell's avatar
      Remove constant conditionals (dead-code). · b3e839de
      Corey Farrell authored
      Some variables are set and never changed, making them constant.  This
      means that code in the 'false' block of the conditional is unreachable.
      
      In chan_skinny and res_config_ldap I used preprocessor directive `#if 0`
      as I'm unsure if the unreachable code could be enabled in the future.
      
      Change-Id: I62e2aac353d739fb3c983cf768933120f5fba059
      b3e839de
    • Corey Farrell's avatar
      core: Fix multiple trivial issues in the core. · bf33a09c
      Corey Farrell authored
      * Fix small leaks in from error conditions in sdp.c and translate.c.
      * Check new file descriptor is less than 0, not less than or equal.
      
      Change-Id: Id7782775486175c739e0c4bf3ea5e17e3f452a99
      bf33a09c
    • Corey Farrell's avatar
      main/app: Fix leaks. · 8dfc973d
      Corey Farrell authored
      * ast_linear_stream would leak a file descriptor if it failed to allocate
        lin.
      * ast_control_tone leaked zone and ts if ast_playtones_start failed.
      
      Additionally added whitespace to ast_linear_stream, pulled assignments
      out of conditionals for improved readability.
      
      Change-Id: I6d1a10cf9161b1529d939b9b2d63ea36d395b657
      8dfc973d
    • Richard Mudgett's avatar
      ast_json_pack(): Use safer json ref mechanism. · f6393b59
      Richard Mudgett authored
      Change-Id: I49204db2e57ae96eee43909c18ed007c09ac817e
      f6393b59
    • Richard Mudgett's avatar
      rtp_engine.c: Eliminate rtcp_report_to_json() RAII_VAR usage. · 7054fb87
      Richard Mudgett authored
      Change-Id: I58a22c2ca82e91d7537409b7b3af2d735827a54d
      7054fb87
  10. Dec 18, 2017
    • Corey Farrell's avatar
      netsock: Remove from Asterisk core. · 064c74e4
      Corey Farrell authored
      This moves netsock.c / netsock.h to the chan_iax2 module.  netsock.h has
      been marked deprecated since 13.0.0, chan_iax2 is the only remaining
      user.
      
      Change-Id: I28c6578043bac18de5ea608e136acec4f83d5dd3
      064c74e4
    • Corey Farrell's avatar
      CLI: Fix 'core set debug channel' completion bug. · 731a23fb
      Corey Farrell authored
      The completion generator is missing a return so typing "core set debug
      all off <tab>" causes the command to actually execute.
      
      Change-Id: Ibf6462088a74eee66967732b50445783ebefc20b
      731a23fb
  11. Dec 15, 2017
    • Corey Farrell's avatar
      cdr: Minor optimizations. · e6768c0f
      Corey Farrell authored
      * bridge_candidate_process: remove SCOPED_AO2LOCK and return value.
      * handle_standard_bridge_enter_message: replace recursive call with goto
        statement.
      
      ASTERISK-24297
      
      Change-Id: Id2eaa0822fb8dc799f63422bb3aa89de9d4ee2a2
      e6768c0f
    • Corey Farrell's avatar
      aco: Minimize use of regex. · bf2d3593
      Corey Farrell authored
      Remove nearly all use of regex from ACO users.  Still remaining:
      * app_confbridge has a legitamate use of option name regex.
      * ast_sorcery_object_fields_register is implemented with regex, all
        callers use simple prefix based regex.  I haven't decided the best
        way to fix this in both 13/15 and master.
      
      Change-Id: Ib5ed478218d8a661ace4d2eaaea98b59a897974b
      bf2d3593
    • Corey Farrell's avatar
      aco: Create ways to minimize use of regex. · a455e183
      Corey Farrell authored
      ACO uses regex in many situations where it is completely unneeded.  In
      some cases this doubles the total processing performed by
      aco_process_config.
      
      * Create ACO_IGNORE category type for use in place of skip_category
        regex source string.
      * Create additional aco_category_op values to allow specifying category
        filter using either a single plain string or a NULL terminated array
        of plain strings.
      * Create ACO_PREFIX to allow matching option names to case insensitive
        prefixes.
      
      Change-Id: I66a920dcd8e2b0301f73f968016440a985e72821
      a455e183
    • Corey Farrell's avatar
      loader: Use vector to build apha sorted module lists. · 9d579761
      Corey Farrell authored
      Change-Id: I9c519f4dec3cda98b2f34d314255a31d49a6a467
      9d579761
    • Corey Farrell's avatar
      loader: Replace priority heap with vector. · 7b549033
      Corey Farrell authored
      This is needed for future changes which will require being able to
      process the load priority out of order.
      
      Change-Id: Ia23421197f09789940510b03ebbbf3bf24d51bea
      7b549033
  12. Dec 14, 2017
    • Corey Farrell's avatar
      loader: Rework of load_dynamic_module. · 3505cc88
      Corey Farrell authored
      * Split off load_dlopen to perform actual dlopen, check results and log
        warnings when needed.
      * Always use RTLD_NOW.
      * Use flags which minimize number of calls to dlopen required.  First
        attempt always uses RTLD_GLOBAL when global_symbols_only is enabled,
        RTLD_LOCAL when it is not.
      
      This patch significantly reduces the number of dlopen's performed.  With
      299 modules my system ran dlopen 857 times before this patch, 655 times
      after this patch.
      
      Change-Id: Ib2c9903cfddcc01aed3e01c1e7fe4a3fb9af0f8b
      3505cc88
    • Corey Farrell's avatar
      loader: Minor fix to module registration. · 80bf0ee9
      Corey Farrell authored
      This protects the module loader itself against crashing if dlopen is
      called on a module from outside loader.c.
      
      * Expand scope of lock inside ast_module_register to include reading of
        resource_being_loaded.
      * NULL check resource_being_loaded.
      * Set resource_being_loaded NULL as soon as dlopen returns.  This fixes
        some error paths where it was not NULL'ed.
      * Create module_destroy function to deduplicate code from
        ast_module_unregister and modules_shutdown.
      * Resolve leak that occured if a module did not successfully register.
      * Simplify checking for successful registration.
      
      Change-Id: I40f07a315e55b92df4fc7faf525ed6d4f396e7d2
      80bf0ee9
    • Richard Mudgett's avatar
      res_rtp_asterisk.c: Disable packet flood detection for video streams. · 98f7e925
      Richard Mudgett authored
      We should not do flood detection on video RTP streams.  Video RTP streams
      are very bursty by nature.  They send out a burst of packets to update the
      video frame then wait for the next video frame update.  Really only audio
      streams can be checked for flooding.  The others are either bursty or
      don't have a set rate.
      
      * Added code to selectively disable packet flood detection for video RTP
      streams.
      
      ASTERISK-27440
      
      Change-Id: I78031491a6e75c2d4b1e9c2462dc498fe9880a70
      98f7e925
  13. Dec 13, 2017
    • Corey Farrell's avatar
      CLI: Remove special handling of 'core set verbose' from rasterisk. · 5f6a3c43
      Corey Farrell authored
      rasterisk does not need to handle setting verbose levels locally, it
      should just tell the daemon what it wants and print what it is given.
      Just max out the verbose level on the local client so all filtering
      happens on the daemon.
      
      ASTERISK-20281 #close
      
      Change-Id: Ia305f75f1fc424a9169bfa30ef70d626ace2c8a8
      5f6a3c43
  14. Dec 12, 2017
  15. Dec 11, 2017
    • Kevin Harwell's avatar
      pjsip_options: wrongly applied "UNKNOWN" status · b088cddc
      Kevin Harwell authored
      A couple of places were setting the status to "UNKNOWN" when qualifies were
      being disabled. Instead this should be set to the "CREATED" status that
      represents when a contact is given (uri available), but the qualify frequency
      is set to zero so we don't know the status.
      
      This patch updates the relevant places with "CREATED". It also updates the
      "CREATED" status description (value shown in CLI/AMI/ARI output) to a value
      of "NonQualified"/"NonQual" as this description is hopefully less confusing.
      
      ASTERISK-27467
      
      Change-Id: Id67509d25df92a72eb3683720ad2a95a27b50c89
      b088cddc
    • Richard Mudgett's avatar
      stasis_channels.c: Don't set channel snapshot caller_dnid twice. · c2ec82bf
      Richard Mudgett authored
      Change-Id: Ib8d45bbdfbda81e65045f6dff874d189b74e5471
      c2ec82bf
  16. Dec 10, 2017
    • Sean Bright's avatar
      astdb: Improve prefix searches in astdb · 9a9edc6c
      Sean Bright authored
      Using the LIKE operator requires a full table scan of 'astdb', whereas a
      comparison operation is able to use the primary key index.
      
      This patch adds a new function to the AstDB API for quick prefix matches
      and updates res_sorcery_astdb to utilize it. This showed substantial
      performance improvement in my test environment.
      
      Related to ASTERISK~26806, but does not completely resolve it.
      
      Change-Id: I7d37f9ba2aea139dabf2ca72d31fbe34bd9b2fa1
      9a9edc6c
  17. Dec 09, 2017
    • Corey Farrell's avatar
      loader: Refactor resource_name_match. · d2e87b8e
      Corey Farrell authored
      Optimize resource_name_match.  This change eliminates use of
      ast_strdupa, instead verifying that both basename's are the same length,
      then using strncasecmp.
      
      Change-Id: I477275c0e954c99d74be5abfc8bb6545b04e5a3d
      d2e87b8e
  18. Dec 08, 2017
    • Sean Bright's avatar
      utils: Add convenience function for setting fd flags · 2ffe52a1
      Sean Bright authored
      There are many places in the code base where we ignore the return value
      of fcntl() when getting/setting file descriptior flags. This patch
      introduces a convenience function that allows setting or clearing file
      descriptor flags and will also log an error on failure for later
      analysis.
      
      Change-Id: I8b81901e1b1bd537ca632567cdb408931c6eded7
      2ffe52a1
  19. Dec 07, 2017
  20. Dec 06, 2017
    • Corey Farrell's avatar
      sounds_index: Avoid repeatedly reindexing. · ab191e97
      Corey Farrell authored
      The sounds index is rebuilt each time a format is registered or
      unregistered.  This causes the index to be repeatedly rebuilt during
      startup and shutdown.
      
      This patch significantly reduces the work done by delaying sound index
      initialization until after modules are loaded.  This way a reindex only
      occurs if a format module is loaded after startup.  We also skip
      reindexing when format modules are unloaded during shutdown.
      
      Change-Id: I585fd6ee04200612ab1490dc804f76805f89cf0a
      ab191e97
    • Corey Farrell's avatar
      media_index: Improve startup. · 2af59ebb
      Corey Farrell authored
      This eliminates some wasteful operations in media_index startup.
      
      * Replace statically set string-fields with char[0].
      * Eliminate pointless RAII_VAR's.
      * alloc_variant: Avoid pointless ao2_find on new info->variant.
      * Stop trying find_variant before alloc_variant.
      * process_media_file: replace ast_str with ast_asprintf.  This avoids
        reallocation of file_id_str.
      
      Overall sounds_index.c is about 27% of Asterisk startup time when using
      sample configs.  This patch reduces it to 20%.  This is a half-fix.  The
      real problem is that the media_index is regenerated repeatedly - 68
      times in my test.
      
      Change-Id: Ia50b752f8efb356f852b05c4be495a6631af8652
      2af59ebb
Loading