Mercurial > dovecot > core-2.2
changeset 12558:f9d34d929c3f
auth: Master user login + prefetch userdb changed username to master user.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Tue, 07 Dec 2010 02:00:45 +0000 |
parents | 6a48a361c63f |
children | 7353e3253840 |
files | src/auth/auth-request.c |
diffstat | 1 files changed, 18 insertions(+), 16 deletions(-) [+] |
line wrap: on
line diff
--- 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)