changeset 21225:2f077146c48e

lib-storage: Add mail_storage.list_index_corrupted() The actual implementation is in the next commit.
author Timo Sirainen <timo.sirainen@dovecot.fi>
date Thu, 24 Nov 2016 15:50:01 +0200
parents 1455417c56a5
children a4d4a5dffa09
files src/lib-storage/fail-mail-storage.c src/lib-storage/index/cydir/cydir-storage.c src/lib-storage/index/dbox-multi/mdbox-deleted-storage.c src/lib-storage/index/dbox-multi/mdbox-storage.c src/lib-storage/index/dbox-single/sdbox-storage.c src/lib-storage/index/imapc/imapc-storage.c src/lib-storage/index/maildir/maildir-storage.c src/lib-storage/index/mbox/mbox-storage.c src/lib-storage/index/pop3c/pop3c-storage.c src/lib-storage/index/raw/raw-storage.c src/lib-storage/index/shared/shared-storage.c src/lib-storage/mail-storage-private.h src/plugins/virtual/virtual-storage.c
diffstat 13 files changed, 31 insertions(+), 13 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib-storage/fail-mail-storage.c	Thu Nov 24 17:16:30 2016 +0200
+++ b/src/lib-storage/fail-mail-storage.c	Thu Nov 24 15:50:01 2016 +0200
@@ -44,7 +44,8 @@
 		fail_storage_get_list_settings,
 		NULL,
 		fail_mailbox_alloc,
-		NULL
+		NULL,
+		NULL,
 	}
 };
 
--- a/src/lib-storage/index/cydir/cydir-storage.c	Thu Nov 24 17:16:30 2016 +0200
+++ b/src/lib-storage/index/cydir/cydir-storage.c	Thu Nov 24 15:50:01 2016 +0200
@@ -122,7 +122,8 @@
 		cydir_storage_get_list_settings,
 		NULL,
 		cydir_mailbox_alloc,
-		NULL
+		NULL,
+		NULL,
 	}
 };
 
--- a/src/lib-storage/index/dbox-multi/mdbox-deleted-storage.c	Thu Nov 24 17:16:30 2016 +0200
+++ b/src/lib-storage/index/dbox-multi/mdbox-deleted-storage.c	Thu Nov 24 15:50:01 2016 +0200
@@ -258,7 +258,8 @@
 		dbox_storage_get_list_settings,
 		NULL,
 		mdbox_deleted_mailbox_alloc,
-		NULL
+		NULL,
+		NULL,
 	}
 };
 
--- a/src/lib-storage/index/dbox-multi/mdbox-storage.c	Thu Nov 24 17:16:30 2016 +0200
+++ b/src/lib-storage/index/dbox-multi/mdbox-storage.c	Thu Nov 24 15:50:01 2016 +0200
@@ -454,7 +454,8 @@
 		dbox_storage_get_list_settings,
 		mdbox_storage_autodetect,
 		mdbox_mailbox_alloc,
-		mdbox_purge
+		mdbox_purge,
+		NULL,
 	}
 };
 
--- a/src/lib-storage/index/dbox-single/sdbox-storage.c	Thu Nov 24 17:16:30 2016 +0200
+++ b/src/lib-storage/index/dbox-single/sdbox-storage.c	Thu Nov 24 15:50:01 2016 +0200
@@ -417,7 +417,8 @@
 		dbox_storage_get_list_settings,
 		sdbox_storage_autodetect,
 		sdbox_mailbox_alloc,
-		NULL
+		NULL,
+		NULL,
 	}
 };
 
@@ -434,7 +435,8 @@
 		dbox_storage_get_list_settings,
 		sdbox_storage_autodetect,
 		sdbox_mailbox_alloc,
-		NULL
+		NULL,
+		NULL,
 	}
 };
 
--- a/src/lib-storage/index/imapc/imapc-storage.c	Thu Nov 24 17:16:30 2016 +0200
+++ b/src/lib-storage/index/imapc/imapc-storage.c	Thu Nov 24 15:50:01 2016 +0200
@@ -1101,7 +1101,8 @@
 		imapc_storage_get_list_settings,
 		NULL,
 		imapc_mailbox_alloc,
-		NULL
+		NULL,
+		NULL,
 	}
 };
 
--- a/src/lib-storage/index/maildir/maildir-storage.c	Thu Nov 24 17:16:30 2016 +0200
+++ b/src/lib-storage/index/maildir/maildir-storage.c	Thu Nov 24 15:50:01 2016 +0200
@@ -678,7 +678,8 @@
 		maildir_storage_get_list_settings,
 		maildir_storage_autodetect,
 		maildir_mailbox_alloc,
-		NULL
+		NULL,
+		NULL,
 	}
 };
 
--- a/src/lib-storage/index/mbox/mbox-storage.c	Thu Nov 24 17:16:30 2016 +0200
+++ b/src/lib-storage/index/mbox/mbox-storage.c	Thu Nov 24 15:50:01 2016 +0200
@@ -821,7 +821,8 @@
 		mbox_storage_get_list_settings,
 		mbox_storage_autodetect,
 		mbox_mailbox_alloc,
-		NULL
+		NULL,
+		NULL,
 	}
 };
 
--- a/src/lib-storage/index/pop3c/pop3c-storage.c	Thu Nov 24 17:16:30 2016 +0200
+++ b/src/lib-storage/index/pop3c/pop3c-storage.c	Thu Nov 24 15:50:01 2016 +0200
@@ -309,7 +309,8 @@
 		pop3c_storage_get_list_settings,
 		NULL,
 		pop3c_mailbox_alloc,
-		NULL
+		NULL,
+		NULL,
 	}
 };
 
--- a/src/lib-storage/index/raw/raw-storage.c	Thu Nov 24 17:16:30 2016 +0200
+++ b/src/lib-storage/index/raw/raw-storage.c	Thu Nov 24 15:50:01 2016 +0200
@@ -212,7 +212,8 @@
 		raw_storage_get_list_settings,
 		NULL,
 		raw_mailbox_alloc,
-		NULL
+		NULL,
+		NULL,
 	}
 };
 
--- a/src/lib-storage/index/shared/shared-storage.c	Thu Nov 24 17:16:30 2016 +0200
+++ b/src/lib-storage/index/shared/shared-storage.c	Thu Nov 24 15:50:01 2016 +0200
@@ -371,6 +371,7 @@
 		shared_storage_get_list_settings,
 		NULL,
 		fail_mailbox_alloc,
-		NULL
+		NULL,
+		NULL,
 	}
 };
--- a/src/lib-storage/mail-storage-private.h	Thu Nov 24 17:16:30 2016 +0200
+++ b/src/lib-storage/mail-storage-private.h	Thu Nov 24 15:50:01 2016 +0200
@@ -48,6 +48,11 @@
 					 const char *vname,
 					 enum mailbox_flags flags);
 	int (*purge)(struct mail_storage *storage);
+	/* Called when mailbox list index corruption has been detected.
+	   The callback should add any missing mailboxes to the list index.
+	   Returns 0 on success, -1 on temporary failure that didn't properly
+	   fix the index. */
+	int (*list_index_corrupted)(struct mail_storage *storage);
 };
 
 union mail_storage_module_context {
--- a/src/plugins/virtual/virtual-storage.c	Thu Nov 24 17:16:30 2016 +0200
+++ b/src/plugins/virtual/virtual-storage.c	Thu Nov 24 15:50:01 2016 +0200
@@ -777,7 +777,8 @@
 		virtual_storage_get_list_settings,
 		NULL,
 		virtual_mailbox_alloc,
-		NULL
+		NULL,
+		NULL,
 	}
 };