]> git.sesse.net Git - nms/commitdiff
Fix a real bad bug in the rate limiting in MBD.
authorroot <root@sysrq>
Wed, 4 Apr 2007 17:54:14 +0000 (19:54 +0200)
committerroot <root@sysrq>
Wed, 4 Apr 2007 17:54:14 +0000 (19:54 +0200)
mbd/mbd.pl

index 5be1ca0e22232243f35b53a18da503aa9a1017f8..e1f9824de481b7acb121296ad9e6254b8d472df7 100644 (file)
@@ -94,7 +94,7 @@ while (1) {
                my ($sport, $saddr) = sockaddr_in($addr);
                my ($dport, $daddr) = sockaddr_in(getsockname($sock));
                my $size = length($data);
-
+       
                # Check if this is a survey reply
                if ($dport >= $Config::survey_port_low && $dport <= $Config::survey_port_high) {
                        if (!exists($active_surveys{$dport})) {
@@ -110,17 +110,17 @@ while (1) {
 
                        next;
                }
-
+               
                # Rate limiting
                if (exists($last_sent{$saddr}{$dport})) {
                        my $elapsed = Time::HiRes::tv_interval($last_sent{$saddr}{$dport}, $now);
                        if ($elapsed < 1.0) {
                                print LOG "$dport $size 2\n";
                                print inet_ntoa($saddr), ", $dport, $size bytes => rate-limited ($elapsed secs since last)\n";
+                               next;
                        }
-                       next;
                }
-
+               
                # We don't get the packet's destination address, but I guess this should do...
                # Check against the ACL.
                my $pass = 0;