mirror of
https://git.savannah.nongnu.org/git/lwip.git
synced 2025-08-03 04:54:38 +08:00
Fixed bug #27504: tcp_enqueue wrongly concatenates segments which are not consecutive when retransmitting unacked segments
This commit is contained in:
parent
c0e22c255c
commit
ac638c85f3
@ -43,6 +43,10 @@ HISTORY
|
|||||||
|
|
||||||
++ Bugfixes:
|
++ Bugfixes:
|
||||||
|
|
||||||
|
2009-10-11 Simon Goldschmidt (Jörg Kesten)
|
||||||
|
* tcp_out.c: Fixed bug #27504: tcp_enqueue wrongly concatenates segments
|
||||||
|
which are not consecutive when retransmitting unacked segments
|
||||||
|
|
||||||
2009-10-09 Simon Goldschmidt
|
2009-10-09 Simon Goldschmidt
|
||||||
* opt.h: Fixed default values of some stats to only be enabled if used
|
* opt.h: Fixed default values of some stats to only be enabled if used
|
||||||
Fixes bug #27338: sys_stats is defined when NO_SYS = 1
|
Fixes bug #27338: sys_stats is defined when NO_SYS = 1
|
||||||
|
@ -347,7 +347,9 @@ tcp_enqueue(struct tcp_pcb *pcb, void *arg, u16_t len,
|
|||||||
/* fit within max seg size */
|
/* fit within max seg size */
|
||||||
(useg->len + queue->len <= pcb->mss) &&
|
(useg->len + queue->len <= pcb->mss) &&
|
||||||
/* only concatenate segments with the same options */
|
/* only concatenate segments with the same options */
|
||||||
(useg->flags == queue->flags)) {
|
(useg->flags == queue->flags) &&
|
||||||
|
/* segments are consecutive */
|
||||||
|
(ntohl(useg->tcphdr->seqno) + useg->len == ntohl(queue->tcphdr->seqno)) ) {
|
||||||
/* Remove TCP header from first segment of our to-be-queued list */
|
/* Remove TCP header from first segment of our to-be-queued list */
|
||||||
if(pbuf_header(queue->p, -(TCP_HLEN + optlen))) {
|
if(pbuf_header(queue->p, -(TCP_HLEN + optlen))) {
|
||||||
/* Can we cope with this failing? Just assert for now */
|
/* Can we cope with this failing? Just assert for now */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user