manager: The eventfilter= option now takes an extended regex.
authorWalter Doekes <walter+asterisk@wjd.nu>
Mon, 27 Jan 2014 08:17:22 +0000 (08:17 +0000)
committerWalter Doekes <walter+asterisk@wjd.nu>
Mon, 27 Jan 2014 08:17:22 +0000 (08:17 +0000)
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

UPGRADE.txt
configs/manager.conf.sample
main/manager.c

index 5e59311..bf4366a 100644 (file)
@@ -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.
+
 ===========================================================
 ===========================================================
index fd54b81..f31c6d3 100644 (file)
@@ -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.
index 9e88628..ef569aa 100644 (file)
@@ -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;
        }