Mercurial > dovecot > original-hg > dovecot-1.2
changeset 8217:c47b78e843aa HEAD
Separate "unknown passdb/userdb X" and "support for X not compiled in" error messages.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Wed, 24 Sep 2008 19:01:23 +0300 |
parents | 11ff5d768660 |
children | 2df7a88a5458 |
files | src/auth/passdb-bsdauth.c src/auth/passdb-checkpassword.c src/auth/passdb-ldap.c src/auth/passdb-pam.c src/auth/passdb-passwd-file.c src/auth/passdb-passwd.c src/auth/passdb-shadow.c src/auth/passdb-sia.c src/auth/passdb-sql.c src/auth/passdb-vpopmail.c src/auth/passdb.c src/auth/userdb-ldap.c src/auth/userdb-nss.c src/auth/userdb-passwd-file.c src/auth/userdb-passwd.c src/auth/userdb-prefetch.c src/auth/userdb-sql.c src/auth/userdb-static.c src/auth/userdb-vpopmail.c src/auth/userdb.c |
diffstat | 20 files changed, 98 insertions(+), 80 deletions(-) [+] |
line wrap: on
line diff
--- a/src/auth/passdb-bsdauth.c Tue Sep 23 19:58:07 2008 +0300 +++ b/src/auth/passdb-bsdauth.c Wed Sep 24 19:01:23 2008 +0300 @@ -1,11 +1,11 @@ /* Copyright (c) 2002-2008 Dovecot authors, see the included COPYING file */ #include "common.h" +#include "passdb.h" #ifdef PASSDB_BSDAUTH #include "safe-memset.h" -#include "passdb.h" #include "mycrypt.h" #include <login_cap.h> @@ -78,5 +78,8 @@ NULL, NULL }; - +#else +struct passdb_module_interface passdb_bsdauth = { + MEMBER(name) "bsdauth" +}; #endif
--- a/src/auth/passdb-checkpassword.c Tue Sep 23 19:58:07 2008 +0300 +++ b/src/auth/passdb-checkpassword.c Wed Sep 24 19:01:23 2008 +0300 @@ -1,6 +1,7 @@ /* Copyright (c) 2004-2008 Dovecot authors, see the included COPYING file */ #include "common.h" +#include "passdb.h" #ifdef PASSDB_CHECKPASSWORD @@ -10,7 +11,6 @@ #include "ioloop.h" #include "hash.h" #include "env-util.h" -#include "passdb.h" #include "safe-memset.h" #include <stdlib.h> @@ -478,5 +478,8 @@ NULL, NULL }; - +#else +struct passdb_module_interface passdb_checkpassword = { + MEMBER(name) "checkpassword" +}; #endif
--- a/src/auth/passdb-ldap.c Tue Sep 23 19:58:07 2008 +0300 +++ b/src/auth/passdb-ldap.c Wed Sep 24 19:01:23 2008 +0300 @@ -1,6 +1,7 @@ /* Copyright (c) 2003-2008 Dovecot authors, see the included COPYING file */ #include "common.h" +#include "passdb.h" #ifdef PASSDB_LDAP @@ -11,7 +12,6 @@ #include "password-scheme.h" #include "auth-cache.h" #include "db-ldap.h" -#include "passdb.h" #include <ldap.h> #include <stdlib.h> @@ -430,5 +430,8 @@ ldap_lookup_credentials, NULL }; - +#else +struct passdb_module_interface passdb_ldap = { + MEMBER(name) "ldap" +}; #endif
--- a/src/auth/passdb-pam.c Tue Sep 23 19:58:07 2008 +0300 +++ b/src/auth/passdb-pam.c Wed Sep 24 19:01:23 2008 +0300 @@ -8,6 +8,7 @@ */ #include "common.h" +#include "passdb.h" #ifdef PASSDB_PAM @@ -15,7 +16,6 @@ #include "str.h" #include "var-expand.h" #include "network.h" -#include "passdb.h" #include "safe-memset.h" #include "auth-cache.h" @@ -320,5 +320,8 @@ NULL, NULL }; - +#else +struct passdb_module_interface passdb_pam = { + MEMBER(name) "pam" +}; #endif
--- a/src/auth/passdb-passwd-file.c Tue Sep 23 19:58:07 2008 +0300 +++ b/src/auth/passdb-passwd-file.c Wed Sep 24 19:01:23 2008 +0300 @@ -1,13 +1,13 @@ /* Copyright (c) 2002-2008 Dovecot authors, see the included COPYING file */ #include "common.h" +#include "passdb.h" #ifdef PASSDB_PASSWD_FILE #include "str.h" #include "auth-cache.h" #include "var-expand.h" -#include "passdb.h" #include "password-scheme.h" #include "db-passwd-file.h" @@ -187,5 +187,8 @@ passwd_file_lookup_credentials, NULL }; - +#else +struct passdb_module_interface passdb_passwd_file = { + MEMBER(name) "passwd-file" +}; #endif
--- a/src/auth/passdb-passwd.c Tue Sep 23 19:58:07 2008 +0300 +++ b/src/auth/passdb-passwd.c Wed Sep 24 19:01:23 2008 +0300 @@ -1,11 +1,11 @@ /* Copyright (c) 2002-2008 Dovecot authors, see the included COPYING file */ #include "common.h" +#include "passdb.h" #ifdef PASSDB_PASSWD #include "safe-memset.h" -#include "passdb.h" #include <pwd.h> @@ -83,4 +83,8 @@ NULL }; +#else +struct passdb_module_interface passdb_passwd = { + MEMBER(name) "passwd" +}; #endif
--- a/src/auth/passdb-shadow.c Tue Sep 23 19:58:07 2008 +0300 +++ b/src/auth/passdb-shadow.c Wed Sep 24 19:01:23 2008 +0300 @@ -1,11 +1,11 @@ /* Copyright (c) 2002-2008 Dovecot authors, see the included COPYING file */ #include "common.h" +#include "passdb.h" #ifdef PASSDB_SHADOW #include "safe-memset.h" -#include "passdb.h" #include <shadow.h> @@ -82,5 +82,8 @@ NULL, NULL }; - +#else +struct passdb_module_interface passdb_shadow = { + MEMBER(name) "shadow" +}; #endif
--- a/src/auth/passdb-sia.c Tue Sep 23 19:58:07 2008 +0300 +++ b/src/auth/passdb-sia.c Wed Sep 24 19:01:23 2008 +0300 @@ -3,11 +3,11 @@ /* Tru64 SIA support */ #include "common.h" +#include "passdb.h" #ifdef PASSDB_SIA #include "safe-memset.h" -#include "passdb.h" #include <sia.h> #include <siad.h> @@ -59,5 +59,8 @@ NULL, NULL }; - +#else +struct passdb_module_interface passdb_sia = { + MEMBER(name) "sia" +}; #endif
--- a/src/auth/passdb-sql.c Tue Sep 23 19:58:07 2008 +0300 +++ b/src/auth/passdb-sql.c Wed Sep 24 19:01:23 2008 +0300 @@ -1,6 +1,7 @@ /* Copyright (c) 2004-2008 Dovecot authors, see the included COPYING file */ #include "common.h" +#include "passdb.h" #ifdef PASSDB_SQL @@ -11,7 +12,6 @@ #include "password-scheme.h" #include "auth-cache.h" #include "db-sql.h" -#include "passdb.h" #include <stdlib.h> #include <string.h> @@ -273,5 +273,8 @@ sql_lookup_credentials, sql_set_credentials }; - +#else +struct passdb_module_interface passdb_sql = { + MEMBER(name) "sql" +}; #endif
--- a/src/auth/passdb-vpopmail.c Tue Sep 23 19:58:07 2008 +0300 +++ b/src/auth/passdb-vpopmail.c Wed Sep 24 19:01:23 2008 +0300 @@ -3,11 +3,11 @@ /* Thanks to Courier-IMAP for showing how the vpopmail API should be used */ #include "common.h" +#include "passdb.h" #ifdef PASSDB_VPOPMAIL #include "safe-memset.h" -#include "passdb.h" #include "password-scheme.h" #include "auth-cache.h" @@ -194,5 +194,8 @@ vpopmail_lookup_credentials, NULL }; - +#else +struct passdb_module_interface passdb_vpopmail = { + MEMBER(name) "vpopmail" +}; #endif
--- a/src/auth/passdb.c Tue Sep 23 19:58:07 2008 +0300 +++ b/src/auth/passdb.c Wed Sep 24 19:01:23 2008 +0300 @@ -139,10 +139,10 @@ auth_passdb->id = id; iface = passdb_interface_find(driver); - if (iface == NULL) { - i_fatal("Unknown passdb driver '%s' " - "(typo, or Dovecot was built without support for it? " - "Check with dovecot --build-options)", + if (iface == NULL) + i_fatal("Unknown passdb driver '%s'", driver); + if (iface->verify_plain == NULL) { + i_fatal("Support not compiled in for passdb driver '%s'", driver); } @@ -191,36 +191,16 @@ void passdbs_init(void) { i_array_init(&passdb_interfaces, 16); -#ifdef PASSDB_PASSWD passdb_register_module(&passdb_passwd); -#endif -#ifdef PASSDB_BSDAUTH passdb_register_module(&passdb_bsdauth); -#endif -#ifdef PASSDB_PASSWD_FILE passdb_register_module(&passdb_passwd_file); -#endif -#ifdef PASSDB_PAM passdb_register_module(&passdb_pam); -#endif -#ifdef PASSDB_CHECKPASSWORD passdb_register_module(&passdb_checkpassword); -#endif -#ifdef PASSDB_SHADOW passdb_register_module(&passdb_shadow); -#endif -#ifdef PASSDB_VPOPMAIL passdb_register_module(&passdb_vpopmail); -#endif -#if defined(PASSDB_LDAP) && defined(BUILTIN_LDAP) passdb_register_module(&passdb_ldap); -#endif -#ifdef PASSDB_SQL passdb_register_module(&passdb_sql); -#endif -#ifdef PASSDB_SIA passdb_register_module(&passdb_sia); -#endif } void passdbs_deinit(void)
--- a/src/auth/userdb-ldap.c Tue Sep 23 19:58:07 2008 +0300 +++ b/src/auth/userdb-ldap.c Wed Sep 24 19:01:23 2008 +0300 @@ -1,6 +1,7 @@ /* Copyright (c) 2003-2008 Dovecot authors, see the included COPYING file */ #include "common.h" +#include "userdb.h" #ifdef USERDB_LDAP @@ -9,7 +10,6 @@ #include "var-expand.h" #include "auth-cache.h" #include "db-ldap.h" -#include "userdb.h" #include <ldap.h> #include <stdlib.h> @@ -161,5 +161,8 @@ userdb_ldap_lookup }; - +#else +struct userdb_module_interface userdb_ldap = { + MEMBER(name) "ldap" +}; #endif
--- a/src/auth/userdb-nss.c Tue Sep 23 19:58:07 2008 +0300 +++ b/src/auth/userdb-nss.c Wed Sep 24 19:01:23 2008 +0300 @@ -3,11 +3,11 @@ /* Currently supports only GLIBC-compatible NSS modules */ #include "common.h" +#include "userdb.h" #ifdef USERDB_NSS #include "module-dir.h" -#include "userdb.h" #include <pwd.h> #include <unistd.h> @@ -148,5 +148,8 @@ userdb_nss_lookup }; - +#else +struct userdb_module_interface userdb_nss = { + MEMBER(name) "nss" +}; #endif
--- a/src/auth/userdb-passwd-file.c Tue Sep 23 19:58:07 2008 +0300 +++ b/src/auth/userdb-passwd-file.c Wed Sep 24 19:01:23 2008 +0300 @@ -1,13 +1,13 @@ /* Copyright (c) 2002-2008 Dovecot authors, see the included COPYING file */ #include "common.h" +#include "userdb.h" #ifdef USERDB_PASSWD_FILE #include "str.h" #include "auth-cache.h" #include "var-expand.h" -#include "userdb.h" #include "db-passwd-file.h" #define PASSWD_FILE_CACHE_KEY "%u" @@ -137,5 +137,8 @@ passwd_file_lookup }; - +#else +struct userdb_module_interface userdb_passwd_file = { + MEMBER(name) "passwd-file" +}; #endif
--- a/src/auth/userdb-passwd.c Tue Sep 23 19:58:07 2008 +0300 +++ b/src/auth/userdb-passwd.c Wed Sep 24 19:01:23 2008 +0300 @@ -1,10 +1,10 @@ /* Copyright (c) 2002-2008 Dovecot authors, see the included COPYING file */ #include "common.h" +#include "userdb.h" #ifdef USERDB_PASSWD -#include "userdb.h" #include "userdb-static.h" #include <pwd.h> @@ -92,5 +92,8 @@ passwd_lookup }; - +#else +struct userdb_module_interface userdb_passwd = { + MEMBER(name) "passwd" +}; #endif
--- a/src/auth/userdb-prefetch.c Tue Sep 23 19:58:07 2008 +0300 +++ b/src/auth/userdb-prefetch.c Wed Sep 24 19:01:23 2008 +0300 @@ -1,12 +1,12 @@ /* Copyright (c) 2004-2008 Dovecot authors, see the included COPYING file */ #include "common.h" +#include "userdb.h" #ifdef USERDB_PREFETCH #include "str.h" #include "var-expand.h" -#include "userdb.h" #include <stdlib.h> @@ -44,5 +44,8 @@ prefetch_lookup }; - +#else +struct userdb_module_interface userdb_prefetch = { + MEMBER(name) "prefetch" +}; #endif
--- a/src/auth/userdb-sql.c Tue Sep 23 19:58:07 2008 +0300 +++ b/src/auth/userdb-sql.c Wed Sep 24 19:01:23 2008 +0300 @@ -1,6 +1,7 @@ /* Copyright (c) 2004-2008 Dovecot authors, see the included COPYING file */ #include "common.h" +#include "userdb.h" #ifdef USERDB_SQL @@ -9,7 +10,6 @@ #include "var-expand.h" #include "auth-cache.h" #include "db-sql.h" -#include "userdb.h" #include <stdlib.h> #include <string.h> @@ -151,5 +151,8 @@ userdb_sql_lookup }; - +#else +struct userdb_module_interface userdb_sql = { + MEMBER(name) "sql" +}; #endif
--- a/src/auth/userdb-static.c Tue Sep 23 19:58:07 2008 +0300 +++ b/src/auth/userdb-static.c Wed Sep 24 19:01:23 2008 +0300 @@ -238,5 +238,8 @@ static_lookup }; - +#else +struct userdb_module_interface userdb_static = { + MEMBER(name) "static" +}; #endif
--- a/src/auth/userdb-vpopmail.c Tue Sep 23 19:58:07 2008 +0300 +++ b/src/auth/userdb-vpopmail.c Wed Sep 24 19:01:23 2008 +0300 @@ -3,11 +3,11 @@ /* Thanks to Courier-IMAP for showing how the vpopmail API should be used */ #include "common.h" +#include "userdb.h" #if defined(PASSDB_VPOPMAIL) || defined(USERDB_VPOPMAIL) #include "str.h" #include "var-expand.h" -#include "userdb.h" #include "userdb-vpopmail.h" struct vpopmail_userdb_module { @@ -48,9 +48,9 @@ return vpw; } +#endif #ifdef USERDB_VPOPMAIL - static const char * userdb_vpopmail_get_quota(const char *template, const char *vpop_str) { @@ -172,6 +172,8 @@ vpopmail_lookup }; - +#else +struct userdb_module_interface userdb_vpopmail = { + MEMBER(name) "vpopmail" +}; #endif -#endif
--- a/src/auth/userdb.c Tue Sep 23 19:58:07 2008 +0300 +++ b/src/auth/userdb.c Wed Sep 24 19:01:23 2008 +0300 @@ -116,10 +116,10 @@ *dest = auth_userdb; iface = userdb_interface_find(driver); - if (iface == NULL) { - i_fatal("Unknown userdb driver '%s' " - "(typo, or Dovecot was built without support for it? " - "Check with dovecot --build-options)", + if (iface == NULL) + i_fatal("Unknown userdb driver '%s'", driver); + if (iface->lookup == NULL) { + i_fatal("Support not compiled in for userdb driver '%s'", driver); } @@ -162,30 +162,14 @@ void userdbs_init(void) { i_array_init(&userdb_interfaces, 16); -#ifdef USERDB_PASSWD userdb_register_module(&userdb_passwd); -#endif -#ifdef USERDB_PASSWD_FILE userdb_register_module(&userdb_passwd_file); -#endif -#ifdef USERDB_PREFETCH userdb_register_module(&userdb_prefetch); -#endif -#ifdef USERDB_STATIC userdb_register_module(&userdb_static); -#endif -#ifdef USERDB_VPOPMAIL userdb_register_module(&userdb_vpopmail); -#endif -#if defined(USERDB_LDAP) && defined(BUILTIN_LDAP) userdb_register_module(&userdb_ldap); -#endif -#ifdef USERDB_SQL userdb_register_module(&userdb_sql); -#endif -#ifdef USERDB_NSS userdb_register_module(&userdb_nss); -#endif } void userdbs_deinit(void)