]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
imapc: imapc_mailbox_get_status() - Implement STATUS_UNSEEN with INDEXPVT
authorMarkus Valentin <markus.valentin@open-xchange.com>
Wed, 12 Oct 2022 11:26:03 +0000 (13:26 +0200)
committeraki.tuomi <aki.tuomi@open-xchange.com>
Tue, 18 Oct 2022 17:08:19 +0000 (17:08 +0000)
src/lib-storage/index/imapc/imapc-storage.c

index f5b68e8e1041118f4ede40d1f3545ee1f6fd06da..53db829c963db1903462cd42270926d947bbe01d 100644 (file)
@@ -1093,6 +1093,15 @@ static int imapc_mailbox_get_status(struct mailbox *box,
        } else {
                if (imapc_mailbox_run_status(box, items, status_r) < 0)
                        return -1;
+               /* If this mailbox has private indexes make sure to check
+                  STATUS_UNSEEN from there. */
+               if (box->list->set.index_pvt_dir != NULL &&
+                   (items & (STATUS_UNSEEN)) != 0) {
+                       struct mailbox_status pvt_idx_status;
+                       index_storage_get_status(box, STATUS_UNSEEN,
+                                                &pvt_idx_status);
+                       status_r->unseen = pvt_idx_status.unseen;
+               }
        }
 
        if (box->opened && !box->deleting && (items & STATUS_UIDNEXT) != 0 &&