From 9de3352554464f1ce72a4f3b6f0c730a0de03aed Mon Sep 17 00:00:00 2001 From: Brett Bryant Date: Thu, 9 Sep 2010 18:53:09 +0000 Subject: Merged revisions 285711 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.8 ................ r285711 | bbryant | 2010-09-09 14:51:52 -0400 (Thu, 09 Sep 2010) | 15 lines Merged revisions 285710 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.6.2 ........ r285710 | bbryant | 2010-09-09 14:50:13 -0400 (Thu, 09 Sep 2010) | 8 lines Fixes an issue with dialplan pattern matching where the specificity for pattern ranges and pattern special characters was inconsistent. (closes issue #16903) Reported by: Nick_Lewis Patches: pbx.c-specificity.patch uploaded by Nick Lewis (license 657) Tested by: Nick_Lewis ........ ................ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@285712 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- main/pbx.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'main/pbx.c') diff --git a/main/pbx.c b/main/pbx.c index 67163de3e..8e20f8686 100644 --- a/main/pbx.c +++ b/main/pbx.c @@ -1908,15 +1908,15 @@ static struct match_char *add_pattern_node(struct ast_context *con, struct match pattern matcher. */ m->is_pattern = is_pattern; if (specificity == 1 && is_pattern && pattern[0] == 'N') - m->specificity = 0x0802; + m->specificity = 0x0832; else if (specificity == 1 && is_pattern && pattern[0] == 'Z') - m->specificity = 0x0901; + m->specificity = 0x0931; else if (specificity == 1 && is_pattern && pattern[0] == 'X') - m->specificity = 0x0a00; + m->specificity = 0x0a30; else if (specificity == 1 && is_pattern && pattern[0] == '.') - m->specificity = 0x10000; + m->specificity = 0x18000; else if (specificity == 1 && is_pattern && pattern[0] == '!') - m->specificity = 0x20000; + m->specificity = 0x28000; else m->specificity = specificity; @@ -2193,10 +2193,10 @@ static int ext_cmp1(const char **p, unsigned char *bitwise) return 0x0900 | '1'; case '.': /* wildcard */ - return 0x10000; + return 0x18000; case '!': /* earlymatch */ - return 0x20000; /* less specific than NULL */ + return 0x28000; /* less specific than NULL */ case '\0': /* empty string */ *p = NULL; -- cgit v1.2.3