From 7c82ea4dd910bd68214c41d9c872e73cf2dc8554 Mon Sep 17 00:00:00 2001 From: Stefano Brivio Date: Tue, 14 Sep 2021 16:50:09 +0200 Subject: tcp: Don't mistake a FIN segment with no data for a Fast Retransmit request It carries no data and usually duplicates the previous ACK sequence, but it's just a FIN. Signed-off-by: Stefano Brivio --- tcp.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'tcp.c') diff --git a/tcp.c b/tcp.c index baf3c08..9f9b62d 100644 --- a/tcp.c +++ b/tcp.c @@ -2007,7 +2007,8 @@ static void tcp_data_from_tap(struct ctx *c, struct tcp_tap_conn *conn, ack_seq - max_ack_seq < MAX_WINDOW) { /* Fast re-transmit */ - retr = !len && ack_seq == max_ack_seq && + retr = !len && !th->fin && + ack_seq == max_ack_seq && max_ack_seq_wnd == ntohs(th->window); max_ack_seq_wnd = ntohs(th->window); -- cgit v1.2.3