diff options
author | Andreas Schneider <asn@samba.org> | 2013-07-03 14:26:49 +0200 |
---|---|---|
committer | Stefan Metzmacher <metze@samba.org> | 2014-04-17 14:56:06 +0200 |
commit | 4dca841d51dc1f11d62d86a31d8545dbfdcf7798 (patch) | |
tree | addb61216cd7160226af13a59164987367b40327 /source3/libads/ldap.c | |
parent | 2522bb80902d2e7677a25a85fa597022f20f1147 (diff) | |
download | samba-4dca841d51dc1f11d62d86a31d8545dbfdcf7798.tar.gz |
s3-libads: Use ldap_initialize() if available.
Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
Diffstat (limited to 'source3/libads/ldap.c')
-rw-r--r-- | source3/libads/ldap.c | 25 |
1 files changed, 20 insertions, 5 deletions
diff --git a/source3/libads/ldap.c b/source3/libads/ldap.c index f0f9d4c63a1..c59eda2b499 100644 --- a/source3/libads/ldap.c +++ b/source3/libads/ldap.c @@ -65,6 +65,8 @@ static void gotalarm_sig(int signum) int port, unsigned int to) { LDAP *ldp = NULL; + int ldap_err; + char *uri; DEBUG(10, ("Opening connection to LDAP server '%s:%d', timeout " "%u seconds\n", server, port, to)); @@ -109,13 +111,26 @@ static void gotalarm_sig(int signum) /* End setup timeout. */ } - ldp = ldap_open(server, port); + uri = talloc_asprintf(talloc_tos(), "ldap://%s:%u", server, port); + if (uri == NULL) { + return NULL; + } - if (ldp == NULL) { - DEBUG(2,("Could not open connection to LDAP server %s:%d: %s\n", - server, port, strerror(errno))); +#ifdef HAVE_LDAP_INITIALIZE + ldap_err = ldap_initialize(&ldp, uri); +#else + ldp = ldap_open(server, port); + if (ldp != NULL) { + ldap_err = LDAP_SUCCESS; + } else { + ldap_err = LDAP_OTHER; + } +#endif + if (ldap_err != LDAP_SUCCESS) { + DEBUG(2,("Could not initialize connection for LDAP server '%s': %s\n", + uri, ldap_err2string(ldap_err))); } else { - DEBUG(10, ("Connected to LDAP server '%s:%d'\n", server, port)); + DEBUG(10, ("Initialized connection for LDAP server '%s'\n", uri)); } if (to) { |