aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--NEWS1
-rw-r--r--pop3.c22
2 files changed, 18 insertions, 5 deletions
diff --git a/NEWS b/NEWS
index dbdf1a68..cddc8cc8 100644
--- a/NEWS
+++ b/NEWS
@@ -234,6 +234,7 @@ fetchmail-4.6.7 (Sat Nov 21 13:59:47 EST 1998):
* Postmaster option fix from Bill Metzenthen <billm@melbpc.org.au>.
* Socks library support from Guiseppe Guerini.
* Notification mail is now sent to the user on 20 consecutive timeouts.
+* Try to cope with the InterMail server's "wait a few minutes" error.
There are 247 people on fetchmail-friends and 308 on fetchmail-announce.
diff --git a/pop3.c b/pop3.c
index 6a33c2f2..d85d314d 100644
--- a/pop3.c
+++ b/pop3.c
@@ -79,15 +79,27 @@ int pop3_ok (int sock, char *argbuf)
ok = PS_PROTOCOL;
/*
* We're checking for "lock busy", "unable to lock",
- * "already locked" etc. here. This indicates that we
- * have to wait for the server to clean up before we
- * can poll again.
+ * "already locked", "wait a few minutes" etc. here.
+ * This indicates that we have to wait for the server to
+ * unwedge itself before we can poll again.
*
* PS_LOCKBUSY check empirically verified with two recent
- * versions the Berkeley popper; QPOP (version 2.2) and
+ * versions of the Berkeley popper; QPOP (version 2.2) and
* QUALCOMM Pop server derived from UCB (version 2.1.4-R3)
+ * These are caught by the case-indifferent "lock" check.
+ * The "wait" catches "mail storage services unavailable,
+ * wait a few minutes and try again" on the InterMail server.
+ *
+ * If these aren't picked up on correctly, fetchmail will
+ * think there is an authentication failure and wedge the
+ * connection in order to prevent futile polls.
+ *
+ * Gad, what a kluge.
*/
- else if (strstr(bufp,"lock")||strstr(bufp,"Lock")||strstr(bufp,"LOCK"))
+ else if (strstr(bufp,"lock")
+ || strstr(bufp,"Lock")
+ || strstr(bufp,"LOCK")
+ || strstr(bufp,"wait"))
ok = PS_LOCKBUSY;
else
ok = PS_AUTHFAIL;