dovecot-2.2: doveadm: Added prerun() method for mail commands.

dovecot at dovecot.org dovecot at dovecot.org
Sun May 20 03:26:23 EEST 2012


details:   http://hg.dovecot.org/dovecot-2.2/rev/1a33e3651c6d
changeset: 14248:1a33e3651c6d
user:      Timo Sirainen <tss at iki.fi>
date:      Fri Mar 02 13:15:15 2012 +0200
description:
doveadm: Added prerun() method for mail commands.

diffstat:

 src/doveadm/doveadm-mail.c |  8 ++++++++
 src/doveadm/doveadm-mail.h |  3 +++
 2 files changed, 11 insertions(+), 0 deletions(-)

diffs (38 lines):

diff -r 855856a9f139 -r 1a33e3651c6d src/doveadm/doveadm-mail.c
--- a/src/doveadm/doveadm-mail.c	Fri Mar 02 12:23:00 2012 +0200
+++ b/src/doveadm/doveadm-mail.c	Fri Mar 02 13:15:15 2012 +0200
@@ -292,6 +292,13 @@
 		return ret;
 	}
 
+	if (ctx->v.prerun != NULL) {
+		if (ctx->v.prerun(ctx, ctx->cur_service_user, error_r) < 0) {
+			mail_storage_service_user_free(&ctx->cur_service_user);
+			return -1;
+		}
+	}
+
 	ret = mail_storage_service_next(ctx->storage_service,
 					ctx->cur_service_user,
 					&ctx->cur_mail_user);
@@ -372,6 +379,7 @@
 				continue;
 		}
 		input.username = user;
+		ctx->cur_username = user;
 		doveadm_print_sticky("username", user);
 		T_BEGIN {
 			ret = doveadm_mail_next_user(ctx, &input, &error);
diff -r 855856a9f139 -r 1a33e3651c6d src/doveadm/doveadm-mail.h
--- a/src/doveadm/doveadm-mail.h	Fri Mar 02 12:23:00 2012 +0200
+++ b/src/doveadm/doveadm-mail.h	Fri Mar 02 13:15:15 2012 +0200
@@ -20,6 +20,9 @@
 		     const char *const args[]);
 	int (*get_next_user)(struct doveadm_mail_cmd_context *ctx,
 			     const char **username_r);
+	int (*prerun)(struct doveadm_mail_cmd_context *ctx,
+		      struct mail_storage_service_user *service_user,
+		      const char **error_r);
 	int (*run)(struct doveadm_mail_cmd_context *ctx,
 		   struct mail_user *mail_user);
 	void (*deinit)(struct doveadm_mail_cmd_context *ctx);


More information about the dovecot-cvs mailing list