passdb.c revision 661911ee2ea6b9f3f41650ccf74f3716e189da72
/* 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 *
const char *wanted_scheme)
{
switch (credentials) {
break;
return wanted_scheme;
return "PLAIN";
case PASSDB_CREDENTIALS_CRYPT:
return "CRYPT";
return wanted_scheme;
return "CRAM-MD5";
return "DIGEST-MD5";
return "LANMAN";
case PASSDB_CREDENTIALS_NTLM:
return "NTLM";
case PASSDB_CREDENTIALS_OTP:
return "OTP";
case PASSDB_CREDENTIALS_SKEY:
return "SKEY";
case PASSDB_CREDENTIALS_RPA:
return "RPA";
}
return "??";
}
const char *
{
const char *wanted_scheme;
/* anything goes */
}
"Requested %s scheme, but we have only %s",
return NULL;
}
/* we can generate anything out of plaintext passwords */
}
return password;
}
struct auth_request *auth_request)
{
if (result != PASSDB_RESULT_OK) {
return;
}
}
{
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
}