diff options
Diffstat (limited to 'usr/src/lib/libadutils/common/adutils.c')
-rw-r--r-- | usr/src/lib/libadutils/common/adutils.c | 9 |
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); |