From: Stephan Bosch Date: Thu, 20 Feb 2025 02:44:20 +0000 (+0100) Subject: imap: cmd-list - Make the list iter flags a parameter for list_send_status() X-Git-Tag: 2.4.1~159 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=fd01ff07e724e72865b68c113947d901686c820a;p=thirdparty%2Fdovecot%2Fcore.git imap: cmd-list - Make the list iter flags a parameter for list_send_status() Before, it was available only in the LIST command context. This is preparation for adding infrastructure for dynamically adding support for new RETURN flags. --- diff --git a/src/imap/cmd-list.c b/src/imap/cmd-list.c index eec6fa3d24..79ef22b87d 100644 --- a/src/imap/cmd-list.c +++ b/src/imap/cmd-list.c @@ -4,7 +4,6 @@ #include "array.h" #include "str.h" #include "strescape.h" -#include "mailbox-list-iter.h" #include "imap-utf7.h" #include "imap-quote.h" #include "imap-match.h" @@ -184,6 +183,7 @@ list_send_status(struct cmd_list_context *ctx, const struct imap_list_return_flag_params *params) { enum mailbox_info_flags mbox_flags = params->mbox_flags; + enum mailbox_list_iter_flags list_flags = params->list_flags; struct imap_status_result result; if ((mbox_flags & (MAILBOX_NONEXISTENT | MAILBOX_NOSELECT)) != 0) { @@ -191,7 +191,7 @@ list_send_status(struct cmd_list_context *ctx, return; } if ((mbox_flags & MAILBOX_SUBSCRIBED) == 0 && - (ctx->list_flags & MAILBOX_LIST_ITER_SELECT_SUBSCRIBED) != 0) { + (list_flags & MAILBOX_LIST_ITER_SELECT_SUBSCRIBED) != 0) { /* listing subscriptions, but only child is subscribed */ i_assert((mbox_flags & MAILBOX_CHILD_SUBSCRIBED) != 0); return; @@ -259,6 +259,7 @@ static bool cmd_list_continue(struct client_command_context *cmd) .name = name, .mutf7_name = str_c(mutf7_name), .mbox_flags = flags, + .list_flags = ctx->list_flags, }; /* if we're listing subscriptions and there are diff --git a/src/imap/imap-list.h b/src/imap/imap-list.h index f1ea12c0d3..2dbbce3279 100644 --- a/src/imap/imap-list.h +++ b/src/imap/imap-list.h @@ -1,11 +1,14 @@ #ifndef IMAP_LIST_H #define IMAP_LIST_H +#include "mailbox-list-iter.h" + struct imap_list_return_flag_params { const char *name; const char *mutf7_name; enum mailbox_info_flags mbox_flags; + enum mailbox_list_iter_flags list_flags; struct mail_namespace *ns; };