ietf-smtp
[Top] [All Lists]

Re: what to say on timeout?

2004-01-05 03:39:09

Hector Santos writes:
Unless I misunderstanding, the above is based on the idea that the CLIENT has already sent a command and is currently waiting for a server response.

The client will see the 421 at once, or when it sends its next command, depending on how it's written. That's why 421 is legal for all commands.

I don't know if any internet client protocol, maybe with the exception of FTP, where it can get a unsolicated server response.

IMAP, for example. And there are many internet protocols that don't work well with an RPC client like this:

         SendCommand("HELO")
                WaitForResponse()    // Synchronous concept
         SendCommand("MAIL FROM:")
                WaitForResponse()    // Synchronous concept

Read the SMTP PIPELINING RFC, look at the NNTP client code in Leafnode, look at the client part of any fast NFS implementation, etc.

Fast clients may look like this:

    when necessary and possible:
        send a command
    when data arrives from the server:
        figure out which command it belongs to
        update the client's state machine

--Arn

<Prev in Thread] Current Thread [Next in Thread>