# HG changeset patch # User Timo Sirainen # Date 1291687245 0 # Node ID f9d34d929c3fbd5547c1a7c696baf7865336693f # Parent 6a48a361c63f4a47711c36a9481c20f9b7b72f94 auth: Master user login + prefetch userdb changed username to master user. 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)