[Exim] Wishlist item 225, acl condition in routers

Top Page
Delete this message
Reply to this message
Author: Nico Erfurth
Date:  
To: exim-users
Subject: [Exim] Wishlist item 225, acl condition in routers
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