|
|
|
|
@ -587,6 +587,7 @@ static void etcp_link_ready_callback(struct ETCP_CONN* etcp) {
|
|
|
|
|
DEBUG_TRACE(DEBUG_CATEGORY_ETCP, ""); |
|
|
|
|
if (!etcp) return; |
|
|
|
|
if (etcp->tx_state!=ETCP_TX_STATE_LINK_WAIT) return; |
|
|
|
|
etcp->tx_state = ETCP_TX_STATE_DATA_WAIT; |
|
|
|
|
queue_resume_callback(etcp->input_send_q); |
|
|
|
|
queue_resume_callback(etcp->ack_q); |
|
|
|
|
} |
|
|
|
|
@ -604,7 +605,10 @@ static void ack_response_timer_cb(void* arg) {// проверяем неотпр
|
|
|
|
|
static void etcp_conn_process_send_queue(struct ETCP_CONN* etcp) {// вызываем когда есть элемент в send_q или надо отправить ack
|
|
|
|
|
DEBUG_TRACE(DEBUG_CATEGORY_ETCP, ""); |
|
|
|
|
struct ETCP_DGRAM* dgram; |
|
|
|
|
if (etcp->tx_state!=ETCP_TX_STATE_DATA_WAIT) return; |
|
|
|
|
if (etcp->tx_state!=ETCP_TX_STATE_DATA_WAIT) { |
|
|
|
|
DEBUG_DEBUG(DEBUG_CATEGORY_ETCP, "[%s] TX state: %d", etcp->log_name, etcp->tx_state); |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
while(dgram = etcp_request_pkt(etcp)) { |
|
|
|
|
etcp_loadbalancer_send(dgram); |
|
|
|
|
} |
|
|
|
|
|