From 4ae2bb2ccb45a13ac13d1381eed49a2560bcb4ff Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Fri, 7 Mar 2025 12:56:55 +0200 Subject: [PATCH] lib-storage: Try to get special_use flags using cached mailbox settings --- src/lib-storage/list/mailbox-list-iter.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) 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; -- 2.47.3