From 261d1eeb130cd239c4ad5edc306cfaad1a7a03c1 Mon Sep 17 00:00:00 2001
From: Mark Michelson <mmichelson@digium.com>
Date: Fri, 22 Aug 2008 20:20:58 +0000
Subject: [PATCH] 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: https://origsvn.digium.com/svn/asterisk/trunk@139563 65c4cc65-6c06-0410-ace0-fbb531ad65f3
---
 channels/chan_sip.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index 48360ad947..3bec6f8708 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 */
-- 
GitLab