changeset 12594:f7e4d46e980f

lib-storage: Don't fail mailbox deletion if backend doesn't support mailbox GUIDs.
author Timo Sirainen <tss@iki.fi>
date Sun, 23 Jan 2011 23:32:34 +0200
parents ad3abe06954b
children 5d97dfa9d86c
files src/lib-storage/index/index-storage.c
diffstat 1 files changed, 7 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib-storage/index/index-storage.c	Sun Jan 23 22:58:34 2011 +0200
+++ b/src/lib-storage/index/index-storage.c	Sun Jan 23 23:32:34 2011 +0200
@@ -446,6 +446,7 @@
 int index_storage_mailbox_delete(struct mailbox *box)
 {
 	struct mailbox_metadata metadata;
+	int ret_guid;
 
 	if (!box->opened) {
 		/* \noselect mailbox, try deleting only the directory */
@@ -455,8 +456,7 @@
 	if (mailbox_mark_index_deleted(box, TRUE) < 0)
 		return -1;
 
-	if (mailbox_get_metadata(box, MAILBOX_METADATA_GUID, &metadata) < 0)
-		return -1;
+	ret_guid = mailbox_get_metadata(box, MAILBOX_METADATA_GUID, &metadata);
 
 	/* Make sure the indexes are closed before trying to delete the
 	   directory that contains them. It can still fail with some NFS
@@ -470,8 +470,11 @@
 		return -1;
 	} 
 
-	mailbox_list_add_change(box->list, MAILBOX_LOG_RECORD_DELETE_MAILBOX,
-				metadata.guid);
+	if (ret_guid == 0) {
+		mailbox_list_add_change(box->list,
+					MAILBOX_LOG_RECORD_DELETE_MAILBOX,
+					metadata.guid);
+	}
 	return index_storage_mailbox_delete_dir(box, TRUE);
 }