changeset 19665:cb104cf148af

imapc: If FETCH didn't send our wanted data, log the tagged FETCH reply text.
author Timo Sirainen <timo.sirainen@dovecot.fi>
date Thu, 28 Jan 2016 17:43:01 +0200
parents d6561d5a8fb4
children 2470745d19e7
files src/lib-storage/index/imapc/imapc-mail-fetch.c src/lib-storage/index/imapc/imapc-mail.c src/lib-storage/index/imapc/imapc-mail.h
diffstat 3 files changed, 6 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib-storage/index/imapc/imapc-mail-fetch.c	Thu Jan 28 17:29:57 2016 +0200
+++ b/src/lib-storage/index/imapc/imapc-mail-fetch.c	Thu Jan 28 17:43:01 2016 +0200
@@ -21,6 +21,8 @@
 	struct imapc_mailbox *mbox =
 		(struct imapc_mailbox *)mail->imail.mail.mail.box;
 
+	mail->last_fetch_reply = p_strdup(mail->imail.mail.pool, reply->text_full);
+
 	switch (reply->state) {
 	case IMAPC_COMMAND_STATE_OK:
 		break;
--- a/src/lib-storage/index/imapc/imapc-mail.c	Thu Jan 28 17:29:57 2016 +0200
+++ b/src/lib-storage/index/imapc/imapc-mail.c	Thu Jan 28 17:43:01 2016 +0200
@@ -84,9 +84,10 @@
 		   */
 		fix_broken_mail = imail->fetch_ignore_if_missing;
 		mail_storage_set_critical(mail->box->storage,
-			"imapc: Remote server didn't send %s for UID %u in %s%s",
+			"imapc: Remote server didn't send %s for UID %u in %s%s (FETCH replied: %s)",
 			field, mail->uid, mail->box->vname,
-			fix_broken_mail ? " - treating it as empty" : "");
+			fix_broken_mail ? " - treating it as empty" : "",
+			imail->last_fetch_reply);
 	}
 	return fix_broken_mail ? 0 : -1;
 }
--- a/src/lib-storage/index/imapc/imapc-mail.h	Thu Jan 28 17:29:57 2016 +0200
+++ b/src/lib-storage/index/imapc/imapc-mail.h	Thu Jan 28 17:43:01 2016 +0200
@@ -14,6 +14,7 @@
 	const char *const *fetching_headers;
 	unsigned int fetch_count;
 	bool fetch_sent;
+	const char *last_fetch_reply;
 
 	int fd;
 	buffer_t *body;