From: Timo Sirainen Date: Fri, 25 Aug 2017 10:16:26 +0000 (+0300) Subject: lib-storage: Support LISTINDEX= to disable it X-Git-Tag: 2.3.0.rc1~1147 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=3e376d7c581357dc5f1fe032585d5b4a2201c4e8;p=thirdparty%2Fdovecot%2Fcore.git lib-storage: Support LISTINDEX= to disable it --- diff --git a/src/lib-storage/list/mailbox-list-index.c b/src/lib-storage/list/mailbox-list-index.c index 87432f652d..c85308faf2 100644 --- a/src/lib-storage/list/mailbox-list-index.c +++ b/src/lib-storage/list/mailbox-list-index.c @@ -814,6 +814,19 @@ mailbox_list_index_set_subscribed(struct mailbox_list *_list, return 0; } +static bool mailbox_list_index_is_enabled(struct mailbox_list *list) +{ + if (!list->mail_set->mailbox_list_index) + return FALSE; + if (strcmp(list->name, MAILBOX_LIST_NAME_NONE) == 0) + return FALSE; + + i_assert(list->set.list_index_fname != NULL); + if (list->set.list_index_fname[0] == '\0') + return FALSE; + return TRUE; +} + static void mailbox_list_index_created(struct mailbox_list *list) { struct mailbox_list_vfuncs *v = list->vlast; @@ -823,8 +836,7 @@ static void mailbox_list_index_created(struct mailbox_list *list) /* layout=index doesn't have any backing store */ has_backing_store = strcmp(list->name, MAILBOX_LIST_NAME_INDEX) != 0; - if (!list->mail_set->mailbox_list_index || - strcmp(list->name, MAILBOX_LIST_NAME_NONE) == 0) { + if (!mailbox_list_index_is_enabled(list)) { /* reserve the module context anyway, so syncing code knows that the index is disabled */ i_assert(has_backing_store);