&result, TRUE)) {
auth_request_log_info(request, "passdb",
"Fallbacking to expired data from cache");
- }
- if (result == PASSDB_RESULT_OK) {
- if (!passdb_get_credentials(request, cache_cred,
- cache_scheme,
- &credentials, &size))
- result = PASSDB_RESULT_SCHEME_NOT_AVAILABLE;
+ passdb_handle_credentials(
+ result, cache_cred, cache_scheme,
+ auth_request_lookup_credentials_finish,
+ request);
+ return;
}
}
{
struct passdb_module *passdb = request->passdb->passdb;
const char *cache_key, *cache_cred, *cache_scheme;
- const unsigned char *credentials;
- size_t size;
enum passdb_result result;
i_assert(request->state == AUTH_REQUEST_STATE_MECH_CONTINUE);
if (passdb_cache_lookup_credentials(request, cache_key,
&cache_cred, &cache_scheme,
&result, FALSE)) {
- if (result == PASSDB_RESULT_OK &&
- !passdb_get_credentials(request, cache_cred,
- cache_scheme,
- &credentials, &size))
- result = PASSDB_RESULT_SCHEME_NOT_AVAILABLE;
- auth_request_lookup_credentials_finish(
- result, credentials, size, request);
+ passdb_handle_credentials(
+ result, cache_cred, cache_scheme,
+ auth_request_lookup_credentials_finish,
+ request);
return;
}
}
if (passdb->iface.lookup_credentials == NULL) {
/* this passdb doesn't support credentials */
+ auth_request_log_debug(request, "password",
+ "passdb doesn't support credential lookups");
auth_request_lookup_credentials_callback(
PASSDB_RESULT_SCHEME_NOT_AVAILABLE, NULL, 0, request);
} else if (passdb->blocking) {
return;
}
- if (password == NULL ||
- !passdb_get_credentials(auth_request, password, scheme,
- &credentials, &size))
+ if (password == NULL) {
+ auth_request_log_info(auth_request, "password",
+ "Requested %s scheme, but we have a NULL password",
+ auth_request->credentials_scheme);
result = PASSDB_RESULT_SCHEME_NOT_AVAILABLE;
+ } else if (!passdb_get_credentials(auth_request, password, scheme,
+ &credentials, &size)) {
+ result = PASSDB_RESULT_SCHEME_NOT_AVAILABLE;
+ }
callback(result, credentials, size, auth_request);
}