Re: [Exim] Feature request: intelligent throttling

Top Page
Delete this message
Reply to this message
Author: Philip Hazel
Date:  
To: Sam Michaels
CC: Exim List
Subject: Re: [Exim] Feature request: intelligent throttling
On Wed, 10 Sep 2003, Sam Michaels wrote:

> I have to give Philip Hazel (can I call you Phil?)


Sure. I answer to all sorts of names. :-)

> I'd be nice if there was something similar to smtp_ratelimit_* where the
> master process keeps tracks of things and will set a variable if the
> threshold is reached.


Please note: there is no "master process" in Exim. You do not have to
run a daemon.

> In an ACL...let's say the acl_smtp_connect:
> deny message = Service unavailable
> condition = ${if {$acl_ratelimit_deny_reached}{1}{0}}
>
> 'acl_ratelimit_deny' will make $acl_ratelimit_deny_reached be true if the
> host received a 'deny' inside ANY of the ACL checks 5 times within 10
> minutes and will be active for 24 hours.


You could probably build something for yourself that played these kinds
of games, by writing a program to maintain the information in a DBM
file, and using ${run to update it (taking care with locking).

Another way to maintain the data would be via a program that tails the
Exim reject log file.

> Obviously you'd need to create another db to keep track of the ratelimits


Another db => another bottleneck, but I suppose if it is only updated
for denials, it may not be too bad. However, we seem to be denying at a
heck of a rate these days. It is fast becoming the norm, with "real"
mail being the exception. :-(

--
Philip Hazel            University of Cambridge Computing Service,
ph10@???      Cambridge, England. Phone: +44 1223 334714.
Get the Exim 4 book:    http://www.uit.co.uk/exim-book