Hi everyone,
while doing a fast scan of the WishList, I've found this one.
You can download a crude but small patch from:
http://perlgolf.de/exim-4.30-acl-router.diff
It's against a plain 4.30 without exiscan.
The functionality is simple, but seems to work. An acl = condition is
added to all routers, it's processed before of condition =, so
$local_part_(suffix|prefix) are available.
With a return-value of accept or blackhole, the condition will succeed
the message, deny and drop let the condition fail and defer oh well,
defer will defer the processing. :)
You can use anything that's allowed by the acl-keyword in acls themself.
So, the following will work
acl = accept #The default
acl = defer #Defer it
acl = deny #Skip the router
acl = some_nice_acl # Check the acl named some_nice_acl
acl = ${domain}_acl # run the acl, for this domain (WEIRD!)
In case of defer and deny the value of message = will be returned as error.
There are many possible problems, especially when a router is called
during a sender/recipient verification, so use with care, and don't
blame me :) Also even if I did not test them yet, a data-acl used here
could create problems, but I'm not sure, and too short on time for
testing it now.
Feedback is welcome. Flames too, but please send them off-list ;)
Nico