From: Timo Sirainen Date: Tue, 28 Sep 2010 16:41:43 +0000 (+0100) Subject: login: If master login fails, tell auth process to free the auth request. X-Git-Tag: 2.0.5~35 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=38cb3d139aefb7c65919cf4aba5ded7b5fd50e6f;p=thirdparty%2Fdovecot%2Fcore.git login: If master login fails, tell auth process to free the auth request. --- diff --git a/src/login-common/client-common.h b/src/login-common/client-common.h index 63100c634a..32006ee91a 100644 --- a/src/login-common/client-common.h +++ b/src/login-common/client-common.h @@ -101,6 +101,7 @@ struct client { struct auth_client_request *auth_request; string_t *auth_response; + unsigned int master_auth_id; unsigned int master_tag; sasl_server_callback_t *sasl_callback; diff --git a/src/login-common/sasl-server.c b/src/login-common/sasl-server.c index 2132b3d66c..128edd548b 100644 --- a/src/login-common/sasl-server.c +++ b/src/login-common/sasl-server.c @@ -104,6 +104,8 @@ master_auth_callback(const struct master_auth_reply *reply, void *context) break; } client->mail_pid = reply->mail_pid; + } else { + auth_client_send_cancel(auth_client, client->master_auth_id); } call_client_callback(client, sasl_reply, data, NULL); } @@ -135,6 +137,7 @@ static void master_send_request(struct anvil_request *anvil_request) buffer_append(buf, data, size); req.data_size = buf->used; + client->master_auth_id = req.auth_id; master_auth_request(master_auth, client->fd, &req, buf->data, master_auth_callback, client, &client->master_tag); }