summaryrefslogtreecommitdiff
path: root/main
AgeCommit message (Collapse)Author
2016-02-04Check for OpenSSL defines before trying to use them.Mark Michelson
The SSL_OP_NO_TLSv1_1 and SSL_OP_NO_TLSv1_2 defines did not exist prior to OpenSSL version 1.0.1. A recent commit attempts to, by default, set these options, which can cause problems on systems with older OpenSSL installations. This commit adds a configure script check for those defines and will not attempt to make use of those if they do not exist. We will print a warning urging the user to upgrade their OpenSSL installation if those defines are not present. Change-Id: I6a2eb9a43fd0738b404d8f6f2cf4b5c22d9d752d
2016-02-03Merge "AST-2016-003 udptl.c: Fix uninitialized values." into 13Kevin Harwell
2016-02-03AST-2016-003 udptl.c: Fix uninitialized values.Richard Mudgett
Sending UDPTL packets to Asterisk with the right amount of missing sequence numbers and enough redundant 0-length IFP packets, can make Asterisk crash. ASTERISK-25603 #close Reported by: Walter Doekes ASTERISK-25742 #close Reported by: Torrey Searle Change-Id: I97df8375041be986f3f266ac1946a538023a5255
2016-02-03AST-2016-001 http: Provide greater control of TLS and set modern defaults.Joshua Colp
This change exposes the configuration of various aspects of the TLS support and sets the default to the modern standards. The TLS cipher is now set to the best values according to the Mozilla OpSec team, different TLS versions can now be disabled, and the cipher order can be forced to be that of the server instead of the client. ASTERISK-24972 #close Change-Id: I0a10f2883f7559af5e48dee0901251dbf30d45b8
2016-02-01build_system: Fix some warnings highlighted by clangGeorge Joseph
Fix some warnings found with clang. Change-Id: I5195b6189b148c2ee3ed4a19d015a6d4ef3e77bd
2016-01-28Merge "config: Allow options to register when documentation is unavailable." ↵Mark Michelson
into 13
2016-01-28config_options.c: Fix warning message wording.Richard Mudgett
Change-Id: I915ea437936320393afde0e7552cf0a980a6b2e4
2016-01-26config: Allow options to register when documentation is unavailable.Joshua Colp
The config options framework is strict in that configuration options must be documented unless XML documentation support is not available. In practice this is useful as it ensures documentation exists however in off-nominal cases this can cause strange problems. If it is expected that a config option has a non-zero or non-empty default value but the config option documentation is unavailable this reasonable expectation will not be met. This can cause obscure crashes and weirdness depending on how the code handles it. This change tweaks the behavior to ensure that the config option is still allowed to register, apply default values, and be set when devmode is not enabled. If devmode is enabled then the option can NOT be set. This also does not remove the initial documentation error message that is output on load when registering the configuration option. ASTERISK-25725 #close Change-Id: Iec42fca6b35f31326c33fcdc25473f6fd7bc8af8
2016-01-22logger.c: Fix buffer overrun found by address sanitizer.Richard Mudgett
The null terminator of the tail struct member was not being allocated when no logger.conf config file is installed. ASTERISK-25714 #close Reported by: Badalian Vyacheslav Change-Id: I45770fdd08af39506a3bc33ba279c4f16e047a30
2016-01-21main/asterisk.c: ast_el_read_charDiederik de Groot
Make sure buf[res] is not accessed at res=-1 (buffer underrun). Address Sanitizer will complain about this quite loudly. ASTERISK-24801 #close Change-Id: Ifcd7f691310815a31756b76067c56fba299d3ae9
2016-01-19taskprocessor.c: Increase CLI "core ping taskprocessor" timeout.Richard Mudgett
Change-Id: I4892d6acbb580d6c207d006341eaf5e0f8f2a029
2016-01-19taskprocessor.c: Fix some taskprocessor unrefs.Richard Mudgett
You have to call ast_taskprocessor_unref() outside of the taskprocessor implementation code. Taskprocessor use since v12 has become more transient than just the singleton uses in earlier versions. Change-Id: If7675299924c0cc65f2a43a85254e6f06f2d61bb
2016-01-17Merge "main/config: Clean config maps on shutdown." into 13Joshua Colp
2016-01-16Merge "bridge_basic: don't play an attended transfer fail sound after target ↵Joshua Colp
hangs up" into 13
2016-01-16Merge "bridge_basic: don't cache xferfailsound during an attended transfer" ↵Joshua Colp
into 13
2016-01-16Merge "taskprocessor.c: Simplify ast_taskprocessor_get() return code." into 13Joshua Colp
2016-01-15main/config: Clean config maps on shutdown.Corey Farrell
ASTERISK-25700 #close Change-Id: I096da84f9c62c6095f68bcf98eac4b7c7868e808
2016-01-15bridge_basic: don't cache xferfailsound during an attended transferKevin Harwell
The xferfailsound was read from the channel at the beginning of the transfer, and that value is "cached" for the duration of the transfer. Therefore, changing the xferfailsound on the channel using the FEATURE() dialplan function does nothing once the transfer is under way. This makes it so the transfer code instead gets the xferfailsound configuration options from the channel when it is actually going to be used. This patch also fixes a potential memory leak of the props object as well as making sure the condition variable gets initialized before being destroyed. ASTERISK-25696 #close Change-Id: Ic726b0f54ef588bd9c9c67f4b0e4d787934f85e4
2016-01-15taskprocessor.c: Simplify ast_taskprocessor_get() return code.Richard Mudgett
Change-Id: Id5bd18ef1f60ef8be453e677e98478298358a9d1
2016-01-14astmm.c: Add more stats to CLI "memory show" commands.Richard Mudgett
* Add freed regions totals to allocations and summary. * Add totals for all allocations and not just the selected allocations. Change-Id: I61d5a5112617b0733097f2545a3006a344b4032a
2016-01-14bridge_basic: don't play an attended transfer fail sound after target hangs upKevin Harwell
If the attended transfer destination answers (picks call up or goes to voicemail) and then hangs up on the transferer then transferer hears the fail sound. This patch makes it so the fail sound is not played when the transfer destination/target hangs up after answering. ASTERISK-25697 #close Change-Id: I97f142fe4fc2805d1a24b7c16143069dc03d9ded
2016-01-13Merge "app: Queue hangup if channel is hung up during sub or macro ↵Mark Michelson
execution." into 13
2016-01-13app: Queue hangup if channel is hung up during sub or macro execution.Joshua Colp
This issue was exposed when executing a connected line subroutine. When connected or redirected subroutines or macros are executed it is expected that the underlying applications and logic invoked are fast and do not consume frames. In practice this constraint is not enforced and if not adhered to will cause channels to continue when they shouldn't. This is because each caller of the connected or redirected logic does not check whether the channel has been hung up on return. As a result the the hung up channel continues. This change makes it so when the API to execute a subroutine or macro is invoked the channel is checked to determine if it has hung up. If it has then a hangup is queued again so the caller will see it and stop. ASTERISK-25690 #close Change-Id: I1f9a8ceb1487df0389f0d346ce0f6dcbcaf476ea
2016-01-12Merge topic 'update_taskprocessor_commands' into 13Joshua Colp
* changes: Sorcery: Create human friendly serializer names. Stasis: Create human friendly taskprocessor/serializer names. taskprocessor.c: New API for human friendly taskprocessor names. taskprocessor.c: Sort CLI "core show taskprocessors" output.
2016-01-12Merge "taskprocessor.c: Fix CLI "core show taskprocessors" output format." ↵Joshua Colp
into 13
2016-01-12Merge topic 'update_taskprocessor_commands' into 13Joshua Colp
* changes: taskprocessor.c: Fix CLI "core show taskprocessors" unref. taskprocessor.c: Add CLI "core ping taskprocessor" missing unlock.
2016-01-12Merge "ccss.c: Replace space in taskprocessor name." into 13Joshua Colp
2016-01-11Merge "pbx: Deadlock between contexts container and context_merge locks" into 13Joshua Colp
2016-01-11Merge "manager: Cleanup manager_channelvars during shutdown." into 13Joshua Colp
2016-01-11pbx: Deadlock between contexts container and context_merge locksKevin Harwell
Recent changes (ASTERISK-25394 commit 2bd27d12223fe33b58c453965ed5c6ed3af7c4f5) introduced the possibility of a deadlock. Due to the mentioned modifications ast_change_hints now needs to keep both merge/delete and state callbacks from occurring while it executes. Unfortunately, sometimes ast_change_hints can be called with the contexts container locked. When this happens it's possible for another thread to grab the context_merge_lock before the thread calling into ast_change_hints does and then try to obtain the contexts container lock. This of course causes a deadlock between the two threads. The thread calling into ast_change_hints waits for the other thread to release context_merge_lock and the other thread is waiting on that one to release the contexts container lock. Unfortunately, there is not a great way to fix this problem. When hints change, the subsequent state callbacks cannot run at the same time as a merge/delete, nor when the usual state callbacks do. This patch alleviates the problem by having those particular callbacks (the ones run after a hint change) occur in a serialized task. By moving the context_merge_lock to a task it can now safely be attempted or held without a deadlock occurring. ASTERISK-25640 #close Reported by: Krzysztof Trempala Change-Id: If2210ea241afd1585dc2594c16faff84579bf302
2016-01-10devicestate: Cleanup engine thread during graceful shutdown.Corey Farrell
ASTERISK-25681 #close Change-Id: I64337c70f0ebd8c77f70792042684607c950c8f1
2016-01-10manager: Cleanup manager_channelvars during shutdown.Corey Farrell
ASTERISK-25680 #close Change-Id: I3251d781cbc3f48a6a7e1b969ac4983f552b2446
2016-01-08Sorcery: Create human friendly serializer names.Richard Mudgett
Sorcery name formats: sorcery/<type>-<seq> -- Sorcery thread pool serializer Change-Id: Idc2e5d3dbab15c825b97c38c028319a0d2315c47
2016-01-08Stasis: Create human friendly taskprocessor/serializer names.Richard Mudgett
Stasis name formats: subm:<topic>-<seq> -- Stasis subscription mailbox task processor subp:<topic>-<seq> -- Stasis subscription thread pool serializer Change-Id: Id19234b306e3594530bb040bc95d977f18ac7bfd
2016-01-08taskprocessor.c: New API for human friendly taskprocessor names.Richard Mudgett
* Add new API call to get a sequence number for use in human friendly taskprocessor names. * Add new API call to create a taskprocessor name in a given buffer and append a sequence number. Change-Id: Iac458f05b45232315ed64aa31b1df05b875537a9
2016-01-08taskprocessor.c: Fix CLI "core show taskprocessors" output format.Richard Mudgett
Update the CLI "core show taskprocessors" output format to not be distorted because UUID names are longer than previously used taskprocessor names. Change-Id: I1a5c82ce3e8f765a0627796aba87f8f7be077601
2016-01-08taskprocessor.c: Fix CLI "core show taskprocessors" unref.Richard Mudgett
Change-Id: I1d9f4e532caa6dfabe034745dd16d06134efdce5
2016-01-08taskprocessor.c: Sort CLI "core show taskprocessors" output.Richard Mudgett
Change-Id: I71e7bf57c7b908c8b8c71f1816348ed7c5a5d51e
2016-01-08ccss.c: Replace space in taskprocessor name.Richard Mudgett
The CLI "core ping taskprocessor" command does not work very well with taskprocessor names that have spaces in them. You have to put quotes around the name so using tab completion becomes awkward. Change-Id: I29e806dd0a8a0256f4e2e0a7ab88c9e19ab0eda0
2016-01-08taskprocessor.c: Add CLI "core ping taskprocessor" missing unlock.Richard Mudgett
Change-Id: I78247e0faf978bf850b5ba4e9f4933ab3c59d17b
2016-01-08main: Use ast_strdup instead of strdupDiederik de Groot
Fix compile error in main/utils.c because strdup was used in dummy_start Change-Id: Id61a6cf4f3cbf235450441e10e7da101a6335793
2016-01-07ast_format_cap_append_by_type: Resolve codec reference leak.Corey Farrell
This resolves a reference leak caused by ASTERISK-25535. The pointer returned by ast_format_get_codec is saved so it can be released. ASTERISK-25664 #close Change-Id: If9941b1bf4320b2c59056546d6bce9422726d1ec
2016-01-06Merge topic 'pbx-split' into 13Joshua Colp
* changes: main/pbx: Move hangup handler routines to pbx_hangup_handler.c. main/pbx: Move dialplan application management routines to pbx_app.c. main/pbx: Move switch routines to pbx_switch.c.
2016-01-06Merge "main/pbx: Move timing routines to pbx_timing.c." into 13Joshua Colp
2016-01-05asterisk.h: Add ASTERISK_REGISTER_FILE macroGeorge Joseph
The 11/13 branches and master use 2 different file version macros. 11/13 uses ASTERISK_FILE_VERSION but master uses ASTERISK_REGISTER_FILE. This means a new file added to 11/13 can't just be cherry-picked to master because the macro has to be changed. To make cherry-picking possible, ASTERISK_REGISTER_FILE was added to asterisk.h as a simple alias for ASTERISK_FILE_VERSION(__FILE__, NULL) The "$Revision$" tag doesn't do anything since Asterisk moved to git so just passing NULL as the verison works fine. asterisk.h was also annotated to deprecate ASTERISK_FILE_VERSION and suggest using ASTERISK_REGISTER_FILE for all new files. Finally, 2 recent file additions, pbx_builtins.c and pbx_functions.c, were modified to use the new macro to make sure it actually worked. 'core show file version' showed the correct output. Change-Id: I5867ed898818d26ee49bb6e5c7d4c1a45d4789a5
2016-01-05Merge "main/pbx: Move variable routines to pbx_variables.c." into 13Matt Jordan
2016-01-05stasis_cache_pattern: Backport to 13George Joseph
Somehow stasis_cache_pattern got out of sync between 13 and master and it was causing duplicate channel message issues in 13 when related to a specific endpoint. I.E. from statsd, 'endpoints.PJSIP.1174.channels 0|g' was being emitted twice. Backporting stasis_cache_pattern from master to 13 solved the issue and running the unit and testsuite tests confirmed that no new ones were created. ASTERISK-25317 #close Change-Id: Ia8707462f62d15eed14541c37f332a7bbbceb548
2016-01-05main/pbx: Move hangup handler routines to pbx_hangup_handler.c.Corey Farrell
This is the sixth patch in a series meant to reduce the bulk of pbx.c. This moves hangup handler management functions to their own source. Change-Id: Ib25a75aa57fc7d5c4294479e5cc46775912fb104
2016-01-05main/pbx: Move dialplan application management routines to pbx_app.c.Corey Farrell
This is the sixth patch in a series meant to reduce the bulk of pbx.c. This moves dialplan application management functions to their own source. Change-Id: I444c10fb90a3cdf9f3047605d6a8aad49c22c44c
2016-01-05main/pbx: Move switch routines to pbx_switch.c.Corey Farrell
This is the fifth patch in a series meant to reduce the bulk of pbx.c. This moves ast_switch functions to their own source. Change-Id: Ic2592a18a5c4d8a3c2dcf9786c9a6f650a8c628e