]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
virtual: virtual_transaction_commit() - Don't fail when a backend box was removed...
authorMarco Bettini <marco.bettini@open-xchange.com>
Thu, 6 Apr 2023 15:07:15 +0000 (15:07 +0000)
committerMarco Bettini <marco.bettini@open-xchange.com>
Fri, 21 Apr 2023 07:11:56 +0000 (07:11 +0000)
src/plugins/virtual/virtual-transaction.c

index 4cb582c981351aed2915e8cd6f9c10bb41f2f860..bfe3bfd1e96ce4b36050378525c04c7749de2990 100644 (file)
@@ -56,7 +56,11 @@ int virtual_transaction_commit(struct mailbox_transaction_context *t,
        struct mailbox_transaction_context *bt;
        array_foreach_elem(&vt->backend_transactions, bt) {
                struct mailbox *bbox = bt->box;
+               unsigned int changes = bt->changes == NULL ? 0 :
+                       array_count(&bt->changes->saved_uids);
                if (mailbox_transaction_commit(&bt) < 0) {
+                       if (bbox->mailbox_deleted && changes == 0)
+                               continue;
                        ret = -1;
                        virtual_box_copy_error(vt->t.box, bbox);
                }