diff options
-rw-r--r-- | NEWS | 2 | ||||
-rw-r--r-- | driver.c | 9 | ||||
-rw-r--r-- | fetchmail-FAQ.html | 19 | ||||
-rwxr-xr-x | fetchmailconf | 14 | ||||
-rw-r--r-- | imap.c | 8 |
5 files changed, 35 insertions, 17 deletions
@@ -11,7 +11,7 @@ fetchmail-5.1.1 (): * Consistently show dummy arguments on manual page. * Fix lexer to permit `antispam -1'. -* Added fetchmailconf and FAQ warnings about Novell GroupWise. +* Added workaround, fetchmailconf warning, and FAQ about Novell GroupWise. * John Cigas's delay patch to avoid a timing problem with plugins. There are 266 people on fetchmail-friends and 444 on fetchmail-announce. @@ -1962,6 +1962,15 @@ const int maxfetch; /* maximum number of messages to fetch */ { if ((ok=(protocol->fetch_body)(mailserver_socket,ctl,num,&len))) goto cleanUp; + /* + * Work around a bug in Novell's + * broken GroupWise IMAP server; + * its body FETCH response is missing + * the required length for the data + * string. This violates RFC2060. + */ + if (len == -1) + len = msgsizes[num-1] - msglen; if (outlevel > O_SILENT && !wholesize) report_complete(stdout, _(" (%d body octets) "), len); diff --git a/fetchmail-FAQ.html b/fetchmail-FAQ.html index afb0b8e8..3bd99670 100644 --- a/fetchmail-FAQ.html +++ b/fetchmail-FAQ.html @@ -10,7 +10,7 @@ <table width="100%" cellpadding=0><tr> <td width="30%">Back to <a href="index.html">Fetchmail Home Page</a> <td width="30%" align=center>To <a href="/~esr/sitemap.html">Site Map</a> -<td width="30%" align=right>$Date: 1999/09/23 02:00:29 $ +<td width="30%" align=right>$Date: 1999/09/23 12:42:37 $ </table> <HR> <H1>Frequently Asked Questions About Fetchmail</H1> @@ -1448,14 +1448,15 @@ flag to ensure that it's recovered on the next cycle.<p> <hr> <h2><a name="S10">S10. How can I use fetchmail with Novell GroupWise?</a></h2> -You can't. The Novell GroupWise IMAP server would be better named -GroupFoolish; it is (according to the designer of IMAP) unusably -broken. The specific problem is that it doesn't include a required -content length in its BODY[TEXT] response, so fetchmail can't know how -much content to fetch. <p> +The Novell GroupWise IMAP server would be better named GroupFoolish; +it is (according to the designer of IMAP) unusably broken. Among +other things, it doesn't include a required content length in its +BODY[TEXT] response.<p> -If GroupWise is capable of supporting POP3, and that implementation -isn't also broken, some lucky winner should tell me.<p> +Fetchmail works around this problem, but we strongly recommend voting +with your dollars for a server that isn't brain-dead. If you stick +with code as shoddy as GroupWise seems to be, you will probably pay +for it with other problems.<p> <hr> <h2><a name="K1">K1. How can I use fetchmail with SOCKS?</a></h2> @@ -2492,7 +2493,7 @@ inactivity timeout.<p> <table width="100%" cellpadding=0><tr> <td width="30%">Back to <a href="index.html">Fetchmail Home Page</a> <td width="30%" align=center>To <a href="/~esr/sitemap.html">Site Map</a> -<td width="30%" align=right>$Date: 1999/09/23 02:00:29 $ +<td width="30%" align=right>$Date: 1999/09/23 12:42:37 $ </table> <P><ADDRESS>Eric S. Raymond <A HREF="mailto:esr@thyrsus.com"><esr@snark.thyrsus.com></A></ADDRESS> diff --git a/fetchmailconf b/fetchmailconf index d64910e9..a02b5337 100755 --- a/fetchmailconf +++ b/fetchmailconf @@ -1127,11 +1127,15 @@ this server. """ if string.find(greetline, "GroupWise") > 0: warnings = warnings + """ -You appear to be using the Novell GroupWise IMAP server. This server would -be better named GroupFoolish; according to the designer of IMAP it is unusably -broken. The specific problem is that it doesn't include a required content -length in its BODY[TEXT] response, so fetchmail can't know how much content -to fetch. +The Novell GroupWise IMAP server would be better named GroupFoolish; +it is (according to the designer of IMAP) unusably broken. Among +other things, it doesn't include a required content length in its +BODY[TEXT] response.<p> + +Fetchmail works around this problem, but we strongly recommend voting +with your dollars for a server that isn't brain-dead. If you stick +with code as shoddy as GroupWise seems to be, you will probably pay +for it with other problems.<p> """ @@ -1221,11 +1221,15 @@ static int imap_fetch_body(int sock, struct query *ctl, int number, int *lenp) if (num != number) return(PS_ERROR); - /* try to extract a length */ + /* + * Try to extract a length from the FETCH response. RFC2060 requires + * it to be present, but at least one IMAP server (Novell GroupWise) + * botches this. + */ if ((cp = strchr(buf, '{'))) *lenp = atoi(cp + 1); else - *lenp = 0; + *lenp = -1; /* missing length part in FETCH reponse */ return(PS_SUCCESS); } |