At 6:42 pm +0100 2004/02/23, Michael Westerburg wrote:
[...]
>We applied the following ACL (-check_data):
>
> warn message = X-Infected: $malware_name
> malware = *
> control = freeze
> log_message = malicious content found ($malware_name) \
> Sender='$sender_address' \
> Recipients[$recipients_count]=[$recipients]
>
>Everytimes sophie isn't running the mail will not be filtered because
>"no action is taken if there is a temporary problem with one of the
>conditions" (Exim, p.329). Due to sophies instability this happens quit
>a lot.
>
>Is there any chance to check next if the ACL shown above did run
>successfully? Then we could either defer the message handling or keep
>going on.
I think you have to call the condition twice. As an example this is
what I do for callouts:
warn !sender_domains = aol.com : yahoo.com : netscape.net
set acl_c7 = 2 <<< this sets the value for deferred callout
verify = sender/callout=30s,random
set acl_c7 = 0 <<< this resets the value if the callout succeeded
warn !sender_domains = aol.com : yahoo.com : netscape.net
!verify = sender/callout=30s,random
log_message = callout failed
set acl_c7 = 10 <<< this is the value for negative result
set acl_m2 = YOUR EMAIL ADDRESS: blah blah blah
so, I have three values:
0: callout succeeded
2: callout gave error (remote server did not respond, etc.)
10: callout gave 5XX answer
I do not know if malware = * can be used the same way, with callouts
the double call does not add much overhead as the result is cached
(well, perhaps only if it does not return error, but this is not a
big problem).
Giuliano