Initialise snd_wl1 to seqno - 1 to force window update. Causes bug for uni-directional traffic.

This commit is contained in:
kieranm 2003-09-23 08:33:16 +00:00
parent dff08f9739
commit 8668c2f254

View File

@ -451,7 +451,7 @@ tcp_listen_input(struct tcp_pcb_listen *pcb)
npcb->rcv_nxt = seqno + 1; npcb->rcv_nxt = seqno + 1;
npcb->snd_wnd = tcphdr->wnd; npcb->snd_wnd = tcphdr->wnd;
npcb->ssthresh = npcb->snd_wnd; npcb->ssthresh = npcb->snd_wnd;
npcb->snd_wl1 = seqno; npcb->snd_wl1 = seqno - 1;/* initialise to seqno-1 to force window update */
npcb->callback_arg = pcb->callback_arg; npcb->callback_arg = pcb->callback_arg;
#if LWIP_CALLBACK_API #if LWIP_CALLBACK_API
npcb->accept = pcb->accept; npcb->accept = pcb->accept;
@ -555,7 +555,8 @@ tcp_process(struct tcp_pcb *pcb)
ackno == ntohl(pcb->unacked->tcphdr->seqno) + 1) { ackno == ntohl(pcb->unacked->tcphdr->seqno) + 1) {
pcb->rcv_nxt = seqno + 1; pcb->rcv_nxt = seqno + 1;
pcb->lastack = ackno; pcb->lastack = ackno;
pcb->snd_wnd = pcb->snd_wl1 = tcphdr->wnd; pcb->snd_wnd = tcphdr->wnd;
pcb->snd_wl1 = seqno - 1; /* initialise to seqno - 1 to force window update */
pcb->state = ESTABLISHED; pcb->state = ESTABLISHED;
pcb->cwnd = pcb->mss; pcb->cwnd = pcb->mss;
--pcb->snd_queuelen; --pcb->snd_queuelen;