From 9df8f678a37ad870ae2a74781bcb29e61d0f5787 Mon Sep 17 00:00:00 2001 From: David Adrian Date: Thu, 3 Oct 2013 11:29:11 -0400 Subject: [PATCH] Drop packets that don't pass the filter in recv --- src/recv.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/recv.c b/src/recv.c index 7f15765..df8211e 100644 --- a/src/recv.c +++ b/src/recv.c @@ -34,6 +34,7 @@ #include "state.h" #include "validate.h" #include "fieldset.h" +#include "expression.h" #include "probe_modules/probe_modules.h" #include "output_modules/output_modules.h" @@ -141,6 +142,10 @@ void packet_cb(u_char __attribute__((__unused__)) *user, if (is_repeat && zconf.filter_duplicates) { goto cleanup; } + if (!evaluate_expression(zconf.filter.expression, fs)) { + goto cleanup; + } + o = translate_fieldset(fs, &zconf.fsconf.translation); if (zconf.output_module && zconf.output_module->process_ip) { zconf.output_module->process_ip(o);