]> 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)
committerMartti Rannanjärvi <martti.rannanjarvi@open-xchange.com>
Mon, 24 Oct 2022 07:18:00 +0000 (10:18 +0300)
src/lib-storage/index/imapc/imapc-storage.c

index 43d90de90bc6249bafeaa9dc3fadda609300890b..2c9fcdfa4d23ecba8d14377c0b53ab64d39178c8 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 &&