From 8d12c56f1681acea74e1f268675f9511810d93ce Mon Sep 17 00:00:00 2001
From: Luigi Rizzo <rizzo@icir.org>
Date: Tue, 9 May 2006 06:04:45 +0000
Subject: [PATCH] more small simplifications

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@25856 65c4cc65-6c06-0410-ace0-fbb531ad65f3
---
 pbx.c | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/pbx.c b/pbx.c
index fd1b4f55f6..f64616a2fa 100644
--- a/pbx.c
+++ b/pbx.c
@@ -4183,15 +4183,16 @@ int ast_add_extension2(struct ast_context *con,
 	tmp->registrar = registrar;
 	
 	ast_mutex_lock(&con->lock);
-	for (e = con->root; e; e = e->next) {
-		/* Make sure patterns are always last! */
-		if ((e->exten[0] != '_') && (extension[0] == '_'))
+	for (e = con->root; e; el = e, e = e->next) {   /* scan the extension list */
+		/* XXX should use ext_cmp() to sort patterns correctly */
+		/* almost strcmp, but make sure patterns are always last! */
+		if (e->exten[0] != '_' && extension[0] == '_')
 			res = -1;
-		else if ((e->exten[0] == '_') && (extension[0] != '_'))
+		else if (e->exten[0] == '_' && extension[0] != '_')
 			res = 1;
 		else
 			res= strcmp(e->exten, extension);
-		if (!res) {
+		if (res == 0) { /* extension match, now look at cidmatch */
 			if (!e->matchcid && !tmp->matchcid)
 				res = 0;
 			else if (tmp->matchcid && !e->matchcid)
-- 
GitLab