mirror of
https://git.savannah.nongnu.org/git/lwip.git
synced 2026-08-10 01:23:48 +08:00
fixed bug #44766 (LWIP_WND_SCALE: tcphdr->wnd was not scaled in two places)
This commit is contained in:
@@ -967,7 +967,7 @@ tcp_receive(struct tcp_pcb *pcb)
|
||||
/* Update window. */
|
||||
if (TCP_SEQ_LT(pcb->snd_wl1, seqno) ||
|
||||
(pcb->snd_wl1 == seqno && TCP_SEQ_LT(pcb->snd_wl2, ackno)) ||
|
||||
(pcb->snd_wl2 == ackno && tcphdr->wnd > pcb->snd_wnd)) {
|
||||
(pcb->snd_wl2 == ackno && SND_WND_SCALE(pcb, tcphdr->wnd) > pcb->snd_wnd)) {
|
||||
pcb->snd_wnd = SND_WND_SCALE(pcb, tcphdr->wnd);
|
||||
/* keep track of the biggest window announced by the remote host to calculate
|
||||
the maximum segment size */
|
||||
@@ -989,7 +989,7 @@ tcp_receive(struct tcp_pcb *pcb)
|
||||
LWIP_DEBUGF(TCP_WND_DEBUG, ("tcp_receive: window update %"U16_F"\n", pcb->snd_wnd));
|
||||
#if TCP_WND_DEBUG
|
||||
} else {
|
||||
if (pcb->snd_wnd != tcphdr->wnd) {
|
||||
if (pcb->snd_wnd != SND_WND_SCALE(pcb, tcphdr->wnd)) {
|
||||
LWIP_DEBUGF(TCP_WND_DEBUG,
|
||||
("tcp_receive: no window update lastack %"U32_F" ackno %"
|
||||
U32_F" wl1 %"U32_F" seqno %"U32_F" wl2 %"U32_F"\n",
|
||||
|
||||
Reference in New Issue
Block a user