From: Mikulas Patocka Date: Fri, 18 Nov 2011 23:43:11 +0000 (-0500) Subject: fetchmail workaround for a bug in Zimbra X-Git-Url: http://pileus.org/git/?a=commitdiff_plain;h=c0afd60c07987a3519aea96b599e8558ea2361d6;p=~andy%2Ffetchmail fetchmail workaround for a bug in Zimbra Zimbra occasionally returns this response: fetchmail: IMAP> A0007 FETCH 1 RFC822.HEADER fetchmail: IMAP< * 1 FETCH () fetchmail: IMAP< A0007 OK FETCH completed It happens when there is a corrupted message without a header in the database. (I don't know how this message could be created, I just see it there). When fetchmail encounters such resonse, it gives up and disconnects. This patch changes it so that PS_TRANSIENT is returned in this case and fetchmail continues to fetch following messages correctly. --- diff --git a/imap.c b/imap.c index 5c3218d0..93f05f2c 100644 --- a/imap.c +++ b/imap.c @@ -1166,7 +1166,8 @@ static int imap_fetch_headers(int sock, struct query *ctl,int number,int *lenp) /* try to recover for some responses */ if (!strncmp(buf, "* NO", 4) || - !strncmp(buf, "* BAD", 5)) + !strncmp(buf, "* BAD", 5) || + strstr(buf, "FETCH ()")) { return(PS_TRANSIENT); }