mirror of
https://github.com/lwip-tcpip/lwip.git
synced 2024-11-17 17:10:03 +00: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:
|
||||
|
||||
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
|
||||
* 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
|
||||
|
@ -347,7 +347,9 @@ tcp_enqueue(struct tcp_pcb *pcb, void *arg, u16_t len,
|
||||
/* fit within max seg size */
|
||||
(useg->len + queue->len <= pcb->mss) &&
|
||||
/* 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 */
|
||||
if(pbuf_header(queue->p, -(TCP_HLEN + optlen))) {
|
||||
/* Can we cope with this failing? Just assert for now */
|
||||
|
Loading…
Reference in New Issue
Block a user