summaryrefslogtreecommitdiff
path: root/usr/src/lib/libadutils/common/adutils.c
diff options
context:
space:
mode:
authorJulian Pullen <Julian.Pullen@Sun.COM>2009-10-02 14:03:51 +0100
committerJulian Pullen <Julian.Pullen@Sun.COM>2009-10-02 14:03:51 +0100
commitbd42852645f5ef79a1729096abd7405b72e159f7 (patch)
tree1d6db1b755d015daddd13398a57003494ae01a29 /usr/src/lib/libadutils/common/adutils.c
parentd5c74c206594778658b2f1e87129ed10e879d953 (diff)
downloadillumos-gate-bd42852645f5ef79a1729096abd7405b72e159f7.tar.gz
6822695 libadutils does not setup the mutlti threading routines for using LDAP (libldap5)
Diffstat (limited to 'usr/src/lib/libadutils/common/adutils.c')
-rw-r--r--usr/src/lib/libadutils/common/adutils.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/usr/src/lib/libadutils/common/adutils.c b/usr/src/lib/libadutils/common/adutils.c
index d18ccc3ff3..6afed3b132 100644
--- a/usr/src/lib/libadutils/common/adutils.c
+++ b/usr/src/lib/libadutils/common/adutils.c
@@ -615,6 +615,15 @@ open_conn(adutils_host_t *adh, int timeoutsecs)
(void) ldap_set_option(adh->ld, LDAP_OPT_SIZELIMIT, &zero);
(void) ldap_set_option(adh->ld, LDAP_X_OPT_CONNECT_TIMEOUT, &timeoutms);
(void) ldap_set_option(adh->ld, LDAP_OPT_RESTART, LDAP_OPT_ON);
+
+ rc = adutils_set_thread_functions(adh->ld);
+ if (rc != LDAP_SUCCESS) {
+ /* Error has already been logged */
+ (void) ldap_unbind(adh->ld);
+ adh->ld = NULL;
+ goto out;
+ }
+
rc = ldap_sasl_interactive_bind_s(adh->ld, "" /* binddn */,
adh->saslmech, NULL, NULL, adh->saslflags, &saslcallback,
NULL);