Send manager event for blackfilter only if it DOES NOT match.
authorJeff Peeler <jpeeler@digium.com>
Fri, 4 Feb 2011 22:37:11 +0000 (22:37 +0000)
committerJeff Peeler <jpeeler@digium.com>
Fri, 4 Feb 2011 22:37:11 +0000 (22:37 +0000)
The logic got reversed, oops. Works properly now when multiple blackfilters are
present.

(closes issue #18283)
Reported by: telecos82
Patches:
      ast_managereventfilter.patch uploaded by telecos82 (license 687)

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@306432 65c4cc65-6c06-0410-ace0-fbb531ad65f3

main/manager.c

index 8efc11d..599dbca 100644 (file)
@@ -4069,11 +4069,12 @@ static int blackfilter_cmp_fn(void *obj, void *arg, void *data, int flags)
        const char *eventdata = arg;
        int *result = data;
 
-       if (regexec(regex_filter, eventdata, 0, NULL, 0)) {
-               *result = 1;
+       if (!regexec(regex_filter, eventdata, 0, NULL, 0)) {
+               *result = 0;
                return (CMP_MATCH | CMP_STOP);
        }
 
+       *result = 1;
        return 0;
 }