mirror of
https://github.com/lwip-tcpip/lwip.git
synced 2025-12-26 09:08:34 +00:00
Fixed bug #27504: tcp_enqueue wrongly concatenates segments which are not consecutive when retransmitting unacked segments
This commit is contained in:
@@ -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 */
|
||||||
|
|||||||
Reference in New Issue
Block a user