From: Markus Valentin Date: Wed, 12 Oct 2022 11:26:03 +0000 (+0200) Subject: imapc: imapc_mailbox_get_status() - Implement STATUS_UNSEEN with INDEXPVT X-Git-Tag: 2.3.20~33 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=b0f19c117ade54ce132abf40c09afa54d4b2abf0;p=thirdparty%2Fdovecot%2Fcore.git imapc: imapc_mailbox_get_status() - Implement STATUS_UNSEEN with INDEXPVT --- diff --git a/src/lib-storage/index/imapc/imapc-storage.c b/src/lib-storage/index/imapc/imapc-storage.c index 43d90de90b..2c9fcdfa4d 100644 --- a/src/lib-storage/index/imapc/imapc-storage.c +++ b/src/lib-storage/index/imapc/imapc-storage.c @@ -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 &&