dovecot-2.2: auth: If global passdb is missing, don't complain i...

dovecot at dovecot.org dovecot at dovecot.org
Sun May 20 03:26:28 EEST 2012


details:   http://hg.dovecot.org/dovecot-2.2/rev/8fb3fd391d18
changeset: 14346:8fb3fd391d18
user:      Timo Sirainen <tss at iki.fi>
date:      Thu Mar 15 12:59:41 2012 +0200
description:
auth: If global passdb is missing, don't complain if protocol x and !x { passdb } exists.

diffstat:

 src/auth/auth.c |  12 ++++++++++--
 1 files changed, 10 insertions(+), 2 deletions(-)

diffs (38 lines):

diff -r c077ca9bc306 -r 8fb3fd391d18 src/auth/auth.c
--- a/src/auth/auth.c	Wed Mar 14 16:24:05 2012 +0200
+++ b/src/auth/auth.c	Thu Mar 15 12:59:41 2012 +0200
@@ -194,7 +194,6 @@
 		/* use a dummy userdb static. */
 		auth_userdb_preinit(auth, &userdb_dummy_set);
 	}
-	auth_mech_list_verify_passdb(auth);
 	return auth;
 }
 
@@ -251,9 +250,10 @@
 {
 	struct master_service_settings_output set_output;
 	const struct auth_settings *service_set;
-	struct auth *auth;
+	struct auth *auth, *const *authp;
 	unsigned int i;
 	const char *not_service = NULL;
+	bool check_default = TRUE;
 
 	i_array_init(&auths, 8);
 
@@ -274,6 +274,14 @@
 		auth = auth_preinit(service_set, services[i], pool, reg);
 		array_append(&auths, &auth, 1);
 	}
+
+	if (not_service != NULL && str_array_find(services, not_service+1))
+		check_default = FALSE;
+
+	array_foreach(&auths, authp) {
+		if ((*authp)->service != NULL || check_default)
+			auth_mech_list_verify_passdb(*authp);
+	}
 }
 
 void auths_init(void)


More information about the dovecot-cvs mailing list