Mercurial > dovecot > core-2.2
changeset 12303:507d4c4859cf
doveadm: Call mail command's init() only after service storage is initialized.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Mon, 18 Oct 2010 18:30:02 +0100 |
parents | 27289650ed4c |
children | 6c2d5ed0b664 |
files | src/doveadm/client-connection.c src/doveadm/doveadm-mail.c src/doveadm/doveadm-mail.h |
diffstat | 3 files changed, 8 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- a/src/doveadm/client-connection.c Mon Oct 18 18:09:56 2010 +0100 +++ b/src/doveadm/client-connection.c Mon Oct 18 18:30:02 2010 +0100 @@ -87,8 +87,7 @@ doveadm_print_sticky("username", username); } - ctx->v.init(ctx, (const void *)argv); - doveadm_mail_single_user(ctx, username, service_flags); + doveadm_mail_single_user(ctx, argv, username, service_flags); ctx->v.deinit(ctx); doveadm_print_flush(); return !ctx->failed;
--- a/src/doveadm/doveadm-mail.c Mon Oct 18 18:09:56 2010 +0100 +++ b/src/doveadm/doveadm-mail.c Mon Oct 18 18:30:02 2010 +0100 @@ -226,7 +226,7 @@ } void doveadm_mail_single_user(struct doveadm_mail_cmd_context *ctx, - const char *username, + char *argv[], const char *username, enum mail_storage_service_flags service_flags) { struct mail_storage_service_input input; @@ -241,6 +241,7 @@ ctx->storage_service = mail_storage_service_init(master_service, NULL, service_flags); + ctx->v.init(ctx, (const void *)argv); if (hook_doveadm_mail_init != NULL) hook_doveadm_mail_init(ctx); @@ -258,7 +259,7 @@ } static void -doveadm_mail_all_users(struct doveadm_mail_cmd_context *ctx, +doveadm_mail_all_users(struct doveadm_mail_cmd_context *ctx, char *argv[], const char *wildcard_user, enum mail_storage_service_flags service_flags) { @@ -277,6 +278,7 @@ lib_signals_set_handler(SIGINT, FALSE, sig_die, NULL); lib_signals_set_handler(SIGTERM, FALSE, sig_die, NULL); + ctx->v.init(ctx, (const void *)argv); if (hook_doveadm_mail_init != NULL) hook_doveadm_mail_init(ctx); @@ -410,13 +412,11 @@ DOVEADM_PRINT_HEADER_FLAG_HIDE_TITLE); } - ctx->v.init(ctx, (const void *)argv); - if (ctx->iterate_single_user) { - doveadm_mail_single_user(ctx, username, service_flags); + doveadm_mail_single_user(ctx, argv, username, service_flags); } else { service_flags |= MAIL_STORAGE_SERVICE_FLAG_TEMP_PRIV_DROP; - doveadm_mail_all_users(ctx, wildcard_user, service_flags); + doveadm_mail_all_users(ctx, argv, wildcard_user, service_flags); } ctx->v.deinit(ctx); doveadm_print_flush();
--- a/src/doveadm/doveadm-mail.h Mon Oct 18 18:09:56 2010 +0100 +++ b/src/doveadm/doveadm-mail.h Mon Oct 18 18:30:02 2010 +0100 @@ -82,7 +82,7 @@ struct doveadm_mail_cmd_context * doveadm_mail_cmd_init(const struct doveadm_mail_cmd *cmd); void doveadm_mail_single_user(struct doveadm_mail_cmd_context *ctx, - const char *username, + char *argv[], const char *username, enum mail_storage_service_flags service_flags); int doveadm_mail_server_user(struct doveadm_mail_cmd_context *ctx, struct mail_storage_service_user *user);