|
|
|
@ -304,7 +304,7 @@ void etcp_conn_reset(struct ETCP_CONN* etcp) { |
|
|
|
etcp_on_down(etcp); |
|
|
|
etcp_on_down(etcp); |
|
|
|
etcp_on_up(etcp); |
|
|
|
etcp_on_up(etcp); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} else DEBUG_TRACE(DEBUG_CATEGORY_ETCP, "links not up - skip on_down/on_up"); |
|
|
|
|
|
|
|
|
|
|
|
DEBUG_TRACE(DEBUG_CATEGORY_ETCP, "end"); |
|
|
|
DEBUG_TRACE(DEBUG_CATEGORY_ETCP, "end"); |
|
|
|
} |
|
|
|
} |
|
|
|
@ -635,15 +635,17 @@ static void etcp_link_ready_callback(struct ETCP_CONN* etcp) { |
|
|
|
DEBUG_TRACE(DEBUG_CATEGORY_ETCP, ""); |
|
|
|
DEBUG_TRACE(DEBUG_CATEGORY_ETCP, ""); |
|
|
|
if (!etcp) return; |
|
|
|
if (!etcp) return; |
|
|
|
|
|
|
|
|
|
|
|
if (etcp->tx_state!=ETCP_TX_STATE_LINK_WAIT) return; |
|
|
|
if (etcp->tx_state==0) return;// not initialized
|
|
|
|
etcp->tx_state = ETCP_TX_STATE_DATA_WAIT; |
|
|
|
|
|
|
|
queue_resume_callback(etcp->input_send_q); |
|
|
|
|
|
|
|
queue_resume_callback(etcp->ack_q); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (etcp->links_up==0) { |
|
|
|
if (etcp->links_up==0) { |
|
|
|
etcp->links_up=1; |
|
|
|
etcp->links_up=1; |
|
|
|
etcp_on_up(etcp); |
|
|
|
etcp_on_up(etcp); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
static void ack_response_timer_cb(void* arg) {// проверяем неотправленные ack response и отправляем если надо.
|
|
|
|
static void ack_response_timer_cb(void* arg) {// проверяем неотправленные ack response и отправляем если надо.
|
|
|
|
|