fix: etcp_router_consumer_ack — use router_ack_do_send instead of schedule
router_schedule_ack skips when rx_seq==last_sent_ack_seq (no-op), so the first consumer_ack call after setting consumer_ack=1 was silently ignored. Client never got ACK → send_q stuck at 256. router_ack_do_send always sends the ACK unconditionally.
This commit is contained in:
1 parent
4716641dff
commit
e4e5ed71f8
1 file changed
+1
-1
+1
-1
@@ -557,7 +557,7 @@ void etcp_router_consumer_ack(struct UTUN_INSTANCE* inst, uint64_t remote_node_i
|
||||
struct ETCP_ROUTER_CONN* rconn = etcp_router_conn_get(inst, remote_node_id, svc_id);
|
||||
if (!rconn) return;
|
||||
rconn->consumer_ack = 1;
|
||||
router_schedule_ack(rconn);
|
||||
router_ack_do_send(rconn);
|
||||
}
|
||||
|
||||
// ====================================================================
|
||||
|
||||
Reference in new issue
Block a user