Fix ITS#4401 teardown persistent clients when unconfiguring

This commit is contained in:
Howard Chu 2006-02-15 07:38:17 +00:00
parent cbc11c9233
commit 937bc5bbb7

View File

@ -2600,6 +2600,16 @@ avl_ber_bvfree( void *v_bv )
void
syncinfo_free( syncinfo_t *sie )
{
if ( sie->si_ld ) {
if ( sie->si_conn_setup ) {
ber_socket_t s;
ldap_get_option( sie->si_ld, LDAP_OPT_DESC, &s );
connection_client_stop( s );
sie->si_conn_setup = 0;
}
ldap_unbind_ext( sie->si_ld, NULL, NULL );
}
/* re-fetch it, in case it was already removed */
sie->si_re = ldap_pvt_runqueue_find( &slapd_rq, do_syncrepl, sie );
if ( sie->si_re ) {
@ -2663,9 +2673,6 @@ syncinfo_free( syncinfo_t *sie )
if ( sie->si_presentlist ) {
avl_free( sie->si_presentlist, avl_ber_bvfree );
}
if ( sie->si_ld ) {
ldap_unbind_ext( sie->si_ld, NULL, NULL );
}
while ( !LDAP_LIST_EMPTY( &sie->si_nonpresentlist )) {
struct nonpresent_entry* npe;
npe = LDAP_LIST_FIRST( &sie->si_nonpresentlist );