]> git.ipfire.org Git - thirdparty/squid.git/commitdiff
Bug #1258: LDAP helpers fails to compile with SUN LDAP SDK
authorserassio <>
Sat, 19 Mar 2005 22:24:07 +0000 (22:24 +0000)
committerserassio <>
Sat, 19 Mar 2005 22:24:07 +0000 (22:24 +0000)
Forward port of 2.5 patch with addition of MinGW support.

configure.in
helpers/basic_auth/LDAP/Makefile.am
helpers/basic_auth/LDAP/squid_ldap_auth.c
helpers/external_acl/ldap_group/Makefile.am
helpers/external_acl/ldap_group/squid_ldap_group.c

index ca5d4043d98f83e451e7d5b2f1a4554b8c3091f1..c406183c1277c39be1a68e31c3cb51adc2d1ddea 100644 (file)
@@ -3,7 +3,7 @@ dnl  Configuration input file for Squid
 dnl
 dnl  Duane Wessels, wessels@nlanr.net, February 1996 (autoconf v2.9)
 dnl
-dnl  $Id: configure.in,v 1.370 2005/02/07 22:30:15 serassio Exp $
+dnl  $Id: configure.in,v 1.371 2005/03/19 15:24:07 serassio Exp $
 dnl
 dnl
 dnl
@@ -13,7 +13,7 @@ AC_CONFIG_SRCDIR([src/main.cc])
 AC_CONFIG_AUX_DIR(cfgaux)
 AM_INIT_AUTOMAKE(squid, 3.0-PRE3-CVS)
 AM_CONFIG_HEADER(include/autoconf.h)
-AC_REVISION($Revision: 1.370 $)dnl
+AC_REVISION($Revision: 1.371 $)dnl
 AC_PREFIX_DEFAULT(/usr/local/squid)
 AM_MAINTAINER_MODE
 
@@ -1999,6 +1999,22 @@ case "$host" in
                ;;
 esac
 
+dnl On MinGW OpenLDAP is not available, so LDAP helpers can be linked 
+dnl only with Windows LDAP libraries using -lwldap32
+case "$host_os" in
+mingw|mingw32)
+       LIB_LDAP="-lwldap32"
+       LIB_LBER=""
+       ;;
+*)
+       LIB_LDAP="-lldap"
+       dnl LDAP helpers need to know if -llber is needed or not
+       AC_CHECK_LIB(lber, main, [LIB_LBER="-llber"])
+       ;;
+esac
+AC_SUBST(LIB_LDAP)
+AC_SUBST(LIB_LBER)
+
 dnl System-specific library modifications
 dnl
 case "$host" in
index c3da4d793ee55b33b5de5a81510b3aee9298b703..6b2bdf795712ef31c21614fe0d7a18ba1234174a 100644 (file)
@@ -1,7 +1,7 @@
 #
 #  Makefile for the Squid LDAP authentication helper
 #
-#  $Id: Makefile.am,v 1.5 2003/01/23 00:35:21 robertc Exp $
+#  $Id: Makefile.am,v 1.6 2005/03/19 15:24:07 serassio Exp $
 #
 #  Uncomment and customize the following to suit your needs:
 #
@@ -11,5 +11,5 @@ man_MANS              = squid_ldap_auth.8
 EXTRA_DIST             = squid_ldap_auth.8
 squid_ldap_auth_SOURCES        = squid_ldap_auth.c
 
-LDADD = -L$(top_builddir)/lib -lmiscutil -lldap -llber $(XTRA_LIBS)
+LDADD = -L$(top_builddir)/lib -lmiscutil $(LIB_LDAP) $(LIB_LBER) $(XTRA_LIBS)
 INCLUDES      = -I$(top_srcdir)/include
index 0fde1d17c86003bd5ea3e4e1e65dd61b9adc49f5..9c7b3070337a53e952a5415a6e25e12fb0256f8f 100644 (file)
@@ -98,7 +98,9 @@
 #define LDAPAPI __cdecl
 #endif
 #ifdef LDAP_VERSION3
-#define LDAP_OPT_SUCCESS LDAP_SUCCESS
+#ifndef LDAP_OPT_X_TLS
+#define LDAP_OPT_X_TLS 0x6000
+#endif
 /* Some tricks to allow dynamic bind with ldap_start_tls_s entry point at
    run time.
  */
