aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthias Andree <matthias.andree@gmx.de>2009-04-23 14:39:48 +0000
committerMatthias Andree <matthias.andree@gmx.de>2009-04-23 14:39:48 +0000
commite848a4738e70d14a4625b18085f2b3865633c914 (patch)
treefab8696dab94d3a59fc744cd9cd6ae0dba1e10e8
parent567ef0281ed372396f72dd03be100423694f944b (diff)
downloadfetchmail-e848a4738e70d14a4625b18085f2b3865633c914.tar.gz
fetchmail-e848a4738e70d14a4625b18085f2b3865633c914.tar.bz2
fetchmail-e848a4738e70d14a4625b18085f2b3865633c914.zip
Support NIL as body length (Exchange). Fixes Berlios Bug #11980.
svn path=/branches/BRANCH_6-3/; revision=5269
-rw-r--r--NEWS2
-rw-r--r--imap.c7
2 files changed, 9 insertions, 0 deletions
diff --git a/NEWS b/NEWS
index 55c2d18a..98147a43 100644
--- a/NEWS
+++ b/NEWS
@@ -62,6 +62,8 @@ fetchmail 6.3.10 (not yet released):
Courtesy of Nico Golde, Debian.
* When a pre- or post-connect command fails, now report the exit status or
termination signal properly through sys/wait.h macros.
+* When acquiring a body, understand NIL ("no such data item"), as returned by
+ some MS Exchange versions. Fixes BerliOS Bug #11980 by KB Sriram.
# CHANGES
* Make the comparison of the SSL fingerprints case insensitive, to
diff --git a/imap.c b/imap.c
index dd303f78..53474924 100644
--- a/imap.c
+++ b/imap.c
@@ -1153,6 +1153,13 @@ static int imap_fetch_body(int sock, struct query *ctl, int number, int *lenp)
if (num != number)
return(PS_ERROR);
+ /* Understand "NIL" as length => no body present
+ * (MS Exchange, BerliOS Bug #11980) */
+ if (strstr(buf+10, "NIL)")) {
+ *lenp = 0;
+ return PS_SUCCESS;
+ }
+
/*
* Try to extract a length from the FETCH response. RFC2060 requires
* it to be present, but at least one IMAP server (Novell GroupWise)