/* Copyright (c) 2017-2018 Dovecot authors, see the included COPYING file */
#include "auth-common.h"
#include "passdb.h"
#include "auth-cache.h"
#if defined(BUILTIN_LUA) || defined(PLUGIN_BUILD)
#include "db-lua.h"
struct dlua_passdb_module {
const char *file;
bool has_password_verify;
};
static enum passdb_result
{
if (result == PASSDB_RESULT_PASSWORD_MISMATCH) {
error);
}
return result;
}
static enum passdb_result
const char **scheme_r, const char **password_r)
{
password_r, &error);
} else if (result != PASSDB_RESULT_OK) {
/* skip next bit */
"No password returned (and no nopassword)");
}
"nopassword given and password is not empty");
}
return result;
}
static void
{
}
static void
{
if (module->has_password_verify) {
} else {
if (result == PASSDB_RESULT_OK) {
if (lua_scheme == NULL)
lua_scheme = "PLAIN";
lua_scheme, AUTH_SUBSYS_DB)) <=0) {
}
}
}
}
static struct passdb_module *
{
} else {
i_fatal("Invalid value %s. "
"Field blocking must be yes or no",
value);
}
else /* explicitly disable auth caching for lua */
} else {
}
fields++;
}
i_fatal("passdb-lua: Missing mandatory file= parameter");
}
{
(struct dlua_passdb_module *)_module;
const char *error;
}
{
(struct dlua_passdb_module *)_module;
}
#ifndef PLUGIN_BUILD
#else
struct passdb_module_interface passdb_lua_plugin =
#endif
{
"lua",
};
#else
.name = "lua"
};
#endif