summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--addons/chan_ooh323.c7
-rw-r--r--addons/ooh323c/src/ootypes.h76
-rw-r--r--addons/ooh323cDriver.h2
-rw-r--r--apps/app_adsiprog.c6
-rw-r--r--apps/app_sms.c2
-rw-r--r--autoconf/ast_check_pwlib.m44
-rw-r--r--autoconf/ast_ext_lib.m42
-rwxr-xr-xconfigure4
-rw-r--r--main/editline/term.c2
-rw-r--r--main/pbx.c10
-rw-r--r--pbx/pbx_lua.c4
-rw-r--r--res/res_curl.c16
-rw-r--r--res/res_http_websocket.c3
-rw-r--r--res/res_odbc.c13
-rw-r--r--res/res_pjsip_endpoint_identifier_ip.c63
-rw-r--r--res/stasis/app.c16
16 files changed, 115 insertions, 115 deletions
diff --git a/addons/chan_ooh323.c b/addons/chan_ooh323.c
index 285ed2849..3afcecd96 100644
--- a/addons/chan_ooh323.c
+++ b/addons/chan_ooh323.c
@@ -2604,9 +2604,12 @@ static struct ooh323_peer *build_peer(const char *name, struct ast_variable *v,
}
} else if (!strcasecmp(v->name, "outgoinglimit")) {
- peer->outgoinglimit = atoi(v->value);
- if (peer->outgoinglimit < 0)
+ int val = atoi(v->value);
+ if (val < 0) {
peer->outgoinglimit = 0;
+ } else {
+ peer->outgoinglimit = val;
+ }
} else if (!strcasecmp(v->name, "accountcode")) {
ast_copy_string(peer->accountcode, v->value, sizeof(peer->accountcode));
} else if (!strcasecmp(v->name, "faststart")) {
diff --git a/addons/ooh323c/src/ootypes.h b/addons/ooh323c/src/ootypes.h
index cc7cd7c36..71a7219a6 100644
--- a/addons/ooh323c/src/ootypes.h
+++ b/addons/ooh323c/src/ootypes.h
@@ -154,45 +154,45 @@ typedef enum OOCallClearReason {
/**
Various message types for H225 and H245 messages
*/
-#define OO_MSGTYPE_MIN 101
-#define OOQ931MSG 101
-#define OOH245MSG 102
-#define OOSetup 103
-#define OOCallProceeding 104
-#define OOAlert 105
-#define OOConnect 106
-#define OOReleaseComplete 107
-#define OOFacility 108
-#define OOInformationMessage 109
-#define OOMasterSlaveDetermination 110
-#define OOMasterSlaveAck 111
-#define OOMasterSlaveReject 112
-#define OOMasterSlaveRelease 113
-#define OOTerminalCapabilitySet 114
-#define OOTerminalCapabilitySetAck 115
-#define OOTerminalCapabilitySetReject 116
-#define OOTerminalCapabilitySetRelease 117
-#define OOOpenLogicalChannel 118
-#define OOOpenLogicalChannelAck 119
-#define OOOpenLogicalChannelReject 120
-#define OOOpenLogicalChannelRelease 121
-#define OOOpenLogicalChannelConfirm 122
-#define OOCloseLogicalChannel 123
-#define OOCloseLogicalChannelAck 124
-#define OORequestChannelClose 125
-#define OORequestChannelCloseAck 126
-#define OORequestChannelCloseReject 127
-#define OORequestChannelCloseRelease 128
-#define OOEndSessionCommand 129
-#define OOUserInputIndication 130
-#define OORequestModeAck 131
-#define OORequestModeReject 132
-#define OORequestMode 133
-#define OORequestDelayResponse 134
-#define OORequestDelayRequest 135
-#define OOStatus 136
+#define OO_MSGTYPE_MIN 0x65
+#define OOQ931MSG 0x65
+#define OOH245MSG 0x66
+#define OOSetup 0x67
+#define OOCallProceeding 0x68
+#define OOAlert 0x69
+#define OOConnect 0x6a
+#define OOReleaseComplete 0x6b
+#define OOFacility 0x6c
+#define OOInformationMessage 0x6d
+#define OOMasterSlaveDetermination 0x6e
+#define OOMasterSlaveAck 0x6f
+#define OOMasterSlaveReject 0x70
+#define OOMasterSlaveRelease 0x71
+#define OOTerminalCapabilitySet 0x72
+#define OOTerminalCapabilitySetAck 0x73
+#define OOTerminalCapabilitySetReject 0x74
+#define OOTerminalCapabilitySetRelease 0x75
+#define OOOpenLogicalChannel 0x76
+#define OOOpenLogicalChannelAck 0x77
+#define OOOpenLogicalChannelReject 0x78
+#define OOOpenLogicalChannelRelease 0x79
+#define OOOpenLogicalChannelConfirm 0x7a
+#define OOCloseLogicalChannel 0x7b
+#define OOCloseLogicalChannelAck 0x7c
+#define OORequestChannelClose 0x7d
+#define OORequestChannelCloseAck 0x7e
+#define OORequestChannelCloseReject 0x7f
+#define OORequestChannelCloseRelease 0x80
+#define OOEndSessionCommand 0x81
+#define OOUserInputIndication 0x82
+#define OORequestModeAck 0x83
+#define OORequestModeReject 0x84
+#define OORequestMode 0x85
+#define OORequestDelayResponse 0x86
+#define OORequestDelayRequest 0x87
+#define OOStatus 0x88
-#define OO_MSGTYPE_MAX 136
+#define OO_MSGTYPE_MAX 0x88
/* Timer types */
#define OO_CALLESTB_TIMER (1<<0)
diff --git a/addons/ooh323cDriver.h b/addons/ooh323cDriver.h
index 333f01f33..00bf9b551 100644
--- a/addons/ooh323cDriver.h
+++ b/addons/ooh323cDriver.h
@@ -14,7 +14,7 @@
*
*****************************************************************************/
#ifndef _OO_H323CDRIVER_H_
-#define __OO_H323DRIVER_H_
+#define _OO_H323CDRIVER_H_
#include "chan_ooh323.h"
#include "ootypes.h"
#include "ooh323ep.h"
diff --git a/apps/app_adsiprog.c b/apps/app_adsiprog.c
index 85ede5306..e73795aae 100644
--- a/apps/app_adsiprog.c
+++ b/apps/app_adsiprog.c
@@ -1111,7 +1111,7 @@ static int adsi_process(struct adsi_script *state, char *buf, const char *script
tmp[7] = '\0';
}
/* Setup initial stuff */
- state->key->retstr[0] = 128;
+ state->key->retstr[0] = 0x80;
/* 1 has the length */
state->key->retstr[2] = state->key->id;
/* Put the Full name in */
@@ -1147,7 +1147,7 @@ static int adsi_process(struct adsi_script *state, char *buf, const char *script
break;
}
/* Setup sub */
- state->sub->data[0] = 130;
+ state->sub->data[0] = 0x82;
/* 1 is the length */
state->sub->data[2] = 0x0; /* Clear extensibility bit */
state->sub->datalen = 3;
@@ -1264,7 +1264,7 @@ static int adsi_process(struct adsi_script *state, char *buf, const char *script
/* Something bad happened */
break;
}
- disp->data[0] = 129;
+ disp->data[0] = 0x81;
disp->data[1] = disp->datalen - 2;
disp->data[2] = ((lrci & 0x3) << 6) | disp->id;
disp->data[3] = wi;
diff --git a/apps/app_sms.c b/apps/app_sms.c
index ce1746fdc..c3d8ccd4b 100644
--- a/apps/app_sms.c
+++ b/apps/app_sms.c
@@ -801,7 +801,7 @@ static void sms_log(sms_t * h, char status)
*p++ = '\\';
*p++ = 'r';
} else if (h->ud[n] < 32 || h->ud[n] == 127) {
- *p++ = 191;
+ *p++ = 0xbf;
} else {
*p++ = h->ud[n];
}
diff --git a/autoconf/ast_check_pwlib.m4 b/autoconf/ast_check_pwlib.m4
index 510881f3c..beaf8db74 100644
--- a/autoconf/ast_check_pwlib.m4
+++ b/autoconf/ast_check_pwlib.m4
@@ -103,7 +103,7 @@ if test "${HAS_PWLIB:-unset}" = "unset" ; then
else
AC_CHECK_HEADER(/usr/local/include/ptlib.h, HAS_PWLIB=1, )
if test "${HAS_PWLIB:-unset}" != "unset" ; then
- AC_PATH_PROG(PTLIB_CONFIG, ptlib-config, , /usr/local/bin$PATH_SEPARATOR/usr/local/share/pwlib/make)
+ AC_PATH_PROG(PTLIB_CONFIG, ptlib-config, , /usr/local/bin$PATH_SEPARATOR/usr/local/share/ptlib/make$PATH_SEPARATOR/usr/local/share/pwlib/make)
PWLIB_INCDIR="/usr/local/include"
PWLIB_LIBDIR=`${PTLIB_CONFIG} --pwlibdir 2>/dev/null`
if test "${PWLIB_LIBDIR:-unset}" = "unset"; then
@@ -121,7 +121,7 @@ if test "${HAS_PWLIB:-unset}" = "unset" ; then
else
AC_CHECK_HEADER(/usr/include/ptlib.h, HAS_PWLIB=1, )
if test "${HAS_PWLIB:-unset}" != "unset" ; then
- AC_PATH_PROG(PTLIB_CONFIG, ptlib-config, , /usr/bin$PATH_SEPARATOR/usr/share/pwlib/make)
+ AC_PATH_PROG(PTLIB_CONFIG, ptlib-config, , /usr/bin$PATH_SEPARATOR/usr/share/ptlib/make$PATH_SEPARATOR/usr/share/pwlib/make)
PWLIB_INCDIR="/usr/include"
PWLIB_LIBDIR=`${PTLIB_CONFIG} --pwlibdir 2>/dev/null`
if test "${PWLIB_LIBDIR:-unset}" = "unset"; then
diff --git a/autoconf/ast_ext_lib.m4 b/autoconf/ast_ext_lib.m4
index 080b8c34d..8e5b50e4a 100644
--- a/autoconf/ast_ext_lib.m4
+++ b/autoconf/ast_ext_lib.m4
@@ -39,7 +39,7 @@ AC_DEFUN([AST_EXT_LIB_SETUP],
# AST_OPTION_ONLY([option name], [option variable], [option description], [default value])
AC_DEFUN([AST_OPTION_ONLY],
[
-AC_ARG_WITH([$1], AC_HELP_STRING([--with-$1=PATH], [use $3 in PATH]),
+AC_ARG_WITH([$1], AS_HELP_STRING([--with-$1=PATH], [use $3 in PATH]),
[
case ${withval} in
n|no)
diff --git a/configure b/configure
index 2dd027720..abca762c9 100755
--- a/configure
+++ b/configure
@@ -28858,7 +28858,7 @@ else
;;
*)
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in /usr/local/bin$PATH_SEPARATOR/usr/local/share/pwlib/make
+for as_dir in /usr/local/bin$PATH_SEPARATOR/usr/local/share/ptlib/make$PATH_SEPARATOR/usr/local/share/pwlib/make
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
@@ -28920,7 +28920,7 @@ else
;;
*)
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in /usr/bin$PATH_SEPARATOR/usr/share/pwlib/make
+for as_dir in /usr/bin$PATH_SEPARATOR/usr/share/ptlib/make$PATH_SEPARATOR/usr/share/pwlib/make
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
diff --git a/main/editline/term.c b/main/editline/term.c
index 03623be21..6814cc4ca 100644
--- a/main/editline/term.c
+++ b/main/editline/term.c
@@ -428,7 +428,7 @@ term_alloc(EditLine *el, const struct termcapstr *t, const char *cap)
*/
tlen = 0;
for (tmp = tlist; tmp < &tlist[T_str]; tmp++)
- if (*tmp != NULL && *tmp != '\0' && *tmp != *str) {
+ if (*tmp != NULL && **tmp != '\0' && *tmp != *str) {
char *ptr;
for (ptr = *tmp; *ptr != '\0'; termbuf[tlen++] = *ptr++)
diff --git a/main/pbx.c b/main/pbx.c
index 173b62e99..b313e0528 100644
--- a/main/pbx.c
+++ b/main/pbx.c
@@ -2823,7 +2823,6 @@ static int pbx_extension_helper(struct ast_channel *c, struct ast_context *con,
struct ast_exten *e;
struct ast_app *app;
char *substitute = NULL;
- int res;
struct pbx_find_info q = { .stacklen = 0 }; /* the rest is reset in pbx_find_extension */
char passdata[EXT_DATA_SIZE];
int matching_action = (action == E_MATCH || action == E_CANMATCH || action == E_MATCHMORE);
@@ -2840,9 +2839,12 @@ static int pbx_extension_helper(struct ast_channel *c, struct ast_context *con,
ast_unlock_contexts();
return -1; /* success, we found it */
} else if (action == E_FINDLABEL) { /* map the label to a priority */
- res = e->priority;
+ int res = e->priority;
+
ast_unlock_contexts();
- return res; /* the priority we were looking for */
+
+ /* the priority we were looking for */
+ return res;
} else { /* spawn */
if (!e->cached_app)
e->cached_app = pbx_findapp(e->app);
@@ -2892,7 +2894,7 @@ static int pbx_extension_helper(struct ast_channel *c, struct ast_context *con,
} else {
if (!q.swo->exec) {
ast_log(LOG_WARNING, "No execution engine for switch %s\n", q.swo->name);
- res = -1;
+ return -1;
}
return q.swo->exec(c, q.foundcontext ? q.foundcontext : context, exten, priority, callerid, q.data);
}
diff --git a/pbx/pbx_lua.c b/pbx/pbx_lua.c
index 655d2df2e..e1f559059 100644
--- a/pbx/pbx_lua.c
+++ b/pbx/pbx_lua.c
@@ -1636,9 +1636,6 @@ static int load_or_reload_lua_stuff(void)
res = AST_MODULE_LOAD_DECLINE;
}
- if (!res) {
- ast_log(LOG_NOTICE, "Lua PBX Switch loaded.\n");
- }
lua_close(L);
return res;
}
@@ -1648,7 +1645,6 @@ static int unload_module(void)
ast_context_destroy(NULL, registrar);
ast_unregister_switch(&lua_switch);
lua_free_extensions();
- ast_log(LOG_NOTICE, "Lua PBX Switch unloaded.\n");
return 0;
}
diff --git a/res/res_curl.c b/res/res_curl.c
index e5eaa7d5f..aa10eff91 100644
--- a/res/res_curl.c
+++ b/res/res_curl.c
@@ -61,7 +61,9 @@ static int unload_module(void)
/* If the dependent modules are still in memory, forbid unload */
for (i = 0; i < ARRAY_LEN(dependents); i++) {
if (ast_module_check(dependents[i])) {
- ast_log(LOG_ERROR, "%s (dependent module) is still loaded. Cannot unload res_curl.so\n", dependents[i]);
+ if (!ast_shutting_down()) {
+ ast_log(LOG_WARNING, "%s (dependent module) is still loaded. Cannot unload res_curl.so\n", dependents[i]);
+ }
res = -1;
}
}
@@ -74,19 +76,9 @@ static int unload_module(void)
return res;
}
-/*!
- * \brief Load the module
- *
- * Module loading including tests for configuration or dependencies.
- * This function can return AST_MODULE_LOAD_FAILURE, AST_MODULE_LOAD_DECLINE,
- * or AST_MODULE_LOAD_SUCCESS. If a dependency or environment variable fails
- * tests return AST_MODULE_LOAD_FAILURE. If the module can not load the
- * configuration file or other non-critical problem return
- * AST_MODULE_LOAD_DECLINE. On success return AST_MODULE_LOAD_SUCCESS.
- */
static int load_module(void)
{
- int res = 0;
+ int res = AST_MODULE_LOAD_SUCCESS;
if (curl_global_init(CURL_GLOBAL_ALL)) {
ast_log(LOG_ERROR, "Unable to initialize the cURL library. Cannot load res_curl.so\n");
diff --git a/res/res_http_websocket.c b/res/res_http_websocket.c
index a65fc8ae2..956c52c54 100644
--- a/res/res_http_websocket.c
+++ b/res/res_http_websocket.c
@@ -291,6 +291,7 @@ int AST_OPTIONAL_API_NAME(ast_websocket_server_remove_protocol)(struct ast_webso
/*! \brief Close function for websocket session */
int AST_OPTIONAL_API_NAME(ast_websocket_close)(struct ast_websocket *session, uint16_t reason)
{
+ enum ast_websocket_opcode opcode = AST_WEBSOCKET_OPCODE_CLOSE;
char frame[4] = { 0, }; /* The header is 2 bytes and the reason code takes up another 2 bytes */
int res;
@@ -298,7 +299,7 @@ int AST_OPTIONAL_API_NAME(ast_websocket_close)(struct ast_websocket *session, ui
return 0;
}
- frame[0] = AST_WEBSOCKET_OPCODE_CLOSE | 0x80;
+ frame[0] = opcode | 0x80;
frame[1] = 2; /* The reason code is always 2 bytes */
/* If no reason has been specified assume 1000 which is normal closure */
diff --git a/res/res_odbc.c b/res/res_odbc.c
index 73af22057..7395449c5 100644
--- a/res/res_odbc.c
+++ b/res/res_odbc.c
@@ -1068,16 +1068,6 @@ static int unload_module(void)
return -1;
}
-/*!
- * \brief Load the module
- *
- * Module loading including tests for configuration or dependencies.
- * This function can return AST_MODULE_LOAD_FAILURE, AST_MODULE_LOAD_DECLINE,
- * or AST_MODULE_LOAD_SUCCESS. If a dependency or environment variable fails
- * tests return AST_MODULE_LOAD_FAILURE. If the module can not load the
- * configuration file or other non-critical problem return
- * AST_MODULE_LOAD_DECLINE. On success return AST_MODULE_LOAD_SUCCESS.
- */
static int load_module(void)
{
if (!(class_container = ao2_container_alloc(1, null_hash_fn, ao2_match_by_addr)))
@@ -1086,8 +1076,7 @@ static int load_module(void)
return AST_MODULE_LOAD_DECLINE;
ast_cli_register_multiple(cli_odbc, ARRAY_LEN(cli_odbc));
ast_data_register_multiple(odbc_providers, ARRAY_LEN(odbc_providers));
- ast_log(LOG_NOTICE, "res_odbc loaded.\n");
- return 0;
+ return AST_MODULE_LOAD_SUCCESS;
}
AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_GLOBAL_SYMBOLS | AST_MODFLAG_LOAD_ORDER, "ODBC resource",
diff --git a/res/res_pjsip_endpoint_identifier_ip.c b/res/res_pjsip_endpoint_identifier_ip.c
index 14716234a..5324af7b9 100644
--- a/res/res_pjsip_endpoint_identifier_ip.c
+++ b/res/res_pjsip_endpoint_identifier_ip.c
@@ -105,7 +105,7 @@ struct ip_identify_match {
struct ast_ha *matches;
/*! \brief Perform SRV resolution of hostnames */
unsigned int srv_lookups;
- /*! \brief Hosts to be resolved after applying configuration */
+ /*! \brief Hosts to be resolved when applying configuration */
struct ao2_container *hosts;
};
@@ -150,8 +150,8 @@ static int header_identify_match_check(void *obj, void *arg, int flags)
c_header = ast_strdupa(identify->match_header);
c_value = strchr(c_header, ':');
if (!c_value) {
- ast_log(LOG_WARNING, "Identify '%s' has invalid header_match: No ':' separator found!\n",
- ast_sorcery_object_get_id(identify));
+ /* This should not be possible. The object cannot be created if so. */
+ ast_assert(0);
return 0;
}
*c_value = '\0';
@@ -161,17 +161,19 @@ static int header_identify_match_check(void *obj, void *arg, int flags)
pj_header_name = pj_str(c_header);
header = pjsip_msg_find_hdr_by_name(rdata->msg_info.msg, &pj_header_name, NULL);
if (!header) {
- ast_debug(3, "SIP message does not contain header '%s'\n", c_header);
+ ast_debug(3, "Identify '%s': SIP message does not have header '%s'\n",
+ ast_sorcery_object_get_id(identify),
+ c_header);
return 0;
}
pj_header_value = pj_str(c_value);
if (pj_strcmp(&pj_header_value, &header->hvalue)) {
- ast_debug(3, "SIP message contains header '%s' but value '%.*s' does not match value '%s' for endpoint '%s'\n",
+ ast_debug(3, "Identify '%s': SIP message has header '%s' but value '%.*s' does not match '%s'\n",
+ ast_sorcery_object_get_id(identify),
c_header,
(int) pj_strlen(&header->hvalue), pj_strbuf(&header->hvalue),
- c_value,
- identify->endpoint_name);
+ c_value);
return 0;
}
@@ -261,7 +263,7 @@ static int ip_identify_match_host_lookup(struct ip_identify_match *identify, con
}
for (i = 0; i < num_addrs; ++i) {
- /* Check if the address is already in the list, if so don't bother adding it again */
+ /* Check if the address is already in the list, if so don't add it again */
if (identify->matches && (ast_apply_ha(identify->matches, &addrs[i]) != AST_SENSE_ALLOW)) {
continue;
}
@@ -283,14 +285,13 @@ static int ip_identify_match_host_lookup(struct ip_identify_match *identify, con
}
/*! \brief Helper function which performs an SRV lookup and then resolves the hostname */
-static int ip_identify_match_srv_lookup(struct ip_identify_match *identify, const char *prefix, const char *host)
+static int ip_identify_match_srv_lookup(struct ip_identify_match *identify, const char *prefix, const char *host, int results)
{
char service[NI_MAXHOST];
struct srv_context *context = NULL;
int srv_ret;
const char *srvhost;
unsigned short srvport;
- int results = 0;
snprintf(service, sizeof(service), "%s.%s", prefix, host);
@@ -372,10 +373,33 @@ static int ip_identify_apply(const struct ast_sorcery *sorcery, void *obj)
char *current_string;
struct ao2_iterator i;
+ /* Validate the identify object configuration */
+ if (ast_strlen_zero(identify->endpoint_name)) {
+ ast_log(LOG_ERROR, "Identify '%s' missing required endpoint name.\n",
+ ast_sorcery_object_get_id(identify));
+ return -1;
+ }
+ if (ast_strlen_zero(identify->match_header) /* No header to match */
+ /* and no static IP addresses with a mask */
+ && !identify->matches
+ /* and no addresses to resolve */
+ && (!identify->hosts || !ao2_container_count(identify->hosts))) {
+ ast_log(LOG_ERROR, "Identify '%s' is not configured to match anything.\n",
+ ast_sorcery_object_get_id(identify));
+ return -1;
+ }
+ if (!ast_strlen_zero(identify->match_header)
+ && !strchr(identify->match_header, ':')) {
+ ast_log(LOG_ERROR, "Identify '%s' missing ':' separator in match_header '%s'.\n",
+ ast_sorcery_object_get_id(identify), identify->match_header);
+ return -1;
+ }
+
if (!identify->hosts) {
return 0;
}
+ /* Resolve the match addresses now */
i = ao2_iterator_init(identify->hosts, 0);
while ((current_string = ao2_iterator_next(&i))) {
struct ast_sockaddr address;
@@ -383,26 +407,29 @@ static int ip_identify_apply(const struct ast_sorcery *sorcery, void *obj)
/* If the provided string is not an IP address perform SRV resolution on it */
if (identify->srv_lookups && !ast_sockaddr_parse(&address, current_string, 0)) {
- results = ip_identify_match_srv_lookup(identify, "_sip._udp", current_string);
+ results = ip_identify_match_srv_lookup(identify, "_sip._udp", current_string,
+ results);
if (results != -1) {
- results += ip_identify_match_srv_lookup(identify, "_sip._tcp", current_string);
+ results = ip_identify_match_srv_lookup(identify, "_sip._tcp",
+ current_string, results);
}
if (results != -1) {
- results += ip_identify_match_srv_lookup(identify, "_sips._tcp", current_string);
+ results = ip_identify_match_srv_lookup(identify, "_sips._tcp",
+ current_string, results);
}
}
- /* If SRV falls fall back to a normal lookup on the host itself */
+ /* If SRV fails fall back to a normal lookup on the host itself */
if (!results) {
results = ip_identify_match_host_lookup(identify, current_string);
}
if (results == 0) {
- ast_log(LOG_ERROR, "Address '%s' provided on ip endpoint identifier '%s' did not resolve to any address\n",
- current_string, ast_sorcery_object_get_id(obj));
+ ast_log(LOG_WARNING, "Identify '%s' provided address '%s' did not resolve to any address\n",
+ ast_sorcery_object_get_id(identify), current_string);
} else if (results == -1) {
- ast_log(LOG_ERROR, "An error occurred when adding resolution results of '%s' on '%s'\n",
- current_string, ast_sorcery_object_get_id(obj));
+ ast_log(LOG_ERROR, "Identify '%s' failed when adding resolution results of '%s'\n",
+ ast_sorcery_object_get_id(identify), current_string);
ao2_ref(current_string, -1);
ao2_iterator_destroy(&i);
return -1;
diff --git a/res/stasis/app.c b/res/stasis/app.c
index 5366819b6..91b006572 100644
--- a/res/stasis/app.c
+++ b/res/stasis/app.c
@@ -1432,25 +1432,15 @@ int app_unsubscribe_bridge_id(struct stasis_app *app, const char *bridge_id)
int app_is_subscribed_bridge_id(struct stasis_app *app, const char *bridge_id)
{
struct app_forwards *forwards;
- SCOPED_AO2LOCK(lock, app->forwards);
-
- forwards = ao2_find(app->forwards, BRIDGE_ALL, OBJ_SEARCH_KEY | OBJ_NOLOCK);
- if (forwards) {
- ao2_ref(forwards, -1);
- return 1;
- }
if (ast_strlen_zero(bridge_id)) {
bridge_id = BRIDGE_ALL;
}
- forwards = ao2_find(app->forwards, bridge_id, OBJ_SEARCH_KEY | OBJ_NOLOCK);
- if (forwards) {
- ao2_ref(forwards, -1);
- return 1;
- }
+ forwards = ao2_find(app->forwards, bridge_id, OBJ_SEARCH_KEY);
+ ao2_cleanup(forwards);
- return 0;
+ return forwards != NULL;
}
static void *bridge_find(const struct stasis_app *app, const char *id)