From 2fc53c947b6c18f5e9761a26792f806ff588e239 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Mon, 16 Jul 2007 09:48:15 +0000 Subject: r23886: add ads_disconnect() function metze (This used to be commit ba70737b7043cae89dd90f8668a24881212ac6fb) --- source3/libads/ads_struct.c | 4 +--- source3/libads/ldap.c | 12 ++++++++++++ source3/libads/ldap_utils.c | 6 +----- 3 files changed, 14 insertions(+), 8 deletions(-) (limited to 'source3') diff --git a/source3/libads/ads_struct.c b/source3/libads/ads_struct.c index c66d4e84e8..c769d8ff48 100644 --- a/source3/libads/ads_struct.c +++ b/source3/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/source3/libads/ldap.c b/source3/libads/ldap.c index 84ceba2406..c5c43c44c5 100644 --- a/source3/libads/ldap.c +++ b/source3/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/source3/libads/ldap_utils.c b/source3/libads/ldap_utils.c index 3ad08085bb..16fd32b807 100644 --- a/source3/libads/ldap_utils.c +++ b/source3/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)) { -- cgit