From f57c2424cf798bf83e3afe25a598cdb48aca03b6 Mon Sep 17 00:00:00 2001 From: goldsimon Date: Mon, 26 Nov 2007 19:08:39 +0000 Subject: [PATCH] Fixed bug #21582: pcb->acked accounting can be wrong when ACKs arrive out-of-order --- CHANGELOG | 4 ++++ src/core/tcp_in.c | 3 +++ 2 files changed, 7 insertions(+) diff --git a/CHANGELOG b/CHANGELOG index d9f8d449..e2f3b686 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -499,6 +499,10 @@ HISTORY ++ Bug fixes: + 2007-11-26 Simon Goldschmidt + * tcp_in.c: Fixed bug #21582: pcb->acked accounting can be wrong when ACKs + arrive out-of-order + 2007-11-21 Simon Goldschmidt * tcp.h, tcp_out.c, api_msg.c: Fixed bug #20287: tcp_output_nagle sends too early Fixed the nagle algorithm; nagle now also works for all raw API applications diff --git a/src/core/tcp_in.c b/src/core/tcp_in.c index fac1f8cf..1fcb10a6 100644 --- a/src/core/tcp_in.c +++ b/src/core/tcp_in.c @@ -833,6 +833,9 @@ tcp_receive(struct tcp_pcb *pcb) pcb->rtime = 0; pcb->polltmr = 0; + } else { + /* Fix bug bug #21582: out of sequence ACK, didn't really ack anything */ + pcb->acked = 0; } /* We go through the ->unsent list to see if any of the segments