X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=mbd%2Fmbd.pl;h=cbb1237c9d6d49c379c701d6a84db7a6b929f0ba;hb=f35078d3cda54f3cbdaab03d7def66bcfbb560dd;hp=e5c2879e01b9310fe1b73becae6e1bd9743692f1;hpb=84ddcf83d5dbeac1b6fbb18abcb132bad9f91289;p=nms diff --git a/mbd/mbd.pl b/mbd/mbd.pl index e5c2879..cbb1237 100644 --- a/mbd/mbd.pl +++ b/mbd/mbd.pl @@ -51,10 +51,15 @@ while (1) { # Check against the ACL. my $pass = 0; for my $rule (@Config::access_list) { - if (mbd::match_ranges($dport, $rule->{'ports'}) && - mbd::match_ranges($size, $rule->{'sizes'})) { - $pass = 1; + next unless (mbd::match_ranges($dport, $rule->{'ports'})); + next unless (mbd::match_ranges($size, $rule->{'sizes'})); + + if ($rule->{'filter'}) { + next unless ($rule->{'filter'}($data)); } + + $pass = 1; + last; } if (!$pass) {