X-Git-Url: https://git.exim.org/users/heiko/exim.git/blobdiff_plain/7546de58d97a3a4d36dc27ab4e8764f77dc4f887..f57879265211e8eee3f8e231287c71b66167afee:/src/util/ratelimit.pl?ds=sidebyside diff --git a/src/util/ratelimit.pl b/src/util/ratelimit.pl index a30cfb60a..749125c4f 100644 --- a/src/util/ratelimit.pl +++ b/src/util/ratelimit.pl @@ -1,6 +1,4 @@ #!/usr/bin/perl -wT -# -# $Cambridge: exim/src/util/ratelimit.pl,v 1.1 2005/09/13 17:51:06 fanf2 Exp $ use strict; @@ -14,8 +12,8 @@ ACL condition. This is so that you can get an idea of a reasonable limit setting before you deploy the restrictions. This script isn't perfectly accurate, because the time stamps in -Exim's log files are only accurate to a seond whereas internally Exim -computes sender rates to the accuracy of your computer's clock +Exim's log files are only accurate to a second whereas internally +Exim computes sender rates to the accuracy of your computer's clock (typically 10ms). The log files to be processed can be specified on the command line @@ -118,9 +116,9 @@ while (<>) { } # see acl_ratelimit() for details of the following my $interval = $time - $time{$key}; + $interval = 1e-9 if $interval <= 0.0; my $i_over_p = $interval / $period; my $a = exp(-$i_over_p); - $i_over_p = 1e-9 if $i_over_p <= 0.0; $time{$key} = $time; $rate{$key} = $size * (1.0 - $a) / $i_over_p + $a * $rate{$key}; $max{$key} = $rate{$key} if $rate{$key} > $max{$key};