On Wed, 14 Feb 2007, Eric A. Hall wrote:
Generally speaking though, I think the bis-bis update to SMTP probably
ought to implement something like "final reply ought to have its own
write() if possible" as a way for receivers to detect that client has lost
connection to the server.
How is that supposed to help? If the client receives the reply then goes
idle, the server will hand around until its SMTP timeout ends. If the
client has dropped off the net then the server's write will be buffered in
the kernel and TCP retries will continue until the server's SMTP timeout
ends. The server won't be able to tell the difference between the two
scenarios because it can't find out how much data is unacknowledged. The
same applies if the client has pipelined the next message's envelope and
the server pipelines all its replies or splits them as you suggest: in the
event of failure the TCP stack will buffer and amalgamate the replies.
f.a.n.finch <dot(_at_)dotat(_dot_)at> http://dotat.at/
FORTIES: WESTERLY BACKING SOUTHERLY 5 TO 7, OCCASIONALLY GALE 8. ROUGH OR VERY
ROUGH. RAIN AT FIRST. MODERATE OR GOOD.