From c7edfdf98753a0439dba5a74b20f38606cf1dd39 Mon Sep 17 00:00:00 2001 From: goldsimon Date: Fri, 25 Aug 2017 21:16:59 +0200 Subject: [PATCH] Fix bug #51765 and fix commit 90873d6: call tcp_rexmit_fast() more than once on dupacks since the actual transmission is guarded by TF_INFR, not by pcb->dupacks --- src/core/tcp_in.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/core/tcp_in.c b/src/core/tcp_in.c index 53c61b14..c15a4099 100644 --- a/src/core/tcp_in.c +++ b/src/core/tcp_in.c @@ -1157,7 +1157,8 @@ tcp_receive(struct tcp_pcb *pcb) if (pcb->dupacks > 3) { /* Inflate the congestion window */ TCP_WND_INC(pcb->cwnd, pcb->mss); - } else if (pcb->dupacks >= 3) { + } + if (pcb->dupacks >= 3) { /* Do fast retransmit (checked via TF_INFR, not via dupacks count) */ tcp_rexmit_fast(pcb); }