dovecot-2.0: auth: Master user login + prefetch userdb changed u...

dovecot at dovecot.org dovecot at dovecot.org
Tue Dec 7 04:00:48 EET 2010


details:   http://hg.dovecot.org/dovecot-2.0/rev/f9d34d929c3f
changeset: 12520:f9d34d929c3f
user:      Timo Sirainen <tss at iki.fi>
date:      Tue Dec 07 02:00:45 2010 +0000
description:
auth: Master user login + prefetch userdb changed username to master user.

diffstat:

 src/auth/auth-request.c |  34 ++++++++++++++++++----------------
 1 files changed, 18 insertions(+), 16 deletions(-)

diffs (58 lines):

diff -r 6a48a361c63f -r f9d34d929c3f src/auth/auth-request.c
--- a/src/auth/auth-request.c	Tue Dec 07 01:50:43 2010 +0000
+++ b/src/auth/auth-request.c	Tue Dec 07 02:00:45 2010 +0000
@@ -354,6 +354,22 @@
 			  result == PASSDB_RESULT_OK);
 }
 
+static void auth_request_userdb_reply_update_user(struct auth_request *request)
+{
+	const char *str, *p;
+
+	str = t_strdup(auth_stream_reply_export(request->userdb_reply));
+
+	/* reset the reply and add the new username */
+	auth_stream_reply_reset(request->userdb_reply);
+	auth_stream_reply_add(request->userdb_reply, NULL, request->user);
+
+	/* add the rest */
+	p = strchr(str, '\t');
+	if (p != NULL)
+		auth_stream_reply_import(request->userdb_reply, p + 1);
+}
+
 static bool auth_request_master_lookup_finish(struct auth_request *request)
 {
 	struct auth_passdb *passdb;
@@ -368,6 +384,8 @@
 	request->master_user = request->user;
 	request->user = request->requested_login_user;
 	request->requested_login_user = NULL;
+	if (request->userdb_reply != NULL)
+		auth_request_userdb_reply_update_user(request);
 
 	request->skip_password_check = TRUE;
 	request->passdb_password = NULL;
@@ -1079,22 +1097,6 @@
 	auth_stream_reply_add(request->extra_fields, name, value);
 }
 
-static void auth_request_userdb_reply_update_user(struct auth_request *request)
-{
-	const char *str, *p;
-
-	str = t_strdup(auth_stream_reply_export(request->userdb_reply));
-
-	/* reset the reply and add the new username */
-	auth_stream_reply_reset(request->userdb_reply);
-	auth_stream_reply_add(request->userdb_reply, NULL, request->user);
-
-	/* add the rest */
-	p = strchr(str, '\t');
-	if (p != NULL)
-		auth_stream_reply_import(request->userdb_reply, p + 1);
-}
-
 static const char *
 get_updated_username(const char *old_username,
 		     const char *name, const char *value)


More information about the dovecot-cvs mailing list