[dovecot-cvs] dovecot/src/auth db-ldap.c, 1.41.2.4, 1.41.2.5 db-ldap.h, 1.20.2.3, 1.20.2.4

cras at dovecot.org cras at dovecot.org
Mon Jun 19 19:10:07 EEST 2006


Update of /var/lib/cvs/dovecot/src/auth
In directory talvi:/tmp/cvs-serv29808/src/auth

Modified Files:
      Tag: branch_1_0
	db-ldap.c db-ldap.h 
Log Message:
Check for sasl.h and sasl/sasl.h existence and use the one that's found. If
neither is found, disable support for LDAP SASL.



Index: db-ldap.c
===================================================================
RCS file: /var/lib/cvs/dovecot/src/auth/db-ldap.c,v
retrieving revision 1.41.2.4
retrieving revision 1.41.2.5
diff -u -d -r1.41.2.4 -r1.41.2.5
--- db-ldap.c	17 Jun 2006 19:32:14 -0000	1.41.2.4
+++ db-ldap.c	19 Jun 2006 16:10:04 -0000	1.41.2.5
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003 Timo Sirainen */
+/* Copyright (C) 2003-2006 Timo Sirainen */
 
 #include "common.h"
 
@@ -15,6 +15,15 @@
 #include <stddef.h>
 #include <stdlib.h>
 
+#define HAVE_LDAP_SASL
+#ifdef HAVE_SASL_H
+#  include <sasl.h>
+#elif defined (HAVE_SASL_SASL_H)
+#  include <sasl/sasl.h>
+#else
+#  undef HAVE_LDAP_SASL
+#endif
+
 /* Older versions may require calling ldap_result() twice */
 #if LDAP_VENDOR_VERSION <= 20112
 #  define OPENLDAP_ASYNC_WORKAROUND
@@ -226,11 +235,12 @@
 	}
 }
 
+#ifdef HAVE_LDAP_SASL
 static int
 sasl_interact(LDAP *ld __attr_unused__, unsigned flags __attr_unused__,
 	      void *defaults, void *interact)
 {
-	struct sasl_bind_context *context = defaults;
+	struct ldap_sasl_bind_context *context = defaults;
 	sasl_interact_t *in;
 	const char *str;
 
@@ -260,11 +270,11 @@
 	}
 	return LDAP_SUCCESS;
 }
+#endif
 
 bool db_ldap_connect(struct ldap_connection *conn)
 {
 	int ret, fd;
-	struct sasl_bind_context context;
 
 	if (conn->connected)
 		return TRUE;
@@ -316,6 +326,10 @@
 
 	/* FIXME: we shouldn't use blocking bind */
 	if (conn->set.sasl_bind) {
+#ifdef HAVE_LDAP_SASL
+		struct ldap_sasl_bind_context context;
+
+		memset(&context, 0, sizeof(context));
 		context.authcid = conn->set.dn;
 		context.passwd = conn->set.dnpass;
 		context.realm = conn->set.sasl_realm;
@@ -325,6 +339,9 @@
 						   conn->set.sasl_mech,
 						   NULL, NULL, LDAP_SASL_QUIET,
 						   sasl_interact, &context);
+#else
+		i_fatal("LDAP: sasl_bind=yes but no SASL support compiled in");
+#endif
 	} else {
 		ret = ldap_simple_bind_s(conn->ld, conn->set.dn,
 					 conn->set.dnpass);

Index: db-ldap.h
===================================================================
RCS file: /var/lib/cvs/dovecot/src/auth/db-ldap.h,v
retrieving revision 1.20.2.3
retrieving revision 1.20.2.4
diff -u -d -r1.20.2.3 -r1.20.2.4
--- db-ldap.h	17 Jun 2006 19:32:14 -0000	1.20.2.3
+++ db-ldap.h	19 Jun 2006 16:10:04 -0000	1.20.2.4
@@ -2,7 +2,6 @@
 #define __DB_LDAP_H
 
 #include <ldap.h>
-#include <sasl/sasl.h>
 
 struct auth_request;
 struct ldap_connection;
@@ -75,7 +74,7 @@
 	char **attributes; /* points to pass_attr_names / user_attr_names */
 };
 
-struct sasl_bind_context {
+struct ldap_sasl_bind_context {
 	const char *authcid;
 	const char *passwd;
 	const char *realm;



More information about the dovecot-cvs mailing list