changeset 13771:cc497af529cd

login: Save final SASL reply to client struct.
author Timo Sirainen <tss@iki.fi>
date Thu, 24 Nov 2011 01:45:09 +0200
parents 733ac4aba089
children ca49f570f0c1
files src/login-common/client-common.h src/login-common/sasl-server.c
diffstat 2 files changed, 7 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/src/login-common/client-common.h	Thu Nov 24 01:34:02 2011 +0200
+++ b/src/login-common/client-common.h	Thu Nov 24 01:45:09 2011 +0200
@@ -101,6 +101,7 @@
 	struct auth_client_request *auth_request;
 	string_t *auth_response;
 	time_t auth_first_started;
+	const char *sasl_final_resp;
 
 	unsigned int master_auth_id;
 	unsigned int master_tag;
--- a/src/login-common/sasl-server.c	Thu Nov 24 01:34:02 2011 +0200
+++ b/src/login-common/sasl-server.c	Thu Nov 24 01:45:09 2011 +0200
@@ -232,11 +232,14 @@
 			if (strncmp(args[i], "user=", 5) == 0) {
 				i_free(client->virtual_user);
 				client->virtual_user = i_strdup(args[i] + 5);
-			}
-			if (strcmp(args[i], "nologin") == 0 ||
-			    strcmp(args[i], "proxy") == 0) {
+			} else if (strcmp(args[i], "nologin") == 0 ||
+				   strcmp(args[i], "proxy") == 0) {
 				/* user can't login */
 				nologin = TRUE;
+			} else if (strncmp(args[i], "resp=", 5) == 0 &&
+				   login_binary->sasl_support_final_reply) {
+				client->sasl_final_resp =
+					p_strdup(client->pool, args[i] + 5);
 			}
 		}