changeset 12196:9939f0565916

login: If master login fails, tell auth process to free the auth request.
author Timo Sirainen <tss@iki.fi>
date Tue, 28 Sep 2010 17:41:43 +0100
parents cf1e5238f747
children 002a702cf06a
files src/login-common/client-common.h src/login-common/sasl-server.c
diffstat 2 files changed, 4 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/login-common/client-common.h	Tue Sep 28 17:15:52 2010 +0100
+++ b/src/login-common/client-common.h	Tue Sep 28 17:41:43 2010 +0100
@@ -101,6 +101,7 @@
 	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;
 
--- a/src/login-common/sasl-server.c	Tue Sep 28 17:15:52 2010 +0100
+++ b/src/login-common/sasl-server.c	Tue Sep 28 17:41:43 2010 +0100
@@ -104,6 +104,8 @@
 			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 @@
 	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);
 }