aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYang Tse <yangsita@gmail.com>2010-06-01 17:25:03 +0200
committerYang Tse <yangsita@gmail.com>2010-06-01 17:25:03 +0200
commit89da5324457070cb4a7391c48c6c4f84ed7fe964 (patch)
treed989117972a8aa3dd27f62c0ad7b63a7502187f0
parentb38189c7b41cc2a327ab690a523441bcb3e6f9fe (diff)
fix ldap related compilation issues
-rw-r--r--configure.ac10
-rw-r--r--lib/curl_ldap.h7
-rw-r--r--lib/ldap.c16
-rw-r--r--lib/openldap.c15
-rw-r--r--lib/url.c5
-rw-r--r--lib/version.c5
6 files changed, 44 insertions, 14 deletions
diff --git a/configure.ac b/configure.ac
index 774fd95ea..f2fd9665d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -411,6 +411,7 @@ AC_HELP_STRING([--disable-ldaps],[Disable LDAPS support]),
else
AC_MSG_RESULT(yes)
AC_DEFINE(HAVE_LDAP_SSL, 1, [Use LDAPS implementation])
+ AC_SUBST(HAVE_LDAP_SSL, [1])
curl_ldaps_msg="enabled"
fi
;;
@@ -2701,10 +2702,13 @@ fi
if test "x$CURL_DISABLE_TELNET" != "x1"; then
SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS TELNET"
fi
-if test "x$CURL_DISABLE_LDAP" != "x1" -o "x$USE_OPENLDAP" = "x1"; then
+if test "x$CURL_DISABLE_LDAP" != "x1"; then
SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS LDAP"
- if test "x$CURL_DISABLE_LDAPS" != "x1" -o "x$USE_OPENLDAP$SSL_ENABLED" = "x11"; then
- SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS LDAPS"
+ if test "x$CURL_DISABLE_LDAPS" != "x1"; then
+ if (test "x$USE_OPENLDAP" = "x1" && test "x$SSL_ENABLED" = "x1") ||
+ (test "x$USE_OPENLDAP" != "x1" && test "x$HAVE_LDAP_SSL" = "x1"); then
+ SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS LDAPS"
+ fi
fi
fi
if test "x$CURL_DISABLE_DICT" != "x1"; then
diff --git a/lib/curl_ldap.h b/lib/curl_ldap.h
index a2b167fa0..3cce4bf7b 100644
--- a/lib/curl_ldap.h
+++ b/lib/curl_ldap.h
@@ -8,7 +8,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2007, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2010, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
@@ -22,10 +22,11 @@
* KIND, either express or implied.
*
***************************************************************************/
-#if !defined(CURL_DISABLE_LDAP) || defined(USE_OPENLDAP)
+#ifndef CURL_DISABLE_LDAP
extern const struct Curl_handler Curl_handler_ldap;
-#if defined(HAVE_LDAP_SSL) || defined(USE_OPENLDAP)
+#if (defined(USE_OPENLDAP) && defined(USE_SSL)) || \
+ (!defined(USE_OPENLDAP) && defined(HAVE_LDAP_SSL))
extern const struct Curl_handler Curl_handler_ldaps;
#endif
diff --git a/lib/ldap.c b/lib/ldap.c
index 06c229042..e837dbfdd 100644
--- a/lib/ldap.c
+++ b/lib/ldap.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2009, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2010, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
@@ -23,6 +23,18 @@
#include "setup.h"
#if !defined(CURL_DISABLE_LDAP) && !defined(USE_OPENLDAP)
+
+/*
+ * Notice that USE_OPENLDAP is only a source code selection switch. When
+ * libcurl is built with USE_OPENLDAP defined the libcurl source code that
+ * gets compiled is the code from openldap.c, otherwise the code that gets
+ * compiled is the code from ldap.c.
+ *
+ * When USE_OPENLDAP is defined a recent version of the OpenLDAP library
+ * might be required for compilation and runtime. In order to use ancient
+ * OpenLDAP library versions, USE_OPENLDAP shall not be defined.
+ */
+
/* -- WIN32 approved -- */
#include <stdio.h>
#include <string.h>
@@ -715,4 +727,4 @@ static void _ldap_free_urldesc (LDAPURLDesc *ludp)
free (ludp);
}
#endif /* !HAVE_LDAP_URL_PARSE */
-#endif /* CURL_DISABLE_LDAP */
+#endif /* !CURL_DISABLE_LDAP && !USE_OPENLDAP */
diff --git a/lib/openldap.c b/lib/openldap.c
index 16bf7b8c8..daba224ed 100644
--- a/lib/openldap.c
+++ b/lib/openldap.c
@@ -22,7 +22,18 @@
#include "setup.h"
-#ifdef USE_OPENLDAP
+#if !defined(CURL_DISABLE_LDAP) && defined(USE_OPENLDAP)
+
+/*
+ * Notice that USE_OPENLDAP is only a source code selection switch. When
+ * libcurl is built with USE_OPENLDAP defined the libcurl source code that
+ * gets compiled is the code from openldap.c, otherwise the code that gets
+ * compiled is the code from ldap.c.
+ *
+ * When USE_OPENLDAP is defined a recent version of the OpenLDAP library
+ * might be required for compilation and runtime. In order to use ancient
+ * OpenLDAP library versions, USE_OPENLDAP shall not be defined.
+ */
#include "urldata.h"
#include <curl/curl.h>
@@ -588,4 +599,4 @@ static Sockbuf_IO ldapsb_tls =
};
#endif /* USE_SSL */
-#endif /* USE_OPENLDAP */
+#endif /* !CURL_DISABLE_LDAP && USE_OPENLDAP */
diff --git a/lib/url.c b/lib/url.c
index 3f55f7bda..6ec844a65 100644
--- a/lib/url.c
+++ b/lib/url.c
@@ -181,9 +181,10 @@ static const struct Curl_handler * const protocols[] = {
&Curl_handler_dict,
#endif
-#if !defined(CURL_DISABLE_LDAP) || defined(USE_OPENLDAP)
+#ifndef CURL_DISABLE_LDAP
&Curl_handler_ldap,
-#if defined(HAVE_LDAP_SSL) || (defined(USE_OPENLDAP) && defined(USE_SSL))
+#if (defined(USE_OPENLDAP) && defined(USE_SSL)) || \
+ (!defined(USE_OPENLDAP) && defined(HAVE_LDAP_SSL))
&Curl_handler_ldaps,
#endif
#endif
diff --git a/lib/version.c b/lib/version.c
index d482bff1e..9a336a32d 100644
--- a/lib/version.c
+++ b/lib/version.c
@@ -170,9 +170,10 @@ static const char * const protocols[] = {
#if defined(USE_SSL) && !defined(CURL_DISABLE_IMAP)
"imaps",
#endif
-#if !defined(CURL_DISABLE_LDAP) || defined(USE_OPENLDAP)
+#ifndef CURL_DISABLE_LDAP
"ldap",
-#if defined(HAVE_LDAP_SSL) || (defined(USE_OPENLDAP) && defined(USE_SSL))
+#if (defined(USE_OPENLDAP) && defined(USE_SSL)) || \
+ (!defined(USE_OPENLDAP) && defined(HAVE_LDAP_SSL))
"ldaps",
#endif
#endif