diff options
author | Philip Hazel <ph10@hermes.cam.ac.uk> | 2007-04-16 10:31:58 +0000 |
---|---|---|
committer | Philip Hazel <ph10@hermes.cam.ac.uk> | 2007-04-16 10:31:58 +0000 |
commit | 563b63fa3e09d67239f51483e5dcec5c91251522 (patch) | |
tree | 39c50ba6ecad3e86c0b1a5676ad1d935e9beda73 /doc | |
parent | 58eb016e585187a87ade7602b2aecb2208605320 (diff) |
Fix bug in previous patch: following data is permitted after '.' so it
must not be diagnosed as an error. The check for vanished socket can
only be applied when there is no data pending.
Diffstat (limited to 'doc')
-rw-r--r-- | doc/doc-txt/ChangeLog | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/doc/doc-txt/ChangeLog b/doc/doc-txt/ChangeLog index 4a8d41d66..db68bdae1 100644 --- a/doc/doc-txt/ChangeLog +++ b/doc/doc-txt/ChangeLog @@ -1,4 +1,4 @@ -$Cambridge: exim/doc/doc-txt/ChangeLog,v 1.502 2007/04/13 15:13:47 ph10 Exp $ +$Cambridge: exim/doc/doc-txt/ChangeLog,v 1.503 2007/04/16 10:31:58 ph10 Exp $ Change log file for Exim from version 4.21 ------------------------------------------- @@ -203,14 +203,16 @@ SC/03 Eximstats - V1.58 Fix to get <> and blackhole to show in edomain tables. PH/43 Yet another patch from the Sieve maintainer. PH/44 I found a way to check for a TCP/IP connection going away before sending - the response to the final '.' that terminates a message. At this time, - there should not be any pending input - the client should be waiting for - the response. Therefore, a select() can be used: if it shows that the - input is "ready", there is either input waiting, or the socket has been - closed. Both cases are errors. (It's a bit more complicated than this - because of buffering, but that's the essence of it.) Previously, Exim + the response to the final '.' that terminates a message, but only in the + case where the client has not sent further data following the '.' + (unfortunately, this is allowed). However, in many cases there won't be + any further data because there won't be any more messages to send. A call + to select() can be used: if it shows that the input is "ready", there is + either input waiting, or the socket has been closed. An attempt to read + the next input character can distinguish the two cases. Previously, Exim would have sent an OK response which the client would never have see. - This could lead to message repetition. This fix should cure that. + This could lead to message repetition. This fix should cure that, at + least in a lot of common cases. Exim version 4.66 |