From: Timo Sirainen Date: Tue, 22 Sep 2015 10:50:08 +0000 (+0300) Subject: virtual plugin: Disable caching via mailbox list indexes. X-Git-Tag: 2.2.19.rc1~17 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=013c0431b58809e16fd0afea0429d0b7bb1ef8a1;p=thirdparty%2Fdovecot%2Fcore.git virtual plugin: Disable caching via mailbox list indexes. Otherwise e.g. STATUS can give stale replies. --- diff --git a/src/plugins/virtual/virtual-storage.c b/src/plugins/virtual/virtual-storage.c index 7a6e9db492..49eaf4cd40 100644 --- a/src/plugins/virtual/virtual-storage.c +++ b/src/plugins/virtual/virtual-storage.c @@ -701,6 +701,24 @@ static bool virtual_is_inconsistent(struct mailbox *box) return index_storage_is_inconsistent(box); } +static int +virtual_list_index_has_changed(struct mailbox *box ATTR_UNUSED, + struct mail_index_view *list_view ATTR_UNUSED, + uint32_t seq ATTR_UNUSED) +{ + /* we don't have any quick and easy optimizations for tracking + virtual folders. ideally we'd completely disable mailbox list + indexes for them, but this is the easiest way to do it for now. */ + return 1; +} + +static void +virtual_list_index_update_sync(struct mailbox *box ATTR_UNUSED, + struct mail_index_transaction *trans ATTR_UNUSED, + uint32_t seq ATTR_UNUSED) +{ +} + struct mail_storage virtual_storage = { .name = VIRTUAL_STORAGE_NAME, .class_flags = MAIL_STORAGE_CLASS_FLAG_NOQUOTA, @@ -738,8 +756,8 @@ struct mailbox virtual_mailbox = { index_storage_attribute_iter_init, index_storage_attribute_iter_next, index_storage_attribute_iter_deinit, - NULL, - NULL, + virtual_list_index_has_changed, + virtual_list_index_update_sync, virtual_storage_sync_init, index_mailbox_sync_next, index_mailbox_sync_deinit,