diff options
author | murf <murf@f38db490-d61c-443f-a65b-d21fe96a405b> | 2006-08-29 23:08:42 +0000 |
---|---|---|
committer | murf <murf@f38db490-d61c-443f-a65b-d21fe96a405b> | 2006-08-29 23:08:42 +0000 |
commit | bd80958009b8d1b83c7bfad2e7abfd010a4c24f3 (patch) | |
tree | 99f9032bb195e7f9f1a1f2a5d9d3db83d6ed342b /main/pbx.c | |
parent | 9f2ad2c670320c88244d6ecfece487ed163bc608 (diff) |
This change fixes bug 7820. Way back in April this bug was reintroduced, it appears, when a bunch of restructuring was done. This code was basically left out during the restructuring. In the case of the failure in 7820, it is trying to match the extension _x. with _x., and failing, because the 'x' should only match 0 thru 9. I **could** upgrade the code so that that N,Z, and X match not only their intended number ranges, but also N,Z,and X respectively. And, moreover, X could also match N and Z, and Z could also match N. I have no idea why this bug took so long to turn up. I have no idea what a more thorough treatment of the code would do to working code, either. So I left it as it ***was***.
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@41283 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'main/pbx.c')
-rw-r--r-- | main/pbx.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/main/pbx.c b/main/pbx.c index 31f554acd..522da6f64 100644 --- a/main/pbx.c +++ b/main/pbx.c @@ -739,6 +739,9 @@ enum ext_match_t { static int _extension_match_core(const char *pattern, const char *data, enum ext_match_t mode) { mode &= E_MATCH_MASK; /* only consider the relevant bits */ + + if (!strcasecmp(pattern,data)) /* note: if this test is left out, then _x. will not match _x. !!! */ + return 1; if (pattern[0] != '_') { /* not a pattern, try exact or partial match */ int ld = strlen(data), lp = strlen(pattern); |