passdb.c revision b44650b0f48a4b5f0dc240ed836833a00b643b9f
/* Copyright (C) 2002-2003 Timo Sirainen */
#include "common.h"
#include "auth-module.h"
#include "password-scheme.h"
#include "auth-worker-server.h"
#include "passdb.h"
#include <stdlib.h>
extern struct passdb_module_interface passdb_passwd;
extern struct passdb_module_interface passdb_bsdauth;
extern struct passdb_module_interface passdb_shadow;
extern struct passdb_module_interface passdb_passwd_file;
extern struct passdb_module_interface passdb_pam;
extern struct passdb_module_interface passdb_checkpassword;
extern struct passdb_module_interface passdb_vpopmail;
extern struct passdb_module_interface passdb_ldap;
extern struct passdb_module_interface passdb_sql;
extern struct passdb_module_interface passdb_sia;
struct passdb_module_interface *passdb_interfaces[] = {
#ifdef PASSDB_PASSWD
#endif
#ifdef PASSDB_BSDAUTH
#endif
#ifdef PASSDB_PASSWD_FILE
#endif
#ifdef PASSDB_PAM
#endif
#ifdef PASSDB_CHECKPASSWORD
#endif
#ifdef PASSDB_SHADOW
#endif
#ifdef PASSDB_VPOPMAIL
#endif
#ifdef PASSDB_LDAP
#endif
#ifdef PASSDB_SQL
#endif
#ifdef PASSDB_SIA
#endif
};
const char *input, const char *input_scheme,
{
const char *plaintext;
int ret;
if (*wanted_scheme == '\0') {
/* anything goes */
*credentials_r = (const unsigned char *)input;
return TRUE;
}
if (ret <= 0) {
if (ret < 0) {
"Invalid password format for scheme %s",
} else {
"Unknown scheme %s", input_scheme);
}
return FALSE;
}
"Requested %s scheme, but we have only %s",
return FALSE;
}
/* we can generate anything out of plaintext passwords */
"Requested unknown scheme %s", wanted_scheme);
return FALSE;
}
}
return TRUE;
}
struct auth_request *auth_request)
{
const unsigned char *credentials;
if (result != PASSDB_RESULT_OK) {
return;
}
&credentials, &size))
}
{
struct passdb_module_interface **p, *iface;
struct auth_passdb *auth_passdb;
for (p = passdb_interfaces; *p != NULL; p++) {
iface = *p;
break;
}
}
#ifdef HAVE_MODULES
}
#endif
i_fatal("Unknown passdb driver '%s' "
"(typo, or Dovecot was built without support for it? "
"Check with dovecot --build-options)",
driver);
}
} else {
}
return auth_passdb;
}
{
/* blocking passdb - we need an auth server */
}
}
{
#ifdef HAVE_MODULES
#endif
}