From: Stefan Metzmacher Date: Mon, 16 Jul 2007 09:48:15 +0000 (+0000) Subject: r23886: add ads_disconnect() function X-Git-Tag: samba-misc-tags/initial-v3-2-unstable~711 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ba70737b7043cae89dd90f8668a24881212ac6fb;p=thirdparty%2Fsamba.git r23886: add ads_disconnect() function metze --- diff --git a/source/libads/ads_struct.c b/source/libads/ads_struct.c index c66d4e84e8e..c769d8ff48f 100644 --- a/source/libads/ads_struct.c +++ b/source/libads/ads_struct.c @@ -141,9 +141,7 @@ void ads_destroy(ADS_STRUCT **ads) is_mine = (*ads)->is_mine; #if HAVE_LDAP - if ((*ads)->ld) { - ldap_unbind((*ads)->ld); - } + ads_disconnect(*ads); #endif SAFE_FREE((*ads)->server.realm); SAFE_FREE((*ads)->server.workgroup); diff --git a/source/libads/ldap.c b/source/libads/ldap.c index 84ceba2406a..c5c43c44c5a 100644 --- a/source/libads/ldap.c +++ b/source/libads/ldap.c @@ -465,6 +465,18 @@ got_connection: return ads_sasl_bind(ads); } +/** + * Disconnect the LDAP server + * @param ads Pointer to an existing ADS_STRUCT + **/ +void ads_disconnect(ADS_STRUCT *ads) +{ + if (ads->ld) { + ldap_unbind(ads->ld); + ads->ld = NULL; + } +} + /* Duplicate a struct berval into talloc'ed memory */ diff --git a/source/libads/ldap_utils.c b/source/libads/ldap_utils.c index 3ad08085bb2..16fd32b8079 100644 --- a/source/libads/ldap_utils.c +++ b/source/libads/ldap_utils.c @@ -75,11 +75,7 @@ static ADS_STATUS ads_do_search_retry_internal(ADS_STRUCT *ads, const char *bind DEBUG(3,("Reopening ads connection to realm '%s' after error %s\n", ads->config.realm, ads_errstr(status))); - if (ads->ld) { - ldap_unbind(ads->ld); - } - - ads->ld = NULL; + ads_disconnect(ads); status = ads_connect(ads); if (!ADS_ERR_OK(status)) {