]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Make sure patterns are always last (bug #2435)
authorMark Spencer <markster@digium.com>
Tue, 14 Sep 2004 22:35:53 +0000 (22:35 +0000)
committerMark Spencer <markster@digium.com>
Tue, 14 Sep 2004 22:35:53 +0000 (22:35 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@3777 65c4cc65-6c06-0410-ace0-fbb531ad65f3

pbx.c

diff --git a/pbx.c b/pbx.c
index dd8abbd4aaabcb18abc41c685b772e531e4c9577..2bc05ff5d9b4d696aab47e54fa69a49f377260eb 100755 (executable)
--- a/pbx.c
+++ b/pbx.c
@@ -3830,7 +3830,13 @@ int ast_add_extension2(struct ast_context *con,
        }
        e = con->root;
        while(e) {
-               res= strcmp(e->exten, extension);
+               /* Make sure patterns are always last! */
+               if ((e->exten[0] != '_') && (extension[0] == '_'))
+                       res = -1;
+               else if ((e->exten[0] == '_') && (extension[0] != '_'))
+                       res = 1;
+               else
+                       res= strcmp(e->exten, extension);
                if (!res) {
                        if (!e->matchcid && !tmp->matchcid)
                                res = 0;