Mercurial > dovecot > core-2.2
changeset 11609:407e7ff098ca HEAD
doveadm: Mail commands assert-crashed when using -u wildcards.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Mon, 21 Jun 2010 21:55:24 +0100 |
parents | d78370005268 |
children | 280fe153a7ba |
files | src/doveadm/doveadm-mail.c |
diffstat | 1 files changed, 9 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/src/doveadm/doveadm-mail.c Mon Jun 21 21:52:01 2010 +0100 +++ b/src/doveadm/doveadm-mail.c Mon Jun 21 21:55:24 2010 +0100 @@ -339,6 +339,7 @@ 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) @@ -361,11 +362,6 @@ switch (c) { case 'A': ctx->iterate_all_users = TRUE; - if (doveadm_print_is_initialized()) { - doveadm_print_header("username", "Username", - DOVEADM_PRINT_HEADER_FLAG_STICKY | - DOVEADM_PRINT_HEADER_FLAG_HIDE_TITLE); - } break; case 'u': service_flags |= @@ -382,15 +378,21 @@ } } argv += optind; - if (argv[0] != NULL && cmd->usage_args == NULL) { i_fatal("doveadm %s: Unknown parameter: %s", cmd->name, argv[0]); } + iter_single_user = !ctx->iterate_all_users && wildcard_user == NULL; + if (doveadm_print_is_initialized() && !iter_single_user) { + doveadm_print_header("username", "Username", + DOVEADM_PRINT_HEADER_FLAG_STICKY | + DOVEADM_PRINT_HEADER_FLAG_HIDE_TITLE); + } + ctx->v.init(ctx, (const void *)argv); - if (!ctx->iterate_all_users && wildcard_user == NULL) { + if (iter_single_user) { doveadm_mail_single_user(ctx, username, service_flags); } else { service_flags |= MAIL_STORAGE_SERVICE_FLAG_TEMP_PRIV_DROP;