]> git.sesse.net Git - nms/blobdiff - mbd/mbd.pl
Add logging to mbd.
[nms] / mbd / mbd.pl
index 0993e436fd7819371c38f0f5a77ad7c8fc58ae9e..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 (match_ranges($dport, $rule->{'ports'}) &&
-                           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";
                }