From: Timo Sirainen Date: Thu, 22 Jul 2010 17:25:09 +0000 (+0100) Subject: doveadm expunge: Check if search query is ok only once, not for each user. X-Git-Tag: 2.0.rc4~47 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=d7379d3ceaf667b47513eac100bdf24dbd870d5a;p=thirdparty%2Fdovecot%2Fcore.git doveadm expunge: Check if search query is ok only once, not for each user. --- diff --git a/src/doveadm/doveadm-mail-expunge.c b/src/doveadm/doveadm-mail-expunge.c index e0aa1a43b0..1319c5b8a7 100644 --- a/src/doveadm/doveadm-mail-expunge.c +++ b/src/doveadm/doveadm-mail-expunge.c @@ -171,16 +171,6 @@ cmd_expunge_run(struct doveadm_mail_cmd_context *ctx, struct mail_user *user) struct doveadm_mail_list_iter *iter; const struct mailbox_info *info; - if (!expunge_search_args_is_mailbox_ok(ctx->search_args->args)) { - i_fatal("expunge: To avoid accidents, search query " - "must contain MAILBOX in all search branches"); - } - if (!expunge_search_args_is_msgset_ok(ctx->search_args->args)) { - i_fatal("expunge: To avoid accidents, each branch in " - "search query must contain something else " - "besides MAILBOX"); - } - iter = doveadm_mail_list_iter_init(user, ctx->search_args, iter_flags); while ((info = doveadm_mail_list_iter_next(iter)) != NULL) T_BEGIN { (void)cmd_expunge_box(info, ctx->search_args); @@ -196,6 +186,16 @@ static void cmd_expunge_init(struct doveadm_mail_cmd_context *ctx, ctx->search_args = doveadm_mail_build_search_args(args); mail_search_args_simplify(ctx->search_args); + + if (!expunge_search_args_is_mailbox_ok(ctx->search_args->args)) { + i_fatal("expunge: To avoid accidents, search query " + "must contain MAILBOX in all search branches"); + } + if (!expunge_search_args_is_msgset_ok(ctx->search_args->args)) { + i_fatal("expunge: To avoid accidents, each branch in " + "search query must contain something else " + "besides MAILBOX"); + } } static struct doveadm_mail_cmd_context *cmd_expunge_alloc(void)