summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2017-02-22Merge "realtime: Fix ast_load_realtime_multientry handling"zuul
2017-02-22Merge "realtime: Centralize some common realtime backend code"Joshua Colp
2017-02-21Merge "res_pjsip_authenticator_digest.c: Fix sorcery's immutable contract ↵zuul
violation."
2017-02-21Merge "res_pjsip: Update artificial auth whenever default_realm changes."zuul
2017-02-21Merge "res_pjsip: Update authentication realm documentation."zuul
2017-02-21Merge "pjproject: Fixes to resolve DNS SRV crashes."zuul
2017-02-21Merge "pjproject: Increase SENDER_WIDTH column size for 64-bit system logs."zuul
2017-02-21Merge "pjsip_distributor.c: Update some debug messages to get transaction name."zuul
2017-02-21Merge "res_config_ldap: Don't try to delete non-existent attributes"zuul
2017-02-21Merge "res_config_ldap: Remove extraneous line numbers from log messages"zuul
2017-02-21Merge "res_config_ldap: Make memory allocation more consistent"zuul
2017-02-21Merge "res_config_ldap: Fix configuration inheritance from _general"zuul
2017-02-21Merge "res_config_ldap: Fix erroneous LDAP_MOD_REPLACE in LDAP modify"zuul
2017-02-21Merge changes from topic 'sdp_state_beginnings'Joshua Colp
* changes: Add SDP translator and PJMEDIA implementation. Add initial SDP options.
2017-02-21Merge "build: Execute ldconfig to build cache."Joshua Colp
2017-02-21realtime: Fix ast_load_realtime_multientry handlingSean Bright
ast_load_realtime_multientry() returns an ast_config structure whose ast_categorys are keyed with the empty strings. Several modules were giving semantic meaning to the category names causing problems at runtime. * app_directory: Treated the category name as the mailbox name, and would fail to direct calls to the appropriate extension after an entry was chosen. * app_queue: Queues, queue members, and queue rules were all affected and needed to be updated. * pbx_realtime: Pattern matching would never succeed because the extension entered by the user was always compared to the empty string. Change-Id: Ie7e44986344b0b76ea8f6ddb5879f5040c6ca8a7
2017-02-21realtime: Centralize some common realtime backend codeSean Bright
All of the realtime backends create artificial ast_categorys to pass back into the core as query results. These categories have no filename or line number information associated with them and the backends differ slightly on how they create them. So create a couple helper macros to help make things more consistent. Also updated the call sites to remove redundant error messages about memory allocation failure. Note that res_config_ldap sets the category filename to the 'table name' but that is not read by anything in the core, so I've dropped it. Change-Id: I3a1fd91e0c807dea1ce3b643b0a6fe5be9002897
2017-02-21Merge "realtime: Fix LIKE escaping in SQL backends"zuul
2017-02-21build: Execute ldconfig to build cache.Joshua Colp
On some platforms a multiarch approach is used for libraries. The build system does not take this into account and still places libraries into the lib directory if no --libdir is specified to configure. On initial startup this results in libasteriskssl.so not being found, as it is not in the multiarch lib directory. This change does the minimally invasive thing and executes ldconfig so that the libraries in the lib directory are found and their location cached. By doing so Asterisk starts up fine. If DESTDIR is specified, however, the old logic is executed as the install process may not have permission to alter the ldconfig cache. ASTERISK-26705 Change-Id: If4eca46ac510c6fea5568256280ffdb3888d7bb4
2017-02-20res_pjsip_authenticator_digest.c: Fix sorcery's immutable contract violation.Richard Mudgett
The inbound authentication object is supposed to be immutable when it is stored in sorcery. However, the immutable property is violated if the authentication object does not have a realm set. The immutable contract violation has a different effect depending upon what sorcery back end is used. If it is the config file back end you would get the same object back until res_pjsip is reloaded. If it is the real-time or AstDB back end you would get a new object on each query. If it is cached you would get the same object back until it is refreshed from the database. Once an inbound authentication object has its realm set it may or may not get updated again if the default_realm changes. If the same authentication object is used for inbound and outbound authentication then the immutable violation can make it very hard to determine why the outbound authentication now fails. The only diagnostic message is a complaint about no realms matching when it had worked earlier. It fails because of the difference in behaviour for an empty realm setting between inbound and outbound authentication objects. * Fixed the sorcery object immutable violation by creating a new object and setting the default_realm on it instead. The new object is a shallow copy for speed. * The auth_store thread storage no longer holds an auth ref. It interferes with the shallow copy and never needed a ref anyway. ASTERISK-26799 #close Change-Id: I2328a52f61b78ed5fbba38180b7f183ee7e08956
2017-02-20res_pjsip: Update artificial auth whenever default_realm changes.Richard Mudgett
There was code attempting to update the artificial authentication object whenever the default_realm changed. However, once the artificial authentication object was created it would never get updated. The artificial authentication object would require a system restart for a change to the default_realm to take effect. ASTERISK-26799 Change-Id: Id59036e9529c2d3ed728af2ed904dc36e7094802
2017-02-20res_pjsip: Update authentication realm documentation.Richard Mudgett
Using the same auth section for inbound and outbound authentication is not recommended. There is a difference in meaning for an empty realm setting between inbound and outbound authentication uses. An empty inbound auth realm represents the global section's default_realm value when the authentication object is used to challenge an incoming request. An empty outgoing auth realm is treated as a don't care wildcard when the authentication object is used to respond to an incoming authentication challenge. ASTERISK-26799 Change-Id: Id3952f7cfa1b6683b9954f2c5d2352d2f11059ce
2017-02-20Merge "app_voicemail: vm_authenticate accesses uninitialized memory"zuul
2017-02-20Merge "tcptls.c: Add some missing allocation failure checks."zuul
2017-02-20pjproject: Fixes to resolve DNS SRV crashes.Richard Mudgett
* Re #1945 (misc): Don't trigger SRV complete callback when there is a parse error. * srv_resolver.c: Don't try to send query if already considered resolved. ** In resolve_hostnames() don't try to resolve a query that is already considered resolved. ** In resolve_hostnames() fix DNS typo in comments. ** In build_server_entries() move a common expression assigning to cnt earlier. * sip_transport.c: Fix tdata object name to actually contain the pointer. It helps if the logs referencing a tdata object buffer actually have a name that includes the correct pointer as part of the name. Also since the tdata has its own pool it helps if any logs referencing the pool have the same name as the tdata object. This change brings tdata logging in line with how tsx objects are named. ASTERISK-26669 #close ASTERISK-26738 #close Change-Id: I56af2ded25476b3e870ca586ee69ed6954ef75af
2017-02-20pjproject: Increase SENDER_WIDTH column size for 64-bit system logs.Richard Mudgett
ASTERISK-26669 ASTERISK-26738 Change-Id: Ibae6fc8cae69a1f04df0c577c4c11200499d6fe0
2017-02-20pjsip_distributor.c: Update some debug messages to get transaction name.Richard Mudgett
* Removed overloaded unmatched response ignore. We obviously sent the request so we shouldn't ignore it because it isn't new work. ASTERISK-26669 ASTERISK-26738 Change-Id: I55fb5cadc83a8e6699b347c6dc7fa32c5a617d37
2017-02-20Merge "pjproject cli: Add object count after object lists"zuul
2017-02-20Merge "res_config_sqlite3: Properly create missing columns when necessary"zuul
2017-02-20app_voicemail: vm_authenticate accesses uninitialized memorySean Bright
vm_authenticate doesn't always set the passed ast_vm_user argument, so we initialize to 0 before passing it in. ASTERISK-25893 #close Reported by: Filip Jenicek Change-Id: Ia3cc0128f93d352ed9add8d5c2f0f7232c2cbe4a
2017-02-20Merge "Revert "build: Execute ldconfig to build cache.""zuul
2017-02-20Revert "build: Execute ldconfig to build cache."Joshua Colp
This reverts commit 8851c3e0885cb704a5a6159a51768ea5297e9b10. Change-Id: I124380be5e3bd57da978428a2a93604336ccd0db
2017-02-20Merge "Binaural synthesis (confbridge): Adds ↵Joshua Colp
utils/conf_bridge_binaural_hrir_importer"
2017-02-20pjproject cli: Add object count after object listsGeorge Joseph
When listing a container, we now print the number of objects in the container at the end of the list. Change-Id: I791cbc3ee9da9a2af9adc655164b5d32953df812
2017-02-20res_config_ldap: Don't try to delete non-existent attributesSean Bright
OpenLDAP will raise an error when we try to delete an LDAP attribute that doesn't exist. We need to filter out LDAP_MOD_DELETE requests based on which attributes the current LDAP entry actually has. There is of course a small window of opportunity for this to still fail, but it is much less likely now. Change-Id: I3fe1b04472733e43151563aaf9f8b49980273e6b
2017-02-20res_config_ldap: Remove extraneous line numbers from log messagesSean Bright
Extraneous line numbers were being output in many log messages. These have been removed. Change-Id: Ice9efa3d252ee87f37fa8f5ea852fda482675431
2017-02-20res_config_ldap: Make memory allocation more consistentSean Bright
The code in update_ldap() and update2_ldap() was using both Asterisk's memory allocation routines as well as OpenLDAP's. I've changed it so that everything that is passed to OpenLDAP's functions are allocated with their routines. Change-Id: Iafec9c1fd8ea49ccc496d6316769a6a426daa804
2017-02-20res_config_ldap: Fix configuration inheritance from _generalSean Bright
The "_general" configuration section allows administrators to provide both general configuration options (host, port, url, etc.) as well as a global realtime-to-LDAP-attribute mapping that is a fallback if one of the later sections do not override it. This neglected to exclude the general configuration options from the mapping. As an example, during my testing, chan_sip requested 'port' from realtime, and because I did not have it defined, it pulled in the 'port' configuration option from "_general." We now filter those out explicitly. Change-Id: I1fc61560bf96b8ba623063cfb7e0a49c4690d778
2017-02-20res_config_ldap: Fix erroneous LDAP_MOD_REPLACE in LDAP modifySean Bright
We always treat the first change of our modification batch as a replacement when it sometimes is actually a delete. So we have to pass the correct arguments to the OpenLDAP library. ASTERISK-26580 #close Reported by: Nicholas John Koch Patches: res_config_ldap.c-11.24.1.patch (license #6833) patch uploaded by Nicholas John Koch Change-Id: I0741d25de07c9539f1edc6eff3696165dfb64fbe
2017-02-19Merge "res_config_sqlite3: Fix crash when loading with invalid config"zuul
2017-02-19Merge "pjproject-bundled: Fix checksum verification when using cURL"Joshua Colp
2017-02-18res_config_sqlite3: Fix crash when loading with invalid configSean Bright
When ast_config_load() fails with CONFIG_STATUS_FILEINVALID, it has already destroyed the ast_config struct for us. Trying to do it again results in a crash. Change-Id: If6a5c0ca718ad428e01a1fb25beb209a9ac18bc6
2017-02-17Merge "Remove extra ast_iostream_close() calls."zuul
2017-02-17pjproject-bundled: Fix checksum verification when using cURLSean Bright
ASTERISK-26802 #close Reported by: Michael L. Young Change-Id: Iad293080f55d4d69ab615717a15211d916eed613
2017-02-17tcptls.c: Add some missing allocation failure checks.Richard Mudgett
* Fix tcptls_session ref and fd leak in ast_tcptls_server_root(). Change-Id: I0ddf01cd3c10d3b6666d7bf68d4e206a37f4fbdb
2017-02-17Remove extra ast_iostream_close() calls.Mark Michelson
When AMI encounters an error at the beginning of a session, it would explicitly call ast_iostream_close() on its tcptls session's iostream. It then would jump to a label where it would shut down the tcptls session instance. The tcptls session instance would again attempt to close the iostream. Under normal circumstances, this might go by unnoticed. However, when MALLOC_DEBUG is enabled, all fields on the iostream get set to 0xdeaddead when the iostream is freed. Thus a second call to ast_iostream_close() after the iostream has been freed would reslt in an attempt to call SSL_shutdown on 0xdeaddead, which would crash and burn horribly. The fix here is to not directly close the iostream from the dangerous scenarios. The specific scenarios are: * Exceeding the configured authlimit * Failing to build a mansession on a new connection Change-Id: I908f98d516afd5a263bd36b072221008a4731acd
2017-02-17Add SDP translator and PJMEDIA implementation.Mark Michelson
This creates the following: * Asterisk's internal representation of an SDP * An API for translating SDPs from one format to another * An implementation of a translator for PJMEDIA Change-Id: Ie2ecd3cbebe76756577be9b133e84d2ee356d46b
2017-02-17Add initial SDP options.Mark Michelson
This is step one of adding an SDP API: defining some configurable settings for SDPs. This is based on options that are currently supported in Asterisk. Change-Id: I1ede91aafed403b12a9ccdfb91a88389baa7e5d7
2017-02-16build: Execute ldconfig to build cache.Joshua Colp
On some platforms a multiarch approach is used for libraries. The build system does not take this into account and still places libraries into the lib directory if no --libdir is specified to configure. On initial startup this results in libasteriskssl.so not being found, as it is not in the multiarch lib directory. This change does the minimally invasive thing and executes ldconfig so that the libraries in the lib directory are found and their location cached. By doing so Asterisk starts up fine. ASTERISK-26705 Change-Id: I6d30b6427e9d5e69470e11327c7ff203fa7da519
2017-02-16Merge "stream: Rename creates/destroys to allocs/frees"zuul