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