[Top] [All Lists]

Re: what to say on timeout?

2004-01-05 17:37:05

----- Original Message ----- 
From: "Richard O. Hammer" <ROHammer(_at_)earthlink(_dot_)net>
To: <ietf-smtp(_at_)imc(_dot_)org>
Sent: Monday, January 05, 2004 2:40 PM
Subject: Re: what to say on timeout?

Can you say -- forthrightly with confidence -- what you imply? that
there is no formalized or standard message for the SMTP server to send
just before it exercises its option to timeout because of long
inactivity or too slow data transmission?

Hi Richard,

Yes, because it doesn't make sense if you are going to hangup the socket
connection.  If you are not going to hangup, then it makes sense to send
something with the expecting the client might do something with it.

Two reasons:

First, I believe it is inherently technically understood that SMTP is an
uni-directional standard client/server conversational model with a fixed
state machine.  The design is simply not there for the server to send
unsolited server notifications that is not part of an client request.   But
you question this, right?

Second,  more importantly if you drop the connection, the client will detect
it and most likely ignore whatever might be in the receiver queue and close
its end of the socket.   Unless the client is using a TCP-half close socket
shutdown logic,  the data is lost.

Basically, in regards to SMTP,  unless I am completely unaware of some
"hidden" design,  in situations where there is a command idleness (not a
request processing state),  there is simply no SMTP client design that
allows for the SMTP client to react to unsolicated server notifications
unless you sent the unsolicited notification, not hangup and expect the
client to read it as a response to any new command it may issue.

I think it would be engineering mistake to send unsoliticated notifications
with the design presumption that the client will read this information.   It
only makes sense to send a 421 timeout when it is a response to a command
and YOU don't hang up.  Sure, you can send it, but it serves no purpose if
you are going to hangup anyway.  It is only useful for logging on your
server end.

May I ask what is the intent here with the unsolicited server notification?
I am not referring to a response to a request, but rather a notification
send to the client because it is idle in command mode, what is the client
suppose to do with it?

Hector Santos, Santronics Software, Inc.

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