summaryrefslogtreecommitdiff
path: root/main
AgeCommit message (Collapse)Author
2017-12-20Merge "CLI: Address multiple issues." into 13Joshua Colp
2017-12-20Merge "bridge: Stop music on hold on adding an arbitrary channel to a ↵Jenkins2
bridge" into 13
2017-12-20Merge "core: Fix multiple trivial issues in the core." into 13Joshua Colp
2017-12-19Merge "Remove constant conditionals (dead-code)." into 13Jenkins2
2017-12-19CLI: Address multiple issues.Corey Farrell
* 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
2017-12-19Merge "main/app: Fix leaks." into 13Jenkins2
2017-12-19bridge: Stop music on hold on adding an arbitrary channel to a bridgeIvan Poddubny
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
2017-12-19Merge "rtp_engine.c: Eliminate rtcp_report_to_json() RAII_VAR usage." into 13Jenkins2
2017-12-19Remove constant conditionals (dead-code).Corey Farrell
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
2017-12-19core: Fix multiple trivial issues in the core.Corey Farrell
* Fix small leaks in from error condition in translate.c. * Check new file descriptor is less than 0, not less than or equal. Change-Id: Id7782775486175c739e0c4bf3ea5e17e3f452a99
2017-12-18main/app: Fix leaks.Corey Farrell
* 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
2017-12-18ast_json_pack(): Use safer json ref mechanism.Richard Mudgett
Change-Id: I49204db2e57ae96eee43909c18ed007c09ac817e
2017-12-18rtp_engine.c: Eliminate rtcp_report_to_json() RAII_VAR usage.Richard Mudgett
Change-Id: I58a22c2ca82e91d7537409b7b3af2d735827a54d
2017-12-18Merge "CLI: Fix 'core set debug channel' completion bug." into 13Joshua Colp
2017-12-18Merge "CLI: Remove special handling of 'core set verbose' from rasterisk." ↵Jenkins2
into 13
2017-12-18Merge "aco: Minimize use of regex." into 13Jenkins2
2017-12-18Merge "aco: Create ways to minimize use of regex." into 13Jenkins2
2017-12-18CLI: Fix 'core set debug channel' completion bug.Corey Farrell
The completion generator is missing a return so typing "core set debug all off <tab>" causes the command to actually execute. Change-Id: Ibf6462088a74eee66967732b50445783ebefc20b
2017-12-18Merge "loader: Use vector to build apha sorted module lists." into 13George Joseph
2017-12-18Merge "loader: Replace priority heap with vector." into 13George Joseph
2017-12-18Merge "cdr: Minor optimizations." into 13Jenkins2
2017-12-18Merge "loader: Rework of load_dynamic_module." into 13George Joseph
2017-12-18Merge "loader: Minor fix to module registration." into 13Jenkins2
2017-12-15cdr: Minor optimizations.Corey Farrell
* 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
2017-12-15loader: Use vector to build apha sorted module lists.Corey Farrell
Change-Id: I9c519f4dec3cda98b2f34d314255a31d49a6a467
2017-12-15loader: Replace priority heap with vector.Corey Farrell
This is needed for future changes which will require being able to process the load priority out of order. Change-Id: Ia23421197f09789940510b03ebbbf3bf24d51bea
2017-12-15loader: Rework of load_dynamic_module.Corey Farrell
* Split off load_dlopen to perform actual dlopen, check results and log warnings when needed. * 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
2017-12-15loader: Minor fix to module registration.Corey Farrell
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
2017-12-15aco: Minimize use of regex.Corey Farrell
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
2017-12-15aco: Create ways to minimize use of regex.Corey Farrell
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
2017-12-14res_rtp_asterisk.c: Disable packet flood detection for video streams.Richard Mudgett
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
2017-12-13CLI: Remove special handling of 'core set verbose' from rasterisk.Corey Farrell
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
2017-12-13Merge "CLI: Fix 'core show sysinfo' function ordering." into 13Jenkins2
2017-12-11CLI: Fix 'core show sysinfo' function ordering.Corey Farrell
Handle CLI initialization before any processing occurs. Change-Id: I598b911d2e409214bbdfd0ba0882be1d602d221c
2017-12-11stasis_channels.c: Don't set channel snapshot caller_dnid twice.Richard Mudgett
Change-Id: Ib8d45bbdfbda81e65045f6dff874d189b74e5471
2017-12-11Merge "astdb: Improve prefix searches in astdb" into 13Jenkins2
2017-12-11Merge "loader: Refactor resource_name_match." into 13Jenkins2
2017-12-10astdb: Improve prefix searches in astdbSean Bright
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
2017-12-08loader: Refactor resource_name_match.Corey Farrell
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
2017-12-08utils: Add convenience function for setting fd flagsSean Bright
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
2017-12-07Merge "translate: Skip matrix_rebuild during shutdown." into 13Jenkins2
2017-12-07Merge "CLI: Fix remote console completion." into 13Jenkins2
2017-12-07Merge "sounds_index: Avoid repeatedly reindexing." into 13Jenkins2
2017-12-07Merge "media_index: Improve startup." into 13Jenkins2
2017-12-07CLI: Fix remote console completion.Corey Farrell
Duplicate checking was done incorrectly when parsing completion options from a remote console causing all options to be ignored as duplicates. Once fixed I had to separate processing of the best match to ensure it was not identified as a duplicate when it is the only match. ASTERISK-27465 Change-Id: Ibbdb29f88211742071836c9b3f4d2aa1221cd0f9
2017-12-07translate: Skip matrix_rebuild during shutdown.Corey Farrell
Change-Id: I1e5eef4029cba56e33d786c5a5ade8091e531a1e
2017-12-07sounds_index: Avoid repeatedly reindexing.Corey Farrell
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
2017-12-06media_index: Improve startup.Corey Farrell
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
2017-12-06bridge_basic.c: Update transfer diagnostic messages addendum.Richard Mudgett
* Added start DTMF transfer verbose messages. * Made associated transfer messages use a similar message format. * Adjusted message verbose level as requested by initial reporter. ASTERISK-27449 Change-Id: I2045714586414b3c5ef1f3cc56c1c4af4b31f551
2017-12-05bridge_basic.c: Update transfer diagnostic messages.Niklas Larsson
* Add the channel name to diagnostic messages so you will know which channel failed to transfer. * Promoted some debug messages to verbose 4 messages. ASTERISK-27449 #close Change-Id: Idac66b7628c99379cc9269158377fd87dc97a880