[exim] acl_smtp_notquit and acl conditions

Top Page
Delete this message
Reply to this message
Author: Pixel // pinterface
Date:  
To: exim-users
Subject: [exim] acl_smtp_notquit and acl conditions
I've taken to breaking up my ACLs into tiny ACLs like one might break up a
large function into several smaller ones; less duplication of logic and so
forth where multiple ACLs have the same prerequisites. So far this is
working fairly well, but I just ran into a small problem with acl conditions
inside acl_smtp_notquit.

Here's a quick test case:
  acl_deny:
    deny


  acl_smtp_notquit:
    accept acl = acl_deny
    warn logwrite = How rude!


This spits 'ACL for not-QUIT returned ERROR: "deny" is not allowed in a QUIT
or not-QUIT ACL' into my mail log. That would make sense had I written
"acl_smtp_notquit: deny ...", but I didn't, so I'm a bit confused.

According to the exim spec section 40.23, regarding acl conditions:
The named or inline ACL is run. If it returns "accept" the condition is
true;
if it returns "deny" the condition is false.
By my understanding, that means "acl = acl_deny" should be considered false,
causing the accept to fail and control to fall through to the following
warn. The fact acl_deny is called from acl_smtp_notquit is entirely
irrelevant.

So what I'm wondering is, quite simply, am I misunderstanding the
documentation here and the current behavior is correct, or have I stumbled
upon a bug?

This is using Exim 4.68.