Re: [exim] Not-quit ACL and "SMTP connection lost after fina…

Top Page
Delete this message
Reply to this message
Author: exim users
Date:  
To: exim users
Subject: Re: [exim] Not-quit ACL and "SMTP connection lost after final dot"
Tony Meyer wrote:
> The documentation for the not-QUIT ACL says:
>
> """
> The not-QUIT ACL, specified by acl_smtp_notquit, is run in most cases
> when an SMTP session ends without sending QUIT.
> """
>
> One of the cases that isn't included (as far as I can tell by testing
> and reading src/receive.c) is when the connection is lost before the
> final "." in DATA is received. This is logged ("SMTP connection lost
> after final dot") and handled appropriately (spool files deleted,
> etc), but the ACL isn't called.
>
> This clearly isn't a bug (because of the "most"), but it seems like it
> would be a logical place to call the not-QUIT ACL (the docs intimate
> that the cases where the ACL isn't called are generally expected to
> only be those were it's not technically possible because of resource
> constraints or other serious problems).
>
> I'm planning on patching my local Exim so that the ACL is called in
> this case, and I was wondering whether this would be something that
> should be submitted back, or whether the status quo is preferred for
> the main distribution.

I initially thought this should have been handled by the 'data-timeout'
or 'connection-lost' case but it seems you've located an entirely
separate case where a check which is done just prior to the outputing
the SMTP response. I'm a little rusty on how it all works together now,
but since there's no output to the TCP side and the log_write is already
being called with the conn lost after final dot message, the
smtp_notquit_exit should be called with no messages.

I no longer have my Exim dev environment set up and it's been a while
since I touched this - if you can knock up a patch that covers all the
bases that would be great. (docs)

I'm fairly sure you want to call something like
smtp_notquit_exit(US"connection-lost-after-dot", NULL, NULL); , but as I
said, it's been a while since I threw this together and Phil H. did a
fairly major fixup of it after that.

--
The Exim manual - http://docs.exim.org