I have such ACL rule:
accept message = this is my message
domains = +local_domains
endpass
verify = recipient
in acl_smtp_rcpt. But where this rule condition is met and rule returns
accept the message sended to SMTP client is ,,250 Accepted'' instead of
,,250 this is my message''. If I remove endpass modifier from rule,
the answer is correct (,,250 this is my message''). The same situation
take place in acl_smtp_mail ACL.
I found in acl_check_condition() function body (src/acl.c) following statement:
if (*epp && rc == OK) user_message = NULL;
Is it correct? Shouldn't it be rather:
if (*epp && rc != OK) user_message = NULL;
user_message should be cleared if there is endpass modifier and rule
condition _fails_ because then control moves to next rule.