diff options
author | Walter Doekes <walter+asterisk@wjd.nu> | 2014-01-27 08:17:22 +0000 |
---|---|---|
committer | Walter Doekes <walter+asterisk@wjd.nu> | 2014-01-27 08:17:22 +0000 |
commit | cc42229f26c66864913302572f034f19d571d71a (patch) | |
tree | 61f999fbd47d1fddd9041b1d83770cf56669d116 | |
parent | 33071d636cff3085be3bcc01bbba9d38ca9acb46 (diff) |
manager: The eventfilter= option now takes an extended regex.
In pre-trunk versions (...12) it accepts a basic regex, which is
confusing because all other regexes in asterisk are of the
extended kind.
Review: https://reviewboard.asterisk.org/r/3147/
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@406618 65c4cc65-6c06-0410-ace0-fbb531ad65f3
-rw-r--r-- | UPGRADE.txt | 3 | ||||
-rw-r--r-- | configs/manager.conf.sample | 13 | ||||
-rw-r--r-- | main/manager.c | 2 |
3 files changed, 11 insertions, 7 deletions
diff --git a/UPGRADE.txt b/UPGRADE.txt index 5e5931114..bf4366a74 100644 --- a/UPGRADE.txt +++ b/UPGRADE.txt @@ -47,5 +47,8 @@ Configuration Files: again set the root console verbose level and affect the verbose level logged. + - The manager.conf 'eventfilter' now takes an "extended" regular expression + instead of a "basic" one. + =========================================================== =========================================================== diff --git a/configs/manager.conf.sample b/configs/manager.conf.sample index fd54b81b9..f31c6d397 100644 --- a/configs/manager.conf.sample +++ b/configs/manager.conf.sample @@ -94,13 +94,14 @@ bindaddr = 0.0.0.0 ; user. ; ;eventfilter=Event: Newchannel -;eventfilter=!Channel: DAHDI.* +;eventfilter=Channel: (PJ)?SIP/(james|jim|john)- +;eventfilter=!Channel: DAHDI/ ; The eventfilter option is used to whitelist or blacklist events per user. -; A filter consists of a (basic/old-style and unanchored) regular expression -; that is run on the entire event data. If the first character of the filter -; is an exclamation mark (!), the filter is appended to the blacklist instead -; of the whitelist. After first checking the read access below, the regular -; expression filters are processed as follows: +; A filter consists of an (unanchored) regular expression that is run on the +; entire event data. If the first character of the filter is an exclamation +; mark (!), the filter is appended to the blacklist instead of the whitelist. +; After first checking the read access below, the regular expression filters +; are processed as follows: ; - If no filters are configured all events are reported as normal. ; - If there are white filters only: implied black all filter processed first, ; then white filters. diff --git a/main/manager.c b/main/manager.c index 9e88628aa..ef569aa4a 100644 --- a/main/manager.c +++ b/main/manager.c @@ -5121,7 +5121,7 @@ static enum add_filter_result manager_add_filter(const char *filter_pattern, str is_blackfilter = 0; } - if (regcomp(new_filter, filter_pattern, 0)) { /* XXX: the only place we use non-REG_EXTENDED */ + if (regcomp(new_filter, filter_pattern, REG_EXTENDED | REG_NOSUB)) { ao2_t_ref(new_filter, -1, "failed to make regex"); return FILTER_COMPILE_FAIL; } |