Is now at
http://duncanthrax.net/exiscan-acl/
One fix and three feature additions. From the CHANGELOG:
------------------------------------------------------------
25 - Fixed include location of libspf2 headers.
- Added support for Kaspersky AV Version 5 (aveserver).
- Added expansion of av_scanner global variable
when it starts with a dollar sign. This is useful
for implementing multiple malware scanners.
- Added support for adding ACL headers at the beginning
and in the "middle" of the message header block.
(This is a preliminary solution, see comment in SPF
section of exiscan-acl-spec).
-------------------------------------------------------------
The spec file has an example on how to use multiple AV scanners. I think
this is a bit over the top but then you may be working for paranoid
people :)
About the header addition hack: It's just that. A hack. I documented it
in section 10 of the spec file, I'll just paste it here for a quick
overview:
---------------------------------------------------------------
10. Selecting header positions when adding headers in ACLs
--------------------------------------------------------------
When adding headers to a message during ACL processing (using
the "message" keyword), the exiscan-acl patch enables you to
select where those headers are added in the list. This is done
via a "control" statement. Possible statements are:
control = header_pos_top
This will add headers at the top of the header list, even
before the Received: headers. This is useful for adding
SPF-Received: headers.
control = header_pos_middle
This will add headers behind the last Received: or Resent-*:
header found in the list. This is good if you want to be
RFC822/2822 compliant.
control = header_pos_bottom
This is the default. It will add headers at the bottom of
the list, just like vanilla exim would do.
When an ACL is run, the setting is reset to the default.
Inside one ACL, the setting is remembered between verb blocks,
but you can change it as often as you like.
This feature was added mainly to provide proper SPF draft
support. It should be considered experimental and might change
to be more flexible in the future.
---------------------------------------------------------------
This could be done nicer, I took a stab at making it really flexible but
it was hard to do with exims present way of adding headers in ACLs. The
fuckup probability was too high :)
I think this hackish solution will do for a while, especially since its
mainly needed for proper SPF draft implementation.
cheers,
/tom