diff options
author | Eric S. Raymond <esr@thyrsus.com> | 1999-08-01 07:28:35 +0000 |
---|---|---|
committer | Eric S. Raymond <esr@thyrsus.com> | 1999-08-01 07:28:35 +0000 |
commit | ee09cac7cfea08f60ab92873970f16165d473cac (patch) | |
tree | 228cef1c49307b0d530f421dcab6363222629620 | |
parent | 31a766b10679534993eada1bdeb9a6f7cb5585c0 (diff) | |
download | fetchmail-ee09cac7cfea08f60ab92873970f16165d473cac.tar.gz fetchmail-ee09cac7cfea08f60ab92873970f16165d473cac.tar.bz2 fetchmail-ee09cac7cfea08f60ab92873970f16165d473cac.zip |
Use LOCKBUSY better.
svn path=/trunk/; revision=2530
-rw-r--r-- | NEWS | 1 | ||||
-rw-r--r-- | pop3.c | 22 |
2 files changed, 18 insertions, 5 deletions
@@ -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. @@ -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; |