mirror of
https://github.com/lwip-tcpip/lwip.git
synced 2024-12-28 09:19:53 +00:00
fixed bug #44766 (LWIP_WND_SCALE: tcphdr->wnd was not scaled in two places)
This commit is contained in:
parent
7c47c917b5
commit
4ff1eb1890
@ -229,6 +229,10 @@ HISTORY
|
||||
|
||||
++ Bugfixes:
|
||||
|
||||
2015-03-21: Simon Goldschmidt (patch by Homyak)
|
||||
* tcp_in.c: fixed bug #44766 (LWIP_WND_SCALE: tcphdr->wnd was not scaled in
|
||||
two places)
|
||||
|
||||
2015-03-21: Simon Goldschmidt
|
||||
* tcp_impl.h, tcp.c, tcp_in.c: fixed bug #41318 (Bad memory ref in tcp_input()
|
||||
after tcp_close())
|
||||
|
@ -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",
|
||||
|
Loading…
Reference in New Issue
Block a user