summaryrefslogtreecommitdiff
path: root/usr/src/lib/libsldap/common/ns_connect.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/lib/libsldap/common/ns_connect.c')
-rw-r--r--usr/src/lib/libsldap/common/ns_connect.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/usr/src/lib/libsldap/common/ns_connect.c b/usr/src/lib/libsldap/common/ns_connect.c
index e935a186b5..67cdee702f 100644
--- a/usr/src/lib/libsldap/common/ns_connect.c
+++ b/usr/src/lib/libsldap/common/ns_connect.c
@@ -176,11 +176,18 @@ __s_api_requestServer(const char *request, const char *server,
* from the local libsldap's list
*/
if (__s_api_isStandalone()) {
- if (__s_api_findRootDSE(ireq,
+ if ((ret_code = __s_api_findRootDSE(ireq,
server,
addrType,
ret,
- error) != NS_LDAP_SUCCESS) {
+ error)) != NS_LDAP_SUCCESS) {
+ /*
+ * get first server from local list only once
+ * to prevent looping
+ */
+ if (strcmp(ireq, NS_CACHE_NEW) != 0)
+ return (ret_code);
+
syslog(LOG_WARNING,
"libsldap (\"standalone\" mode): "
"can not find any available server. "