dovecot-2.0: doveadm: Call mail command's init() only after serv...

dovecot at dovecot.org dovecot at dovecot.org
Mon Oct 18 20:30:45 EEST 2010


details:   http://hg.dovecot.org/dovecot-2.0/rev/507d4c4859cf
changeset: 12303:507d4c4859cf
user:      Timo Sirainen <tss at iki.fi>
date:      Mon Oct 18 18:30:02 2010 +0100
description:
doveadm: Call mail command's init() only after service storage is initialized.

diffstat:

 src/doveadm/client-connection.c |   3 +--
 src/doveadm/doveadm-mail.c      |  12 ++++++------
 src/doveadm/doveadm-mail.h      |   2 +-
 3 files changed, 8 insertions(+), 9 deletions(-)

diffs (78 lines):

diff -r 27289650ed4c -r 507d4c4859cf src/doveadm/client-connection.c
--- 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;
diff -r 27289650ed4c -r 507d4c4859cf src/doveadm/doveadm-mail.c
--- 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();
diff -r 27289650ed4c -r 507d4c4859cf src/doveadm/doveadm-mail.h
--- 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);


More information about the dovecot-cvs mailing list