@ -1403,6 +1403,7 @@ void etcp_conn_input(struct ETCP_DGRAM* pkt) {
break ;
break ;
}
}
}
}
if ( queue_find_data_by_index ( etcp - > ack_q , & seq ) = = NULL ) {
struct ACK_PACKET * p = ( struct ACK_PACKET * ) queue_entry_new_from_pool ( etcp - > instance - > ack_pool ) ;
struct ACK_PACKET * p = ( struct ACK_PACKET * ) queue_entry_new_from_pool ( etcp - > instance - > ack_pool ) ;
if ( ! p ) {
if ( ! p ) {
DEBUG_ERROR ( DEBUG_CATEGORY_ETCP , " [%s] failed to allocate ACK_PACKET " , etcp - > log_name ) ;
DEBUG_ERROR ( DEBUG_CATEGORY_ETCP , " [%s] failed to allocate ACK_PACKET " , etcp - > log_name ) ;
@ -1419,6 +1420,7 @@ void etcp_conn_input(struct ETCP_DGRAM* pkt) {
DEBUG_TRACE ( DEBUG_CATEGORY_ETCP , " [%s] set ack_timer for delayed ACK send " , etcp - > log_name ) ;
DEBUG_TRACE ( DEBUG_CATEGORY_ETCP , " [%s] set ack_timer for delayed ACK send " , etcp - > log_name ) ;
etcp - > ack_resp_timer = uasync_set_timeout ( etcp - > instance - > ua , ACK_DELAY_TB , etcp , ack_response_timer_cb , " etcp_ack_resp " ) ;
etcp - > ack_resp_timer = uasync_set_timeout ( etcp - > instance - > ua , ACK_DELAY_TB , etcp , ack_response_timer_cb , " etcp_ack_resp " ) ;
}
}
}
if ( ( ( int32_t ) ( etcp - > last_delivered_id - seq ) < 0 ) & & ( queue_find_data_by_index ( etcp - > recv_q , & seq ) = = NULL ) ) { // проверяем есть ли пакет с этим seq
if ( ( ( int32_t ) ( etcp - > last_delivered_id - seq ) < 0 ) & & ( queue_find_data_by_index ( etcp - > recv_q , & seq ) = = NULL ) ) { // проверяем есть ли пакет с этим seq
uint32_t pkt_len = len - 5 ;
uint32_t pkt_len = len - 5 ;
DEBUG_TRACE ( DEBUG_CATEGORY_ETCP , " [%s] adding packet seq=%u to recv_q (last_delivered_id=%u) " , etcp - > log_name , seq , etcp - > last_delivered_id ) ;
DEBUG_TRACE ( DEBUG_CATEGORY_ETCP , " [%s] adding packet seq=%u to recv_q (last_delivered_id=%u) " , etcp - > log_name , seq , etcp - > last_delivered_id ) ;