aboutsummaryrefslogtreecommitdiffstats
path: root/pop3.c
diff options
context:
space:
mode:
authorEric S. Raymond <esr@thyrsus.com>1998-04-20 00:05:31 +0000
committerEric S. Raymond <esr@thyrsus.com>1998-04-20 00:05:31 +0000
commit65a193fac44ed24557215a9c2b62bb3458784994 (patch)
tree9f64dcb9cde35230e46f2f873879d8f13e9b045c /pop3.c
parentcc97d999c9afbe2e12e66c012c0beedbad5cfecf (diff)
downloadfetchmail-65a193fac44ed24557215a9c2b62bb3458784994.tar.gz
fetchmail-65a193fac44ed24557215a9c2b62bb3458784994.tar.bz2
fetchmail-65a193fac44ed24557215a9c2b62bb3458784994.zip
Allow fetchall to switch off TOP use.
svn path=/trunk/; revision=1753
Diffstat (limited to 'pop3.c')
-rw-r--r--pop3.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/pop3.c b/pop3.c
index be576115..09565c33 100644
--- a/pop3.c
+++ b/pop3.c
@@ -539,8 +539,14 @@ static int pop3_fetch(int sock, struct query *ctl, int number, int *lenp)
* However...*don't* do this if we're using keep to suppress deletion!
* In that case, marking the seen flag is the only way to prevent the
* message from being re-fetched on subsequent runs.
+ *
+ * Also suppress TOP if fetchall is on. This is a kludge to get
+ * around a really obnoxious bug in qpopper 2.41 beta 1 that must
+ * have been introduced sometime after the 2.2 I tested with. The
+ * newer version doesn't bounds-check TOP requests to clip them
+ * at the next end of message. Grrrrr...
*/
- if (ctl->keep)
+ if (ctl->keep || ctl->fetchall)
gen_send(sock, "RETR %d", number);
else
gen_send(sock, "TOP %d 2147483647", number);