[asterisk-commits] bbryant: branch 1.6.2 r285710 - /branches/1.6.2/main/pbx.c

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Thu Sep 9 13:50:25 CDT 2010


Author: bbryant
Date: Thu Sep  9 13:50:13 2010
New Revision: 285710

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=285710
Log:
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

Modified:
    branches/1.6.2/main/pbx.c

Modified: branches/1.6.2/main/pbx.c
URL: http://svnview.digium.com/svn/asterisk/branches/1.6.2/main/pbx.c?view=diff&rev=285710&r1=285709&r2=285710
==============================================================================
--- branches/1.6.2/main/pbx.c (original)
+++ branches/1.6.2/main/pbx.c Thu Sep  9 13:50:13 2010
@@ -1849,15 +1849,15 @@
 	   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;
 
@@ -2127,10 +2127,10 @@
 		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;




More information about the asterisk-commits mailing list