From: Timo Sirainen Date: Fri, 5 Apr 2013 12:44:32 +0000 (+0300) Subject: imap: Fixed RESETKEY command to not return failure when it actually succeeded. X-Git-Tag: 2.2.rc5~4 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=fd81c8f5a38df19d1ecdfd5d6605b114ab56841e;p=thirdparty%2Fdovecot%2Fcore.git imap: Fixed RESETKEY command to not return failure when it actually succeeded. --- diff --git a/src/imap/cmd-resetkey.c b/src/imap/cmd-resetkey.c index b723c86ff3..472fd45b79 100644 --- a/src/imap/cmd-resetkey.c +++ b/src/imap/cmd-resetkey.c @@ -7,7 +7,7 @@ static bool cmd_resetkey_all(struct client_command_context *cmd) { - if (imap_urlauth_reset_all_keys(cmd->client->urlauth_ctx) <= 0) { + if (imap_urlauth_reset_all_keys(cmd->client->urlauth_ctx) < 0) { client_send_internal_error(cmd); return TRUE; } @@ -23,7 +23,6 @@ cmd_resetkey_mailbox(struct client_command_context *cmd, struct mail_namespace *ns; enum mailbox_flags flags = MAILBOX_FLAG_READONLY; struct mailbox *box; - int ret; /* check mechanism arguments (we support only INTERNAL mechanism) */ while (!IMAP_ARG_IS_EOL(mech_args)) { @@ -57,12 +56,8 @@ cmd_resetkey_mailbox(struct client_command_context *cmd, } /* check urlauth environment and reset requested key */ - ret = imap_urlauth_reset_mailbox_key(cmd->client->urlauth_ctx, box); - if (ret <= 0) { - if (ret < 0) - client_send_internal_error(cmd); - else - client_send_storage_error(cmd, mailbox_get_storage(box)); + if (imap_urlauth_reset_mailbox_key(cmd->client->urlauth_ctx, box) < 0) { + client_send_internal_error(cmd); mailbox_free(&box); return TRUE; } diff --git a/src/lib-imap-urlauth/imap-urlauth-backend.c b/src/lib-imap-urlauth/imap-urlauth-backend.c index b42241b7ad..7d48e93778 100644 --- a/src/lib-imap-urlauth/imap-urlauth-backend.c +++ b/src/lib-imap-urlauth/imap-urlauth-backend.c @@ -95,7 +95,7 @@ int imap_urlauth_backend_reset_mailbox_key(struct mailbox *box) t = mailbox_transaction_begin(box, MAILBOX_TRANSACTION_FLAG_EXTERNAL); ret = mailbox_attribute_unset(t, MAIL_ATTRIBUTE_TYPE_PRIVATE, - IMAP_URLAUTH_KEY) < 0 ? -1 : 1; + IMAP_URLAUTH_KEY); if (mailbox_transaction_commit(&t) < 0) ret = -1; return ret; @@ -114,7 +114,7 @@ static int imap_urlauth_backend_mailbox_reset_key(struct mailbox *box) mailbox_get_vname(box), errstr); return -1; } - return imap_urlauth_backend_reset_mailbox_key(box) < 0 ? -1 : 0; + return imap_urlauth_backend_reset_mailbox_key(box); } int imap_urlauth_backend_reset_all_keys(struct mail_user *user)