changeset 12879:939e0fccd517

imapc: Don't log an error message about missing BODY[] if message was already expunged.
author Timo Sirainen <tss@iki.fi>
date Mon, 04 Apr 2011 13:51:34 +0300
parents 194855240d31
children 6a9348fb2253
files src/lib-storage/index/imapc/imapc-mail.c
diffstat 1 files changed, 12 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib-storage/index/imapc/imapc-mail.c	Mon Apr 04 13:42:23 2011 +0300
+++ b/src/lib-storage/index/imapc/imapc-mail.c	Mon Apr 04 13:51:34 2011 +0300
@@ -4,6 +4,7 @@
 #include "str.h"
 #include "istream.h"
 #include "imap-envelope.h"
+#include "imapc-seqmap.h"
 #include "imapc-mail.h"
 #include "imapc-client.h"
 #include "imapc-storage.h"
@@ -117,8 +118,17 @@
 			return -1;
 
 		if (data->stream == NULL) {
-			mail_storage_set_critical(_mail->box->storage,
-				"imapc: Remote server didn't send BODY[]");
+			struct imapc_mailbox *mbox =
+				(struct imapc_mailbox *)_mail->box;
+			struct imapc_seqmap *seqmap;
+
+			seqmap = imapc_client_mailbox_get_seqmap(mbox->client_box);
+			if (imapc_seqmap_lseq_to_rseq(seqmap, _mail->seq) == 0)
+				mail_set_expunged(_mail);
+			else if (!_mail->expunged) {
+				mail_storage_set_critical(_mail->box->storage,
+					"imapc: Remote server didn't send BODY[]");
+			}
 			return -1;
 		}
 	}