summaryrefslogtreecommitdiff
path: root/source3/lib
diff options
context:
space:
mode:
authorJan Engelhardt <jengelh@medozas.de>2009-10-12 11:34:58 +0200
committerKarolin Seeger <kseeger@samba.org>2009-10-12 11:34:58 +0200
commitc5d5969e24913ea544590dd16378f7e071b07c4b (patch)
treefdbcdc7c0e356d30e69eb68b6704d6bb546fa9f8 /source3/lib
parentfa05abc8ffc82b1873b97d43118480b4eb9140d4 (diff)
downloadsamba-c5d5969e24913ea544590dd16378f7e071b07c4b.tar.gz
samba-c5d5969e24913ea544590dd16378f7e071b07c4b.tar.bz2
samba-c5d5969e24913ea544590dd16378f7e071b07c4b.zip
s3/smbldap: add option to disable following LDAP refs
Fix bug #6717.
Diffstat (limited to 'source3/lib')
-rw-r--r--source3/lib/smbldap.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/source3/lib/smbldap.c b/source3/lib/smbldap.c
index c96801a72b..47b2208880 100644
--- a/source3/lib/smbldap.c
+++ b/source3/lib/smbldap.c
@@ -721,9 +721,18 @@ int smb_ldap_setup_conn(LDAP **ldap_struct, const char *uri)
rc = ldap_initialize(ldap_struct, uri);
if (rc) {
DEBUG(0, ("ldap_initialize: %s\n", ldap_err2string(rc)));
+ return rc;
}
- return rc;
+ if (lp_ldap_ref_follow() != Auto) {
+ rc = ldap_set_option(*ldap_struct, LDAP_OPT_REFERRALS,
+ lp_ldap_ref_follow() ? LDAP_OPT_ON : LDAP_OPT_OFF);
+ if (rc != LDAP_SUCCESS)
+ DEBUG(0, ("Failed to set LDAP_OPT_REFERRALS: %s\n",
+ ldap_err2string(rc)));
+ }
+
+ return LDAP_SUCCESS;
#else
/* Parse the string manually */
@@ -774,7 +783,6 @@ int smb_ldap_setup_conn(LDAP **ldap_struct, const char *uri)
}
#endif /* HAVE_LDAP_INITIALIZE */
-
/* now set connection timeout */
#ifdef LDAP_X_OPT_CONNECT_TIMEOUT /* Netscape */
{