mirror of
https://github.com/lwip-tcpip/lwip.git
synced 2024-10-03 21:32:08 +00:00
2008-01-15 Kieran Mansley
* tcp_out.c: BUG20511. Modify persist timer to start when we are prevented from sending by a small send window, not just a zero send window.
This commit is contained in:
parent
7518acf634
commit
6f00cbb6ef
@ -592,6 +592,12 @@ HISTORY
|
|||||||
|
|
||||||
++ Bug fixes:
|
++ Bug fixes:
|
||||||
|
|
||||||
|
|
||||||
|
2008-01-15 Kieran Mansley
|
||||||
|
* tcp_out.c: BUG20511. Modify persist timer to start when we are
|
||||||
|
prevented from sending by a small send window, not just a zero
|
||||||
|
send window.
|
||||||
|
|
||||||
2008-01-09 Jonathan Larmour
|
2008-01-09 Jonathan Larmour
|
||||||
* opt.h, ip.c: Rename IP_OPTIONS define to IP_OPTIONS_ALLOWED to avoid
|
* opt.h, ip.c: Rename IP_OPTIONS define to IP_OPTIONS_ALLOWED to avoid
|
||||||
conflict with Linux system headers.
|
conflict with Linux system headers.
|
||||||
|
@ -510,11 +510,7 @@ tcp_output(struct tcp_pcb *pcb)
|
|||||||
ntohl(seg->tcphdr->seqno), pcb->lastack));
|
ntohl(seg->tcphdr->seqno), pcb->lastack));
|
||||||
}
|
}
|
||||||
#endif /* TCP_CWND_DEBUG */
|
#endif /* TCP_CWND_DEBUG */
|
||||||
if (seg != NULL && pcb->snd_wnd == 0 && pcb->persist_backoff == 0) {
|
/* data available and window allows it to be sent? */
|
||||||
/* prepare for persist timer */
|
|
||||||
pcb->persist_cnt = 0;
|
|
||||||
pcb->persist_backoff = 1;
|
|
||||||
} /* data available and window allows it to be sent? */
|
|
||||||
while (seg != NULL &&
|
while (seg != NULL &&
|
||||||
ntohl(seg->tcphdr->seqno) - pcb->lastack + seg->len <= wnd) {
|
ntohl(seg->tcphdr->seqno) - pcb->lastack + seg->len <= wnd) {
|
||||||
LWIP_ASSERT("RST not expected here!",
|
LWIP_ASSERT("RST not expected here!",
|
||||||
@ -579,6 +575,14 @@ tcp_output(struct tcp_pcb *pcb)
|
|||||||
}
|
}
|
||||||
seg = pcb->unsent;
|
seg = pcb->unsent;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (seg != NULL && pcb->persist_backoff == 0 &&
|
||||||
|
ntohl(seg->tcphdr->seqno) - pcb->lastack + seg->len > pcb->snd_wnd) {
|
||||||
|
/* prepare for persist timer */
|
||||||
|
pcb->persist_cnt = 0;
|
||||||
|
pcb->persist_backoff = 1;
|
||||||
|
}
|
||||||
|
|
||||||
pcb->flags &= ~TF_NAGLEMEMERR;
|
pcb->flags &= ~TF_NAGLEMEMERR;
|
||||||
return ERR_OK;
|
return ERR_OK;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user