@ -342,9 +342,6 @@ struct CONN_MGR* conn_mgr_init(struct TOPO_GROUP* group) {
mgr - > bg_ping_timer = uasync_set_timeout ( mgr - > instance - > ua , CONN_MGR_BG_PING_INTERVAL_TB , mgr , cm_bg_ping_timer_cb , " conn_mgr_bg_ping " ) ;
mgr - > bg_ping_timer = uasync_set_timeout ( mgr - > instance - > ua , CONN_MGR_BG_PING_INTERVAL_TB , mgr , cm_bg_ping_timer_cb , " conn_mgr_bg_ping " ) ;
mgr - > candidate_ping_timer = uasync_set_timeout ( mgr - > instance - > ua , CONN_MGR_CANDIDATE_PING_TB , mgr , cm_candidate_ping_timer_cb , " conn_mgr_cand_ping " ) ;
mgr - > candidate_ping_timer = uasync_set_timeout ( mgr - > instance - > ua , CONN_MGR_CANDIDATE_PING_TB , mgr , cm_candidate_ping_timer_cb , " conn_mgr_cand_ping " ) ;
mgr - > bg_ping_cycle_start_tb = get_time_tb ( ) ; mgr - > initialized = 1 ;
mgr - > bg_ping_cycle_start_tb = get_time_tb ( ) ; mgr - > initialized = 1 ;
/* Первый conn_mgr биндит etcp_router (остальные перезаписывают тот же коллбэк — безвредно) */
etcp_router_bind ( mgr - > instance , ETCP_RT_ID_CONN_MGR , conn_mgr_router_recv_handler ) ;
etcp_bind ( mgr - > instance , ETCP_RT_ID_CONN_MGR , conn_mgr_router_recv_handler ) ;
DEBUG_INFO ( DEBUG_CATEGORY_GENERAL , " conn_mgr: initialized for group %016llx " , ( unsigned long long ) group - > group_id ) ;
DEBUG_INFO ( DEBUG_CATEGORY_GENERAL , " conn_mgr: initialized for group %016llx " , ( unsigned long long ) group - > group_id ) ;
return mgr ;
return mgr ;
}
}
@ -353,9 +350,6 @@ void conn_mgr_destroy(struct CONN_MGR* mgr) {
if ( ! mgr ) return ;
if ( ! mgr ) return ;
if ( mgr - > bg_ping_timer ) { uasync_cancel_timeout ( mgr - > instance - > ua , mgr - > bg_ping_timer ) ; mgr - > bg_ping_timer = NULL ; }
if ( mgr - > bg_ping_timer ) { uasync_cancel_timeout ( mgr - > instance - > ua , mgr - > bg_ping_timer ) ; mgr - > bg_ping_timer = NULL ; }
if ( mgr - > candidate_ping_timer ) { uasync_cancel_timeout ( mgr - > instance - > ua , mgr - > candidate_ping_timer ) ; mgr - > candidate_ping_timer = NULL ; }
if ( mgr - > candidate_ping_timer ) { uasync_cancel_timeout ( mgr - > instance - > ua , mgr - > candidate_ping_timer ) ; mgr - > candidate_ping_timer = NULL ; }
/* Отвязываемся от etcp_router (если ещё не отвязаны) */
etcp_router_unbind ( mgr - > instance , ETCP_RT_ID_CONN_MGR ) ;
etcp_unbind ( mgr - > instance , ETCP_RT_ID_CONN_MGR ) ;
{ size_t ec = queue_entry_count ( mgr - > entries ) ;
{ size_t ec = queue_entry_count ( mgr - > entries ) ;
struct ll_entry * e = mgr - > entries - > head ;
struct ll_entry * e = mgr - > entries - > head ;
while ( e ) { struct ll_entry * next = e - > next ; struct CONN_MGR_ENTRY * entry = ( struct CONN_MGR_ENTRY * ) e ; cm_entry_cleanup ( entry ) ; e = next ; }
while ( e ) { struct ll_entry * next = e - > next ; struct CONN_MGR_ENTRY * entry = ( struct CONN_MGR_ENTRY * ) e ; cm_entry_cleanup ( entry ) ; e = next ; }