mirror of
https://git.openldap.org/openldap/openldap.git
synced 2026-05-28 04:35:57 -04:00
ITS#10265 lloadd: Plug shutdown leaks
This commit is contained in:
parent
c27f848927
commit
7a2ef5486b
3 changed files with 11 additions and 8 deletions
|
|
@ -704,15 +704,13 @@ lloadd_daemon_destroy( void )
|
|||
return 0;
|
||||
}
|
||||
|
||||
static void
|
||||
destroy_listeners( void )
|
||||
void
|
||||
lloadd_listeners_destroy( void )
|
||||
{
|
||||
LloadListener *l, **ll = lload_listeners;
|
||||
|
||||
if ( ll == NULL ) return;
|
||||
|
||||
ldap_pvt_thread_join( listener_tid, (void *)NULL );
|
||||
|
||||
while ( (l = *ll++) != NULL ) {
|
||||
lload_listener_free( l );
|
||||
}
|
||||
|
|
@ -1301,11 +1299,11 @@ lloadd_daemon( struct event_base *daemon_base )
|
|||
"Main event loop finished: rc=%d\n",
|
||||
rc );
|
||||
|
||||
/* shutdown */
|
||||
event_base_loopexit( listener_base, 0 );
|
||||
/* Shutdown: */
|
||||
|
||||
/* wait for the listener threads to complete */
|
||||
destroy_listeners();
|
||||
event_base_loopexit( listener_base, 0 );
|
||||
ldap_pvt_thread_join( listener_tid, (void *)NULL );
|
||||
|
||||
/* Mark upstream connections closing and prevent from opening new ones */
|
||||
lload_tiers_shutdown();
|
||||
|
|
@ -1338,7 +1336,6 @@ lloadd_daemon( struct event_base *daemon_base )
|
|||
|
||||
lload_tiers_destroy();
|
||||
clients_destroy( 0 );
|
||||
lload_bindconf_free( &bindconf );
|
||||
evdns_base_free( dnsbase, 0 );
|
||||
|
||||
ch_free( daemon_tid );
|
||||
|
|
|
|||
|
|
@ -112,11 +112,16 @@ lload_global_destroy( void )
|
|||
ch_free( lloadd_identity.bv_val );
|
||||
BER_BVZERO( &lloadd_identity );
|
||||
}
|
||||
lload_bindconf_free( &bindconf );
|
||||
|
||||
lload_exop_destroy();
|
||||
ldap_tavl_free( lload_control_actions, (AVL_FREE)lload_restriction_free );
|
||||
ldap_tavl_free( lload_exop_actions, (AVL_FREE)lload_restriction_free );
|
||||
|
||||
lloadd_listeners_destroy();
|
||||
/* All closed at shutdown but tools don't go through shutdown */
|
||||
lload_tiers_destroy();
|
||||
|
||||
#ifdef HAVE_TLS
|
||||
if ( lload_tls_backend_ld ) {
|
||||
ldap_unbind_ext( lload_tls_backend_ld, NULL, NULL );
|
||||
|
|
|
|||
|
|
@ -116,6 +116,7 @@ LDAP_SLAPD_F (void) connections_walk( ldap_pvt_thread_mutex_t *cq_mutex, lload_c
|
|||
LDAP_SLAPD_F (LloadListener *) lload_configure_listener( const char *url, LDAPURLDesc *lud );
|
||||
LDAP_SLAPD_F (int) lload_open_new_listener( LloadListener *lr );
|
||||
LDAP_SLAPD_F (int) lloadd_listeners_init( const char *urls );
|
||||
LDAP_SLAPD_F (void) lloadd_listeners_destroy( void );
|
||||
LDAP_SLAPD_F (int) lloadd_daemon_destroy( void );
|
||||
LDAP_SLAPD_F (int) lloadd_daemon( struct event_base *daemon_base );
|
||||
LDAP_SLAPD_F (LloadListener **) lloadd_get_listeners( void );
|
||||
|
|
|
|||
Loading…
Reference in a new issue