[exim] Turning off no_enforce_sync conditionally in acl_smtp…

Top Page
Delete this message
Reply to this message
Author: Jason L Tibbitts III
Date:  
To: exim-users
New-Topics: Re: [exim] Turning off no_enforce_sync conditionally in acl_smtp_helo
Subject: [exim] Turning off no_enforce_sync conditionally in acl_smtp_helo
So Thunderbird in the code that tests an user's account configuration.
It connects and dumps "EHLO we-guess.mozilla.org" and then immediately
sends a QUIT without reading the response, which of course violates the
protocol and annoys exim:

2016-05-04 14:41:19 SMTP protocol synchronization error (next input sent too soon: pipelining was not advertised): rejected "EHLO we-guess.mozilla.org" H=epithumia.math.uh.edu [129.7.128.2] next input="QUIT\r\n"

Since https://bugzilla.mozilla.org/show_bug.cgi?id=538809 has
been open for six years I don't expect that it will be fixed any time
soon, so I'd like to work around it.

One possibility is to just use:

acl_check_helo:
accept hosts = :
accept control = no_enforce_sync

which appears to work. But can I turn it off just for Thunderbird's
probes? I tried the following, but it doesn't appear to work:

acl_check_helo:
  accept hosts = :
  accept condition = ${if eq{$sender_helo_name}{we-guess.mozilla.org} {true}}
         control = no_enforce_sync
         logwrite = Turning off sync enforcement for Thunderbird.
  accept


I am pretty sure the syntax is correct and I know it worked exactly
once. Is it possible that there's some race between processing the ACL
and complaining about the protocol violation? Is there any better way
to do this besides just turning on no_enforce_sync globally? I
obviously can't narrow it down to any particular IP.

Note: I'm currently running 4.86.2 as packaged by Fedora:
exim-4.86.2-2.fc23.x86_64

Any hints would be appreciated.

- J<