]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
doveadm: Added iterate_single_user mail context field.
authorTimo Sirainen <tss@iki.fi>
Tue, 21 Sep 2010 13:55:22 +0000 (14:55 +0100)
committerTimo Sirainen <tss@iki.fi>
Tue, 21 Sep 2010 13:55:22 +0000 (14:55 +0100)
src/doveadm/doveadm-mail.c
src/doveadm/doveadm-mail.h

index 7d65b1f0f0a0dde4e85d34878778269ce79f08b0..82fcc1cc44fc3c7b3aedc32097cb4313dbd8e3cb 100644 (file)
@@ -366,7 +366,6 @@ doveadm_mail_cmd(const struct doveadm_mail_cmd *cmd, int argc, char *argv[])
                MAIL_STORAGE_SERVICE_FLAG_NO_LOG_INIT;
        struct doveadm_mail_cmd_context *ctx;
        const char *getopt_args, *username, *wildcard_user;
-       bool iter_single_user;
        int c;
 
        if (doveadm_debug)
@@ -403,8 +402,9 @@ doveadm_mail_cmd(const struct doveadm_mail_cmd *cmd, int argc, char *argv[])
                        cmd->name, argv[0]);
        }
 
-       iter_single_user = !ctx->iterate_all_users && wildcard_user == NULL;
-       if (doveadm_print_is_initialized() && !iter_single_user) {
+       ctx->iterate_single_user =
+               !ctx->iterate_all_users && wildcard_user == NULL;
+       if (doveadm_print_is_initialized() && !ctx->iterate_single_user) {
                doveadm_print_header("username", "Username",
                                     DOVEADM_PRINT_HEADER_FLAG_STICKY |
                                     DOVEADM_PRINT_HEADER_FLAG_HIDE_TITLE);
@@ -412,7 +412,7 @@ doveadm_mail_cmd(const struct doveadm_mail_cmd *cmd, int argc, char *argv[])
 
        ctx->v.init(ctx, (const void *)argv);
 
-       if (iter_single_user) {
+       if (ctx->iterate_single_user) {
                doveadm_mail_single_user(ctx, username, service_flags);
        } else {
                service_flags |= MAIL_STORAGE_SERVICE_FLAG_TEMP_PRIV_DROP;
index a6f82bcc8061b670d2eba968d3b921387b91f384..0deb708301924004c68bded45368f3a0a8e6c48c 100644 (file)
@@ -48,6 +48,9 @@ struct doveadm_mail_cmd_context {
 
        ARRAY_DEFINE(module_contexts, union doveadm_mail_cmd_module_context *);
 
+       /* We're handling only a single user */
+       unsigned int iterate_single_user:1;
+       /* We're going through all users (not set for wildcard usernames) */
        unsigned int iterate_all_users:1;
        unsigned int failed:1;
 };