changeset 22473:18273d30c64d

lib-storage: Add mail_storage_set_index_error()
author Timo Sirainen <timo.sirainen@dovecot.fi>
date Mon, 21 Aug 2017 15:34:40 +0300
parents 241845e0a426
children eb01d3b9c90b
files src/lib-storage/mail-storage-private.h src/lib-storage/mail-storage.c
diffstat 2 files changed, 17 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib-storage/mail-storage-private.h	Mon Aug 21 15:29:46 2017 +0300
+++ b/src/lib-storage/mail-storage-private.h	Mon Aug 21 15:34:40 2017 +0300
@@ -736,6 +736,8 @@
 			       const char *fmt, ...) ATTR_FORMAT(2, 3);
 void mail_storage_set_internal_error(struct mail_storage *storage);
 void mailbox_set_index_error(struct mailbox *box);
+void mail_storage_set_index_error(struct mail_storage *storage,
+				  struct mail_index *index);
 bool mail_storage_set_error_from_errno(struct mail_storage *storage);
 void mail_storage_copy_list_error(struct mail_storage *storage,
 				  struct mailbox_list *list);
--- a/src/lib-storage/mail-storage.c	Mon Aug 21 15:29:46 2017 +0300
+++ b/src/lib-storage/mail-storage.c	Mon Aug 21 15:34:40 2017 +0300
@@ -602,16 +602,23 @@
 
 void mailbox_set_index_error(struct mailbox *box)
 {
-	if (mail_index_is_deleted(box->index))
+	if (mail_index_is_deleted(box->index)) {
 		mailbox_set_deleted(box);
-	else {
-		mail_storage_set_internal_error(box->storage);
-		/* use the lib-index's error as our internal error string */
-		box->storage->last_internal_error =
-			i_strdup(mail_index_get_error_message(box->index));
-		box->storage->last_error_is_internal = TRUE;
+		mail_index_reset_error(box->index);
+	} else {
+		mail_storage_set_index_error(box->storage, box->index);
 	}
-	mail_index_reset_error(box->index);
+}
+
+void mail_storage_set_index_error(struct mail_storage *storage,
+				  struct mail_index *index)
+{
+	mail_storage_set_internal_error(storage);
+	/* use the lib-index's error as our internal error string */
+	storage->last_internal_error =
+		i_strdup(mail_index_get_error_message(index));
+	storage->last_error_is_internal = TRUE;
+	mail_index_reset_error(index);
 }
 
 const struct mail_storage_settings *