- 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));