value = "";
}
- if (password_r != NULL && strcmp(key, "password") == 0 &&
- !req->userdb_lookup) {
+ if (password_r != NULL && strcmp(key, "password") == 0) {
*scheme_r = password_get_scheme(&value);
*password_r = value;
} else if (req->userdb_lookup) {
const char **error_r)
{
if (lua_istable(script->L, -1)) {
- return auth_lua_export_passdb_table(script, req, NULL, NULL, error_r);
+ return auth_lua_export_passdb_table(script, req, scheme_r,
+ password_r, error_r);
}
enum passdb_result ret = lua_tointeger(script->L, -2);
} else {
result = passdb_lua_lookup(request, &lua_scheme, &lua_password);
if (result == PASSDB_RESULT_OK) {
+ if (lua_scheme == NULL)
+ lua_scheme = "PLAIN";
if ((auth_request_password_verify(request, password, lua_password,
lua_scheme, AUTH_SUBSYS_DB)) <=0) {
result = PASSDB_RESULT_PASSWORD_MISMATCH;