]> git.sesse.net Git - nms/blobdiff - mbd/mbd.pl
Update make-switches.pl for TG07.
[nms] / mbd / mbd.pl
index e5c2879e01b9310fe1b73becae6e1bd9743692f1..7fcc8d8100a3a67e6e2f41bd763d797c684e4a06 100644 (file)
@@ -16,6 +16,8 @@ sub fhbits {
        return $bits;
 }
 
+open LOG, ">>", "mbd.log";
+
 my @ports = mbd::find_all_ports();
 
 # Open a socket for each port
@@ -51,12 +53,19 @@ 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;
                }
 
+               print LOG "$dport $size $pass\n";
+
                if (!$pass) {
                        print "$dport, $size bytes => filtered\n";
                }