ldap: Replace deprecated function calls and support LDAPS
The use of the deprecated `ldap_init()` meant that LDAPS, although announced by the plugin, was not actually supported. The plugin just always used a plaintext connection. Now we use the current API and get support for LDAPS (requires a bit of an awkward URI construction). Based on the URI's scheme we also set an option to enforce a certificate check. The new NEWCTX option creates a connection-specific TLS context. Without that we get a global default context once bind is called that is not freed until the daemon exits (it leaks in LD and also seems unsafe in regards to multiple threads fetching CRLs via LDAP). Fixes:552cc11b1f("merged the modularization branch (credentials) back to trunk") Fixes:8c06e9c0ed("added #define LDAP_DEPRECATED in order to use old ldap_init() function")
This commit is contained in:
+1
-1
@@ -1027,7 +1027,7 @@ if test x$gmp = xtrue; then
|
||||
fi
|
||||
|
||||
if test x$ldap = xtrue; then
|
||||
AC_CHECK_LIB([ldap],[ldap_init],[LIBS="$LIBS"],[AC_MSG_ERROR([LDAP library ldap not found])],[])
|
||||
AC_CHECK_LIB([ldap],[ldap_initialize],[LIBS="$LIBS"],[AC_MSG_ERROR([LDAP library ldap not found])],[])
|
||||
AC_CHECK_LIB([lber],[ber_free],[LIBS="$LIBS"],[AC_MSG_ERROR([LDAP library lber not found])],[])
|
||||
AC_CHECK_HEADER([ldap.h],,[AC_MSG_ERROR([LDAP header ldap.h not found!])])
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user