I have just received a bug report that requests reversal of a change to
Exim that was made in 1998 after discussion on the list. I don't want to
reverse this change without further consultation. What are people's
views? Particularly people who understand TCP/IP and people who run
large, busy servers.
THE BUG REPORT
> (The bug itself: Exim closes the connection after a QUIT, not waiting
> for the response from my server. I think this is against the RFCs, Exim
> is the only MTA that does this and it causes harmless but annoying
> errors in maillogs of others).
WHAT I RESPONDED TO THE SENDER:
The oldest source of Exim that I have *does* wait for a response to
QUIT. This was changed for release 2.02 (August 1998), with the
following entry in the ChangeLog:
13. As a result of some net.discussion, cease waiting for a response to the
QUIT command when sending out SMTP. This has the benefit of transferring the
TCP/IP TIME_WAIT state to the client.
I cannot remember the details of the discussion, I'm afraid. However, it
was the case that people who know more about the TCP/IP protocol than I
do persuaded me that this was a useful thing to do. I think the idea was
to reduce the resources used by servers.
What RFC 2821 says (and this is much the same as 821):
The sender MUST NOT intentionally close the transmission
channel until it sends a QUIT command and SHOULD wait until it
receives the reply (even if there was an error response to a previous
command).
So Exim is violating a SHOULD, not a MUST.
I certainly do not want to change this back again without discussing it
on the mailing list and getting people's opinions. I will post something
on the list and see what people think.
Regards,
Philip
--
Philip Hazel University of Cambridge Computing Service,
ph10@??? Cambridge, England. Phone: +44 1223 334714.