From: Timo Sirainen Date: Wed, 24 Sep 2025 14:13:27 +0000 (+0300) Subject: lib-storage: mailbox_list_iter_update() - Don't set mailbox list children-flags X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=201bad6da5d5599672c60ffa12369f86d46f48c1;p=thirdparty%2Fdovecot%2Fcore.git lib-storage: mailbox_list_iter_update() - Don't set mailbox list children-flags Especially when it's used with subscriptions, the existence of subscription tree nodes has nothing to do with whether the nodes contain existing mailboxes. --- diff --git a/src/lib-storage/list/mailbox-list-iter.c b/src/lib-storage/list/mailbox-list-iter.c index 2c541fa082..9b99b6ccf2 100644 --- a/src/lib-storage/list/mailbox-list-iter.c +++ b/src/lib-storage/list/mailbox-list-iter.c @@ -1236,12 +1236,11 @@ mailbox_list_iter_update_real(struct mailbox_list_iter_update_context *ctx, { struct mail_namespace *ns = ctx->iter_ctx->list->ns; struct mailbox_node *node; - enum mailbox_info_flags create_flags, always_flags; + enum mailbox_info_flags create_flags = 0, always_flags; enum imap_match_result match; const char *p; bool created, add_matched; - create_flags = MAILBOX_NOCHILDREN; always_flags = ctx->leaf_flags; add_matched = TRUE; @@ -1257,8 +1256,6 @@ mailbox_list_iter_update_real(struct mailbox_list_iter_update_context *ctx, } if (add_matched) node->flags |= MAILBOX_MATCHED; - if ((always_flags & MAILBOX_CHILDREN) != 0) - node->flags &= ENUM_NEGATE(MAILBOX_NOCHILDREN); node->flags |= always_flags; /* We don't want to show the parent mailboxes unless something else matches them, but if they are matched @@ -1282,8 +1279,7 @@ mailbox_list_iter_update_real(struct mailbox_list_iter_update_context *ctx, name = t_strdup_until(name, p); create_flags |= MAILBOX_NONEXISTENT; - create_flags &= ENUM_NEGATE(MAILBOX_NOCHILDREN); - always_flags = MAILBOX_CHILDREN | ctx->parent_flags; + always_flags = ctx->parent_flags; } }