#!/usr/bin/perl -wT
#
-# $Cambridge: exim/src/util/ratelimit.pl,v 1.1 2005/09/13 17:51:06 fanf2 Exp $
+# $Cambridge: exim/src/util/ratelimit.pl,v 1.3 2006/04/12 13:37:29 fanf2 Exp $
use strict;
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
}
# 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};