On Thursday 28 December 2006 06:40, Joe Christy wrote:
> in my config I have a macro:
>
> SLACK = ${if or{{ !def:interface_address }\
> { eq{$interface_address} {INSIDE} }\
> { ={$interface_port} {BACKDOOR} }}\
> {friend} {stranger} }
>
> that I use in order to have separate ACLs for trusted and untrusted
> connections without undue complexity:
>
> acl_smtp_connect = acl_SLACK_connect
> acl_smtp_helo = acl_SLACK_helo
> acl_smtp_rcpt = acl_SLACK_rcpt
> acl_smtp_data = acl_SLACK_data
>
> While this used to work under 4.63, with 4.64, I get:
>
> 2006-12-27 19:22:56 H=hormel.redhat.com [209.132.177.30] temporarily
> rejected connection in "connect" ACL: failed to expand ACL string
> "acl_${if or{{ if{ def:received_ip_address }{0}{1} }{
> eq{$received_ip_address} {172.24.4.1} }{ ={$received_port} {7151}
> }}{friend} {stranger} }_connect": unknown condition "if" inside
> "or{...}" condition
>
> with 4.64.
That looks very strange. "if" is not a condition and probably never has been,
and AFAICT Exim doesn't internally convert "!def:variable" into "if{
def:variable }{0}{1}" - there's no reason to implement it that way. Are you
sure you didn't make some other change to the config?
--
Magnus Holmgren holmgren@???
(No Cc of list mail needed, thanks)
"Exim is better at being younger, whereas sendmail is better for
Scrabble (50 point bonus for clearing your rack)" -- Dave Evans