mirror of
https://github.com/smoltcp-rs/smoltcp.git
synced 2026-03-08 22:29:10 +00:00
Per RFC 9293 §3.10.7.4, the only acceptable segment in LAST-ACK is an acknowledgement of the local FIN. When a duplicate or stale ACK arrived (ack_len == 0, ack_of_fin == false), smoltcp returned None with no response, leaving the remote without feedback on the current sequence state. Add an else-if branch in the (State::LastAck, TcpControl::None) arm that returns a challenge ACK via the existing challenge_ack_reply path. This is symmetric with the handling for ACKs that exceed SND.NXT. A partial ACK (ack_len > 0, ack_of_fin == false) is left on the normal path so SND.UNA advances and the FIN is retransmitted by the timer. Fixes #1060