changeset 7344:57ae4181bb32 HEAD

If sasl_bind=yes or tls=yes is used and ldap_version<3, fail with an error.
author Timo Sirainen <tss@iki.fi>
date Wed, 05 Mar 2008 00:57:17 +0200
parents 034e18a91a6b
children 0c7dc0b0bb7b
files src/auth/db-ldap.c
diffstat 1 files changed, 8 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/src/auth/db-ldap.c	Wed Mar 05 00:34:59 2008 +0200
+++ b/src/auth/db-ldap.c	Wed Mar 05 00:57:17 2008 +0200
@@ -716,10 +716,14 @@
 	db_ldap_set_opt(conn, LDAP_OPT_DEREF, &conn->set.ldap_deref,
 			"deref", conn->set.deref);
 
-	/* If SASL binds are used, the protocol version needs to be
-	   at least 3 */
-	ldap_version = conn->set.sasl_bind &&
-		conn->set.ldap_version < 3 ? 3 : conn->set.ldap_version;
+	if (conn->set.ldap_version < 3) {
+		if (conn->set.sasl_bind)
+			i_fatal("LDAP: sasl_bind=yes requires ldap_version=3");
+		if (conn->set.tls)
+			i_fatal("LDAP: tls=yes requires ldap_version=3");
+	}
+
+	ldap_version = conn->set.ldap_version;
 	db_ldap_set_opt(conn, LDAP_OPT_PROTOCOL_VERSION, &ldap_version,
 			"protocol_version", dec2str(ldap_version));
 	db_ldap_set_tls_options(conn);