changeset 1076:e22f21b9ec49 HEAD

more fixes
author Timo Sirainen <tss@iki.fi>
date Sun, 02 Feb 2003 02:19:34 +0200
parents f1401fa7ab03
children 0106bbf4bdaf
files src/auth/mech-digest-md5.c src/auth/mech-plain.c src/auth/mech.c src/auth/mech.h
diffstat 4 files changed, 14 insertions(+), 9 deletions(-) [+]
line wrap: on
line diff
--- a/src/auth/mech-digest-md5.c	Sun Feb 02 02:08:28 2003 +0200
+++ b/src/auth/mech-digest-md5.c	Sun Feb 02 02:19:34 2003 +0200
@@ -526,7 +526,9 @@
 	struct digest_auth_request *auth =
 		(struct digest_auth_request *) request;
 
-	mech_auth_finish(request, verify_credentials(auth, result));
+	auth->authenticated = TRUE;
+	mech_auth_finish(request, auth->rspauth, strlen(auth->rspauth),
+			 verify_credentials(auth, result));
 }
 
 static int
@@ -561,13 +563,13 @@
 		auth_request->id = request->id;
 		auth_request->callback = callback;
 
+		auth_request->user = p_strdup(auth_request->pool,
+					      auth->username);
+		auth_request->realm = p_strdup(auth_request->pool, auth->realm);
+
 		passdb->lookup_credentials(&auth->auth_request,
 					   PASSDB_CREDENTIALS_DIGEST_MD5,
 					   credentials_callback);
-
-		reply.data_size = strlen(auth->rspauth);
-		callback(&reply, auth->rspauth, conn);
-		auth->authenticated = TRUE;
 		return TRUE;
 	}
 
--- a/src/auth/mech-plain.c	Sun Feb 02 02:08:28 2003 +0200
+++ b/src/auth/mech-plain.c	Sun Feb 02 02:19:34 2003 +0200
@@ -9,7 +9,7 @@
 static void verify_callback(enum passdb_result result,
 			    struct auth_request *request)
 {
-	mech_auth_finish(request, result == PASSDB_RESULT_OK);
+	mech_auth_finish(request, NULL, 0, result == PASSDB_RESULT_OK);
 }
 
 static int
--- a/src/auth/mech.c	Sun Feb 02 02:08:28 2003 +0200
+++ b/src/auth/mech.c	Sun Feb 02 02:19:34 2003 +0200
@@ -163,7 +163,8 @@
 	return buffer_get_modifyable_data(buf, NULL);
 }
 
-void mech_auth_finish(struct auth_request *auth_request, int success)
+void mech_auth_finish(struct auth_request *auth_request,
+		      const void *data, size_t data_size, int success)
 {
 	struct auth_login_reply reply;
 	void *reply_data;
@@ -172,7 +173,8 @@
 	reply.id = auth_request->id;
 
 	if (success) {
-		reply_data = mech_auth_success(&reply, auth_request, NULL, 0);
+		reply_data = mech_auth_success(&reply, auth_request,
+					       data, data_size);
 		reply.result = AUTH_LOGIN_RESULT_SUCCESS;
 	} else {
 		reply_data = NULL;
--- a/src/auth/mech.h	Sun Feb 02 02:08:28 2003 +0200
+++ b/src/auth/mech.h	Sun Feb 02 02:19:34 2003 +0200
@@ -54,7 +54,8 @@
 void *mech_auth_success(struct auth_login_reply *reply,
 			struct auth_request *auth_request,
 			const void *data, size_t data_size);
-void mech_auth_finish(struct auth_request *auth_request, int success);
+void mech_auth_finish(struct auth_request *auth_request,
+		      const void *data, size_t data_size, int success);
 
 void mech_cyrus_sasl_init_lib(void);
 struct auth_request *mech_cyrus_sasl_new(struct login_connection *conn,