From: Timo Sirainen Date: Fri, 7 Mar 2025 10:56:55 +0000 (+0200) Subject: lib-storage: Try to get special_use flags using cached mailbox settings X-Git-Tag: 2.4.1~26 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=4ae2bb2ccb45a13ac13d1381eed49a2560bcb4ff;p=thirdparty%2Fdovecot%2Fcore.git lib-storage: Try to get special_use flags using cached mailbox settings --- diff --git a/src/lib-storage/list/mailbox-list-iter.c b/src/lib-storage/list/mailbox-list-iter.c index 6d41dfedb9..dfa1e4501a 100644 --- a/src/lib-storage/list/mailbox-list-iter.c +++ b/src/lib-storage/list/mailbox-list-iter.c @@ -1014,11 +1014,17 @@ mailbox_list_iter_next_call(struct mailbox_list_iterate_context *ctx) if ((ctx->flags & MAILBOX_LIST_ITER_RETURN_SPECIALUSE) != 0) { /* NOTE: ctx->list is fake - don't use it directly */ const char *error; - struct event *event = mail_storage_mailbox_create_event( - info->ns->list->event, info->ns->list, info->vname); - ret = settings_get(event, &mailbox_setting_parser_info, 0, - &set, &error); - event_unref(&event); + + ret = mailbox_name_try_get_settings(info->ns->list, info->vname, + &set, &error); + if (ret == 0) { + struct event *event = mail_storage_mailbox_create_event( + info->ns->list->event, info->ns->list, + info->vname); + ret = settings_get(event, &mailbox_setting_parser_info, 0, + &set, &error); + event_unref(&event); + } if (ret < 0) { mailbox_list_set_critical(info->ns->list, "%s", error); ctx->failed = TRUE;