aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEric S. Raymond <esr@thyrsus.com>1996-12-21 10:26:34 +0000
committerEric S. Raymond <esr@thyrsus.com>1996-12-21 10:26:34 +0000
commit950350966b07d1f121f4cf50a2704f1a65dc4b38 (patch)
treee20caf13502b92cb558945c3b06b75b62813ecc4
parentb5eac88eceb211ef46470ef2c5e414134c088410 (diff)
downloadfetchmail-950350966b07d1f121f4cf50a2704f1a65dc4b38.tar.gz
fetchmail-950350966b07d1f121f4cf50a2704f1a65dc4b38.tar.bz2
fetchmail-950350966b07d1f121f4cf50a2704f1a65dc4b38.zip
Correct a horrible bug.
svn path=/trunk/; revision=670
-rw-r--r--NEWS12
-rw-r--r--socket.c7
2 files changed, 15 insertions, 4 deletions
diff --git a/NEWS b/NEWS
index 35cc418a..2a1ff4aa 100644
--- a/NEWS
+++ b/NEWS
@@ -10,7 +10,11 @@
Release Notes:
------------------------------------------------------------------------------
-fetchmail-2.4 (Sat Dec 21 02:37:58 EST 1996)
+fetchmail-2.4 (Sat Dec 21 05:24:44 EST 1996)
+
+Note: a preliminary version of 2.4 was withdrawn after four hours of
+exposure due to horrible lossage apparently triggered by a bug in the
+Linux standard IO library. See the comment in socket.c.
features --
@@ -26,8 +30,10 @@ bugs --
* Restored compile-time portability to Solaris.
-* Force line-buffering on socket streams (Linux apparently defaults to this).
- This may fix some hang problems reported under Solaris.
+* Initial 2.4 said: "Force line-buffering on socket streams (Linux apparently
+ defaults to this). This may fix some hang problems reported under Solaris."
+ Unfortunately this "fix" triggers horrible lossage on long messages and had
+ to be removed.
There are 166 people on the fetchmail-friends list.
diff --git a/socket.c b/socket.c
index 6af77ef3..9bfc5485 100644
--- a/socket.c
+++ b/socket.c
@@ -76,7 +76,12 @@ FILE *sockopen(char *host, int clientPort)
fp = fdopen(sock, "r+");
#ifdef FOO
- /* for unknown reasons, this results in horrible lossage */
+ /*
+ * For unknown reasons, this results in horrible lossage.
+ * To see this, condition in this line, generate a test pattern
+ * of 8K, fetch it, and watch it garble the test pattern.
+ * I think there's a bug in stdio lurking here.
+ */
setvbuf(fp, sbuf, _IOLBF, INTERNAL_BUFSIZE);
#endif /* FOO */