dovecot-2.0: doveadm server: Fixed running multiple commands wit...

dovecot at dovecot.org dovecot at dovecot.org
Fri May 20 14:20:53 EEST 2011


details:   http://hg.dovecot.org/dovecot-2.0/rev/c46b1ce45cd1
changeset: 12816:c46b1ce45cd1
user:      Timo Sirainen <tss at iki.fi>
date:      Fri May 20 14:20:46 2011 +0300
description:
doveadm server: Fixed running multiple commands without crashing.

diffstat:

 src/doveadm/client-connection.c   |  9 +++++++--
 src/doveadm/doveadm-mail-server.c |  4 +++-
 2 files changed, 10 insertions(+), 3 deletions(-)

diffs (43 lines):

diff -r b6568a36ecf9 -r c46b1ce45cd1 src/doveadm/client-connection.c
--- a/src/doveadm/client-connection.c	Fri May 20 14:08:43 2011 +0300
+++ b/src/doveadm/client-connection.c	Fri May 20 14:20:46 2011 +0300
@@ -47,7 +47,7 @@
 	struct doveadm_mail_cmd_context *ctx;
 	const struct doveadm_mail_cmd *cmd;
 	const char *getopt_args;
-	bool add_username_header = FALSE;
+	bool ret, add_username_header = FALSE;
 	int c;
 
 	cmd = doveadm_mail_cmd_find(cmd_name);
@@ -101,9 +101,14 @@
 	}
 
 	doveadm_mail_single_user(ctx, argv, input, service_flags);
+	doveadm_mail_server_flush();
 	ctx->v.deinit(ctx);
 	doveadm_print_flush();
-	return !ctx->failed;
+	mail_storage_service_deinit(&ctx->storage_service);
+	ret = !ctx->failed;
+	pool_unref(&ctx->pool);
+
+	return ret;
 }
 
 static bool client_handle_command(struct client_connection *conn, char **args)
diff -r b6568a36ecf9 -r c46b1ce45cd1 src/doveadm/doveadm-mail-server.c
--- a/src/doveadm/doveadm-mail-server.c	Fri May 20 14:08:43 2011 +0300
+++ b/src/doveadm/doveadm-mail-server.c	Fri May 20 14:20:46 2011 +0300
@@ -289,8 +289,10 @@
 {
 	struct doveadm_server *server;
 
-	if (servers == NULL)
+	if (servers == NULL) {
+		cmd_ctx = NULL;
 		return;
+	}
 
 	while ((server = doveadm_server_find_used()) != NULL &&
 	       !DOVEADM_MAIL_SERVER_FAILED())


More information about the dovecot-cvs mailing list