aboutsummaryrefslogtreecommitdiffstats
path: root/channels
diff options
context:
space:
mode:
authormmichelson <mmichelson@f38db490-d61c-443f-a65b-d21fe96a405b>2008-08-22 20:20:58 +0000
committermmichelson <mmichelson@f38db490-d61c-443f-a65b-d21fe96a405b>2008-08-22 20:20:58 +0000
commit396f0af9143ee936980ce00293a486e8c269efcd (patch)
tree7269a5c0ee8555a0d72b5438c2e9048a0f63311a /channels
parent415437b3a40cd95e65e7912a33eaee9dae41a4d4 (diff)
The -1 return value from incomplete or improper
headers for the SipNotify manager command was causing the current manager session to become disconnected. Change the return value to 0 for these cases. Also change a test for a NULL pointer to be ast_strlen_zero instead. (closes issue #13351) Reported by: Laureano Patches: sipnotify_action_fix.patch uploaded by Laureano (license 265) git-svn-id: http://svn.digium.com/svn/asterisk/trunk@139563 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channels')
-rw-r--r--channels/chan_sip.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index 48360ad94..3bec6f870 100644
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -9470,9 +9470,9 @@ static int manager_sipnotify(struct mansession *s, const struct message *m)
struct ast_variable *vars = astman_get_variables(m);
struct sip_pvt *p;
- if (!channame) {
+ if (ast_strlen_zero(channame)) {
astman_send_error(s, m, "SIPNotify requires a channel name");
- return -1;
+ return 0;
}
if (!strncasecmp(channame, "sip/", 4)) {
@@ -9481,7 +9481,7 @@ static int manager_sipnotify(struct mansession *s, const struct message *m)
if (!(p = sip_alloc(NULL, NULL, 0, SIP_NOTIFY))) {
astman_send_error(s, m, "Unable to build sip pvt data for notify (memory/socket error)");
- return -1;
+ return 0;
}
if (create_addr(p, channame, NULL, 0)) {
@@ -9490,7 +9490,7 @@ static int manager_sipnotify(struct mansession *s, const struct message *m)
dialog_unref(p, "unref dialog inside for loop" );
/* sip_destroy(p); */
astman_send_error(s, m, "Could not create address");
- return -1;
+ return 0;
}
/* Notify is outgoing call */