# HG changeset patch # User Timo Sirainen # Date 1453550274 -7200 # Node ID a3906195883287c9b158941f5f1b2fde273c0f72 # Parent e7e593e68fceb43bd03990113f006dcd85dcb601 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. diff -r e7e593e68fce -r a39061958832 src/auth/auth-request.c --- 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. */