From c52adca396a1e7a1b78ce897bc9566b28e9b9a48 Mon Sep 17 00:00:00 2001
From: Richard Mudgett <rmudgett@digium.com>
Date: Fri, 13 Mar 2015 17:06:39 +0000
Subject: [PATCH] chan_pjsip: AMI action PJSIPShowEndpoint closes AMI
 connection on error.

Also fixed similar problem with AMI action PJSIPShowEndpoints.

ASTERISK-24872 #close
Reported by: Dmitriy Serov

Review: https://reviewboard.asterisk.org/r/4487/
........

Merged revisions 432894 from http://svn.asterisk.org/svn/asterisk/branches/13


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@432895 65c4cc65-6c06-0410-ace0-fbb531ad65f3
---
 res/res_pjsip/pjsip_configuration.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/res/res_pjsip/pjsip_configuration.c b/res/res_pjsip/pjsip_configuration.c
index 5f11280b14..ceb90a008e 100644
--- a/res/res_pjsip/pjsip_configuration.c
+++ b/res/res_pjsip/pjsip_configuration.c
@@ -1159,7 +1159,7 @@ static int ami_show_endpoint(struct mansession *s, const struct message *m)
 		      ast_sip_get_sorcery(), "endpoint", endpoint_name))) {
 		astman_send_error_va(s, m, "Unable to retrieve endpoint %s\n",
 			endpoint_name);
-		return -1;
+		return 0;
 	}
 
 	astman_send_listack(s, m, "Following are Events for each object associated with the the Endpoint",
@@ -1199,7 +1199,7 @@ static int format_ami_endpoints(void *obj, void *arg, int flags)
 		 ast_sip_create_ami_event("EndpointList", ami), ast_free);
 
 	if (!buf) {
-		return -1;
+		return CMP_STOP;
 	}
 
 	sip_sorcery_object_ami_set_type_name(endpoint, &buf);
@@ -1238,7 +1238,8 @@ static int ami_show_endpoints(struct mansession *s, const struct message *m)
 
 	endpoints = ast_sip_get_endpoints();
 	if (!endpoints) {
-		return -1;
+		astman_send_error(s, m, "Could not get endpoints\n");
+		return 0;
 	}
 
 	if (!(num = ao2_container_count(endpoints))) {
-- 
GitLab