#include "auth-cache.h"
#include "ipwd.h"
#include "mycrypt.h"
+#include "settings.h"
#include <login_cap.h>
#include <bsd_auth.h>
+struct passdb_bsdauth_settings {
+ pool_t pool;
+};
+
+static const struct setting_define passdb_bsdauth_setting_defines[] = {
+ { .type = SET_FILTER_NAME, .key = "passdb_bsdauth" },
+
+ SETTING_DEFINE_LIST_END,
+};
+
+const struct setting_parser_info passdb_bsdauth_setting_parser_info = {
+ .name = "auth_bsdauth",
+
+ .defines = passdb_bsdauth_setting_defines,
+
+ .struct_size = sizeof(struct passdb_bsdauth_settings),
+ .pool_offset1 = 1 + offsetof(struct passdb_bsdauth_settings, pool),
+};
+
static void
bsdauth_verify_plain(struct auth_request *request, const char *password,
verify_plain_callback_t *callback)
e_debug(authdb_event(request), "lookup");
+ if (auth_request_set_passdb_fields(request, NULL) < 0) {
+ callback(PASSDB_RESULT_INTERNAL_FAILURE, request);
+ return;
+ }
+
switch (i_getpwnam(request->fields.user, &pw)) {
case -1:
e_error(authdb_event(request),
struct passdb_module_interface passdb_bsdauth = {
.name = "bsdauth",
+ .fields_supported = TRUE,
.preinit_legacy = bsdauth_preinit,
.deinit = bsdauth_deinit,
.verify_plain = bsdauth_verify_plain,