From 4e04ea29c7f7137b838b3b49d8c97f8e097cd51f Mon Sep 17 00:00:00 2001
From: Joshua Colp <jcolp@digium.com>
Date: Mon, 12 Nov 2012 20:45:50 +0000
Subject: [PATCH] Properly check if the "Context" and "Extension" headers are
 empty in a ShowDialPlan action.

The code which handles the ShowDialPlan action wrongly assumed that a non-NULL return value
from the function which retrieves headers from an action indicates that the header has a
value. This is incorrect and the contents must be checked to see if they are blank.

(closes issue ASTERISK-20628)
Reported by: jkroon
Patches:
     asterisk-showdialplan-incorrect-error.patch uploaded by jkroon
........

Merged revisions 376166 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........

Merged revisions 376167 from http://svn.asterisk.org/svn/asterisk/branches/10


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/11@376168 65c4cc65-6c06-0410-ace0-fbb531ad65f3
---
 main/pbx.c | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/main/pbx.c b/main/pbx.c
index be513fe23f..211327f5f3 100644
--- a/main/pbx.c
+++ b/main/pbx.c
@@ -7895,17 +7895,17 @@ static int manager_show_dialplan(struct mansession *s, const struct message *m)
 
 	manager_show_dialplan_helper(s, m, idtext, context, exten, &counters, NULL);
 
-	if (context && !counters.context_existence) {
+	if (!ast_strlen_zero(context) && !counters.context_existence) {
 		char errorbuf[BUFSIZ];
 
 		snprintf(errorbuf, sizeof(errorbuf), "Did not find context %s", context);
 		astman_send_error(s, m, errorbuf);
 		return 0;
 	}
-	if (exten && !counters.extension_existence) {
+	if (!ast_strlen_zero(exten) && !counters.extension_existence) {
 		char errorbuf[BUFSIZ];
 
-		if (context)
+		if (!ast_strlen_zero(context))
 			snprintf(errorbuf, sizeof(errorbuf), "Did not find extension %s@%s", exten, context);
 		else
 			snprintf(errorbuf, sizeof(errorbuf), "Did not find extension %s in any context", exten);
@@ -7913,6 +7913,10 @@ static int manager_show_dialplan(struct mansession *s, const struct message *m)
 		return 0;
 	}
 
+	if (!counters.total_items) {
+		manager_dpsendack(s, m);
+	}
+
 	astman_append(s, "Event: ShowDialPlanComplete\r\n"
 		"EventList: Complete\r\n"
 		"ListItems: %d\r\n"
-- 
GitLab