changeset 4140:52a2e6f35acf HEAD

The login and master usernames were reversed when using master_user_separator (now the order is UW-IMAP compatible).
author Timo Sirainen <tss@iki.fi>
date Sun, 09 Apr 2006 14:53:59 +0300
parents 68c2ad5e4f85
children 4a023bede75e
files src/auth/auth-request.c
diffstat 1 files changed, 10 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/src/auth/auth-request.c	Sun Apr 09 14:34:15 2006 +0300
+++ b/src/auth/auth-request.c	Sun Apr 09 14:53:59 2006 +0300
@@ -582,10 +582,16 @@
 		p = strchr(username, request->auth->master_user_separator);
 		if (p != NULL) {
 			/* it does, set it. */
-			if (!auth_request_set_login_username(request, p+1,
+			const char *login_username;
+
+			login_username = t_strdup_until(username, p);
+			if (!auth_request_set_login_username(request,
+							     login_username,
 							     error_r))
 				return FALSE;
-			username = t_strdup_until(username, p);
+
+			/* username is the master user */
+			username = p + 1;
 		}
 	}
 
@@ -610,7 +616,8 @@
 
         request->requested_login_user =
                 auth_request_fix_username(request, username, error_r);
-	if (strcmp(request->requested_login_user, request->user) == 0) {
+	if (request->user != NULL &&
+	    strcmp(request->requested_login_user, request->user) == 0) {
 		/* The usernames are the same, we don't really wish to log
 		   in as someone else */
 		request->requested_login_user = NULL;