diff --git a/CHANGELOG b/CHANGELOG index 2859a03c..b8400536 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -14,6 +14,10 @@ HISTORY ++ Bugfixes: + 2016-11-28: Ambroz Bizjak + * tcpi_in.c: fixed bug #49717 (window size in received SYN and SYN-ACK + assumed scaled) + 2016-11-25: Simon Goldschmidt * dhcp.c: fixed bug #49676 (Possible endless loop when parsing dhcp options) diff --git a/src/core/tcp_in.c b/src/core/tcp_in.c index 93268b34..7f42f577 100644 --- a/src/core/tcp_in.c +++ b/src/core/tcp_in.c @@ -602,7 +602,7 @@ tcp_listen_input(struct tcp_pcb_listen *pcb) /* Parse any options in the SYN. */ tcp_parseopt(npcb); - npcb->snd_wnd = SND_WND_SCALE(npcb, tcphdr->wnd); + npcb->snd_wnd = tcphdr->wnd; npcb->snd_wnd_max = npcb->snd_wnd; npcb->ssthresh = LWIP_TCP_INITIAL_SSTHRESH(npcb); @@ -751,7 +751,7 @@ tcp_process(struct tcp_pcb *pcb) pcb->rcv_nxt = seqno + 1; pcb->rcv_ann_right_edge = pcb->rcv_nxt; pcb->lastack = ackno; - pcb->snd_wnd = SND_WND_SCALE(pcb, tcphdr->wnd); + pcb->snd_wnd = tcphdr->wnd; pcb->snd_wnd_max = pcb->snd_wnd; pcb->snd_wl1 = seqno - 1; /* initialise to seqno - 1 to force window update */ pcb->state = ESTABLISHED;