@ -1569,21 +1569,23 @@ process_decrypted:
pkt - > noencrypt_len = 0 ;
pkt - > noencrypt_len = 0 ;
pkt - > link = link ;
pkt - > link = link ;
link - > remote_keepalive = pkt - > flag_up ;
link - > remote_keepalive = pkt - > flag_up ;
if ( link - > remote_keepalive & & ! link - > link_status & & link - > initialized ) loadbalancer_link_ready ( link ) ; // up выставляем только если и remote=up и local=up
link - > link_status = link - > remote_keepalive ;
link - > last_recv_local_time = get_time_tb ( ) ;
/* restore recv_keepalive BEFORE computing link_status = remote && local */
link - > last_recv_timestamp = pkt - > timestamp ;
link - > last_recv_updated = 1 ;
// Mark link as up when receiving packets
if ( link - > recv_keepalive ! = 1 ) {
if ( link - > recv_keepalive ! = 1 ) {
link - > recv_keepalive = 1 ;
link - > recv_keepalive = 1 ;
// loadbalancer_link_ready(link);
DEBUG_INFO ( DEBUG_CATEGORY_CONNECTION , " [%s] Link %p (local_id=%d) status changed to UP - packet received " ,
DEBUG_INFO ( DEBUG_CATEGORY_CONNECTION , " [%s] Link %p (local_id=%d) status changed to UP - packet received " ,
link - > etcp - > log_name , link , link - > local_link_id ) ;
link - > etcp - > log_name , link , link - > local_link_id ) ;
}
}
int was_up = link - > link_status ;
link - > link_status = link - > remote_keepalive & & link - > recv_keepalive ;
if ( link - > link_status & & ! was_up & & link - > initialized )
loadbalancer_link_ready ( link ) ;
link - > last_recv_local_time = get_time_tb ( ) ;
link - > last_recv_timestamp = pkt - > timestamp ;
link - > last_recv_updated = 1 ;
// Count decrypted bytes
// Count decrypted bytes
link - > total_decrypted + = pkt - > data_len ;
link - > total_decrypted + = pkt - > data_len ;