Fix bug in previous patch: following data is permitted after '.' so it
[exim.git] / doc / doc-txt / ChangeLog
index 4a8d41d6657c8427580dfa9c08c449d4098540d0..db68bdae1957f2b531ad3b7963e0484c549ab195 100644 (file)
@@ -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