summaryrefslogtreecommitdiff
path: root/usr/src/lib/libadutils/common/addisc.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/lib/libadutils/common/addisc.c')
-rw-r--r--usr/src/lib/libadutils/common/addisc.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/usr/src/lib/libadutils/common/addisc.c b/usr/src/lib/libadutils/common/addisc.c
index f98461554d..7a9805bc68 100644
--- a/usr/src/lib/libadutils/common/addisc.c
+++ b/usr/src/lib/libadutils/common/addisc.c
@@ -834,7 +834,6 @@ ldap_lookup_init(idmap_ad_disc_ds_t *ds)
ldversion = LDAP_VERSION3;
(void) ldap_set_option(ld, LDAP_OPT_PROTOCOL_VERSION,
&ldversion);
-
(void) ldap_set_option(ld, LDAP_OPT_REFERRALS,
LDAP_OPT_OFF);
(void) ldap_set_option(ld, LDAP_OPT_TIMELIMIT, &zero);
@@ -845,6 +844,14 @@ ldap_lookup_init(idmap_ad_disc_ds_t *ds)
(void) ldap_set_option(ld, LDAP_OPT_RESTART,
LDAP_OPT_ON);
+ rc = adutils_set_thread_functions(ld);
+ if (rc != LDAP_SUCCESS) {
+ /* Error has already been logged */
+ (void) ldap_unbind(ld);
+ ld = NULL;
+ continue;
+ }
+
rc = ldap_sasl_interactive_bind_s(ld, "" /* binddn */,
saslmech, NULL, NULL, saslflags, &saslcallback,
NULL /* defaults */);