Mercurial > dovecot > core-2.2
changeset 19610:a39061958832
auth: Apply passdb/userdb { override_fields } only after caching
Now they're not be unnecessarily saved to cache to waste memory. More
importantly they will always override the cached fields, which is required
for %variables to work.
author | Timo Sirainen <timo.sirainen@dovecot.fi> |
---|---|
date | Sat, 23 Jan 2016 13:57:54 +0200 |
parents | e7e593e68fce |
children | e250af038f2d |
files | src/auth/auth-request.c |
diffstat | 1 files changed, 6 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/src/auth/auth-request.c Fri Jan 22 19:06:59 2016 +0200 +++ b/src/auth/auth-request.c Sat Jan 23 13:57:54 2016 +0200 @@ -676,6 +676,7 @@ auth_request_verify_plain_callback_finish(enum passdb_result result, struct auth_request *request) { + passdb_template_export(request->passdb->passdb->override_fields_tmpl, request); if (!auth_request_handle_passdb_callback(&result, request)) { /* try next passdb */ auth_request_verify_plain(request, request->mech_password, @@ -697,10 +698,9 @@ auth_request_set_state(request, AUTH_REQUEST_STATE_MECH_CONTINUE); - if (result != PASSDB_RESULT_INTERNAL_FAILURE) { - passdb_template_export(passdb->override_fields_tmpl, request); + if (result != PASSDB_RESULT_INTERNAL_FAILURE) auth_request_save_cache(request, result); - } else { + else { /* lookup failed. if we're looking here only because the request was expired in cache, fallback to using cached expired record. */ @@ -807,6 +807,7 @@ size_t size, struct auth_request *request) { + passdb_template_export(request->passdb->passdb->override_fields_tmpl, request); if (!auth_request_handle_passdb_callback(&result, request)) { /* try next passdb */ if (request->skip_password_check && @@ -862,10 +863,9 @@ auth_request_set_state(request, AUTH_REQUEST_STATE_MECH_CONTINUE); - if (result != PASSDB_RESULT_INTERNAL_FAILURE) { - passdb_template_export(passdb->override_fields_tmpl, request); + if (result != PASSDB_RESULT_INTERNAL_FAILURE) auth_request_save_cache(request, result); - } else { + else { /* lookup failed. if we're looking here only because the request was expired in cache, fallback to using cached expired record. */