Mercurial > dovecot > core-2.2
changeset 13038:c46b1ce45cd1
doveadm server: Fixed running multiple commands without crashing.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Fri, 20 May 2011 14:20:46 +0300 |
parents | b6568a36ecf9 |
children | c67ba5bf1ba9 |
files | src/doveadm/client-connection.c src/doveadm/doveadm-mail-server.c |
diffstat | 2 files changed, 10 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- 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)
--- 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())