Re: [Exim] Opinions wanted: should client wait after sending…

Top Page
Delete this message
Reply to this message
Author: Anand Buddhdev
Date:  
To: exim-users
Subject: Re: [Exim] Opinions wanted: should client wait after sending QUIT?
On Mon, Mar 01, 2004 at 11:15:10AM +0000, Philip Hazel wrote:

> 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).


Exim is not the only one. qmail was the first to do this, and postfix
followed, and then exim, IIRC. The person who reported the bug must be
using courier-mta. It's the only one that I know of, which logs this
connection closure after QUIT.

> 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.


In my opinion, the QUIT command serves no useful purpose. After exim
delivers a message, and receives a 250 (message accepted) code, its
job is done (unless it wants to send more messages down that same
connection). However, since QUIT is part of the protocol, sending it
and then closing the connection should be ok.

--
Anand Buddhdev