aboutsummaryrefslogtreecommitdiffstats
path: root/driver.c
diff options
context:
space:
mode:
authorEric S. Raymond <esr@thyrsus.com>1999-09-22 04:08:25 +0000
committerEric S. Raymond <esr@thyrsus.com>1999-09-22 04:08:25 +0000
commitb28a3be8aee6bdf1a1cd167f3966bad9b2bb4481 (patch)
treec1ffccb431c4d0a9fa54c7499cbbc1bde40c876f /driver.c
parent74eb0be1e799d5485fae6e9c82fddc4d4b785df5 (diff)
downloadfetchmail-b28a3be8aee6bdf1a1cd167f3966bad9b2bb4481.tar.gz
fetchmail-b28a3be8aee6bdf1a1cd167f3966bad9b2bb4481.tar.bz2
fetchmail-b28a3be8aee6bdf1a1cd167f3966bad9b2bb4481.zip
Add comment.
svn path=/trunk/; revision=2572
Diffstat (limited to 'driver.c')
-rw-r--r--driver.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/driver.c b/driver.c
index 4c8e7bea..41071c3f 100644
--- a/driver.c
+++ b/driver.c
@@ -1106,7 +1106,16 @@ static int readbody(int sock, struct query *ctl, flag forward, int len)
unsigned char *inbufp = buf;
flag issoftline = FALSE;
- /* pass through the text lines */
+ /*
+ * Pass through the text lines in the body.
+ *
+ * Yes, this wants to be ||, not &&. The problem is that in the most
+ * important delimited protocol, POP3, the length is not reliable.
+ * As usual, the problem is Microsoft brain damage; see FAQ item S2.
+ * So, for delimited protocols we need to ignore the length here and
+ * instead drop out of the loop with a break statement when we see
+ * the message delimiter.
+ */
while (protocol->delimited || len > 0)
{
set_timeout(mytimeout);