Mercurial > dovecot > original-hg > dovecot-1.2
changeset 8696:20345491824c HEAD
auth: Using "username" or "domain" passdb fields caused problems with cache and blocking passdbs.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Sat, 31 Jan 2009 20:15:12 +0200 |
parents | e296435586c1 |
children | c9ed3bf730b9 |
files | src/auth/auth-request.c |
diffstat | 1 files changed, 5 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/src/auth/auth-request.c Thu Jan 29 19:25:02 2009 -0500 +++ b/src/auth/auth-request.c Sat Jan 31 20:15:12 2009 +0200 @@ -981,7 +981,7 @@ const char *name, const char *value, const char *default_scheme) { - const char *p; + const char *p, *orig_value; i_assert(*name != '\0'); i_assert(value != NULL); @@ -999,6 +999,7 @@ if (strcmp(name, "user") == 0 || strcmp(name, "username") == 0 || strcmp(name, "domain") == 0) { /* update username */ + orig_value = value; if (strcmp(name, "username") == 0 && strchr(value, '@') == NULL && (p = strchr(request->user, '@')) != NULL) { @@ -1023,6 +1024,9 @@ request->user, value); request->user = p_strdup(request->pool, value); } + /* restore the original value so it gets saved correctly to + cache. */ + value = orig_value; } else if (strcmp(name, "nodelay") == 0) { /* don't delay replying to client of the failure */ request->no_failure_delay = TRUE;