@@ -284,14 +286,24 @@ open_ldap_connection(const char *ldapServer, int port)
        version = LDAP_VERSION2;
     }
     if (ldap_set_option(ld, LDAP_OPT_PROTOCOL_VERSION, &version)
-       != LDAP_OPT_SUCCESS) {
+       != LDAP_SUCCESS) {
        fprintf(stderr, "Could not set LDAP_OPT_PROTOCOL_VERSION %d\n",
            version);
        exit(1);
     }
-    if (use_tls && (version == LDAP_VERSION3) && (ldap_start_tls_s(ld, NULL, NULL) != LDAP_SUCCESS)) {
-       fprintf(stderr, "Could not Activate TLS connection\n");
+    if (use_tls) {
+#ifdef LDAP_OPT_X_TLS
+        if (version == LDAP_VERSION3 && ldap_start_tls_s(ld, NULL, NULL) != LDAP_SUCCESS) {
+           fprintf(stderr, "Could not Activate TLS connection\n");
+           exit(1);
+       } else {
+           fprintf(stderr, "TLS requires LDAP version 3\n");
+           exit(1);
+       }
+#else
+       fprintf(stderr, "TLS not supported with your LDAP library\n");
        exit(1);
+#endif
     }
 #endif
     squid_ldap_set_timelimit(ld, timelimit);
index 5a9d44b0f187eccbbd86387891f6b2bf65b1f284..7e08f39cc53df25917f44c25e1547b24f7709c76 100644 (file)
@@ -1,7 +1,7 @@
 #
 #  Makefile for the Squid LDAP authentication helper
 #
-#  $Id: Makefile.am,v 1.5 2004/08/14 22:54:53 hno Exp $
+#  $Id: Makefile.am,v 1.6 2005/03/19 15:24:07 serassio Exp $
 #
 #  Uncomment and customize the following to suit your needs:
 #
@@ -11,5 +11,5 @@ man_MANS                      = squid_ldap_group.8
 EXTRA_DIST                     = squid_ldap_group.8
 squid_ldap_group_SOURCES       = squid_ldap_group.c
 
-LDADD          = -L$(top_builddir)/lib -lmiscutil -lldap -llber @XTRA_LIBS@
+LDADD          = -L$(top_builddir)/lib -lmiscutil $(LIB_LDAP) $(LIB_LBER) @XTRA_LIBS@
 INCLUDES       = -I. -I$(top_builddir)/include -I$(top_srcdir)/include
index ce859fef98350efaf4971038e3e32667bedcd0fc..d97fbb83d3502497776aae40fad6bc549c0c418e 100644 (file)
@@ -49,7 +49,9 @@
 #define LDAPAPI __cdecl
 #endif
 #ifdef LDAP_VERSION3
-#define LDAP_OPT_SUCCESS LDAP_SUCCESS
+#ifndef LDAP_OPT_X_TLS
+#define LDAP_OPT_X_TLS 0x6000
+#endif
 /* Some tricks to allow dynamic bind with ldap_start_tls_s entry point at
    run time.
  */
@@ -511,19 +513,28 @@ main(int argc, char **argv)
                if (version == -1) {
                    version = LDAP_VERSION2;
                }
-               if (ldap_set_option(ld, LDAP_OPT_PROTOCOL_VERSION, &version)
-                   != LDAP_OPT_SUCCESS) {
+               if (ldap_set_option(ld, LDAP_OPT_PROTOCOL_VERSION, &version) != LDAP_SUCCESS) {
                    fprintf(stderr, "Could not set LDAP_OPT_PROTOCOL_VERSION %d\n",
                        version);
                    ldap_unbind(ld);
                    ld = NULL;
                    break;
                }
-               if (use_tls && (version == LDAP_VERSION3) && (ldap_start_tls_s(ld, NULL, NULL) != LDAP_SUCCESS)) {
-                   fprintf(stderr, "Could not Activate TLS connection\n");
-                   ldap_unbind(ld);
-                   ld = NULL;
-                   break;
+               if (use_tls) {
+#ifdef LDAP_OPT_X_TLS
+                   if (version == LDAP_VERSION3 && ldap_start_tls_s(ld, NULL, NULL) != LDAP_SUCCESS) {
+                       fprintf(stderr, "Could not Activate TLS connection\n");
+                       ldap_unbind(ld);
+                       ld = NULL;
+                       break;
+                   } else {
+                       fprintf(stderr, "TLS requires LDAP version 3\n");
+                       exit(1);
+                   }
+#else
+                   fprintf(stderr, "TLS not supported with your LDAP library\n");
+                   exit(1);
+#endif
                }
 #endif
                squid_ldap_set_timelimit(ld, timelimit);