aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--NEWS6
-rw-r--r--pop3.c8
2 files changed, 11 insertions, 3 deletions
diff --git a/NEWS b/NEWS
index 6f241000..8bd56bb4 100644
--- a/NEWS
+++ b/NEWS
@@ -14,11 +14,13 @@
Release Notes:
------------------------------------------------------------------------------
-fetchmail-4.4.3 (Sun Apr 19 17:35:56 EDT 1998):
+fetchmail-4.4.3 (Sun Apr 19 18:22:00 EDT 1998):
* Back out one of the changes to the null Return-Path handling, as it caused
invalid rewrites leading to protocol sync errors under some configurations.
+* Add code to disable using TOP for pop3.c when fetchall is on. Recent
+ versions of qpopper don't bounds-check TOP requests properly.
-There are 276 people on fetchmail-friends and 186 on fetchmail-announce.
+There are 277 people on fetchmail-friends and 186 on fetchmail-announce.
fetchmail-4.4.2 (Sun Apr 19 00:13:42 EDT 1998):
* Use TOP for POP3 retrieval to avoid marking messages seen. Duh!
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);