]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-storage: Don't fail mailbox deletion if backend doesn't support mailbox GUIDs.
authorTimo Sirainen <tss@iki.fi>
Sun, 23 Jan 2011 21:32:34 +0000 (23:32 +0200)
committerTimo Sirainen <tss@iki.fi>
Sun, 23 Jan 2011 21:32:34 +0000 (23:32 +0200)
src/lib-storage/index/index-storage.c

index 74fbe083c23155e3d9c555332a8c435ef0cefa97..9a37abb321b5fc54910b16fb4a1ea54a6daa4cc0 100644 (file)
@@ -446,6 +446,7 @@ int index_storage_mailbox_delete_dir(struct mailbox *box, bool mailbox_deleted)
 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 @@ int index_storage_mailbox_delete(struct mailbox *box)
        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 @@ int index_storage_mailbox_delete(struct mailbox *box)
                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);
 }