mirror of
https://github.com/lwip-tcpip/lwip.git
synced 2024-11-19 05:10:40 +00:00
Fixed bug #26251: RST process in TIME_WAIT TCP state
This commit is contained in:
parent
65d1f52423
commit
18ab274af3
@ -43,6 +43,9 @@ HISTORY
|
|||||||
|
|
||||||
++ Bugfixes:
|
++ Bugfixes:
|
||||||
|
|
||||||
|
2009-10-22: Simon Goldschmidt
|
||||||
|
* tcp_in.c: Fixed bug #26251: RST process in TIME_WAIT TCP state
|
||||||
|
|
||||||
2009-10-21: Simon Goldschmidt
|
2009-10-21: Simon Goldschmidt
|
||||||
* tcp_in.c: Fixed bug #27215: TCP sent() callback gives leading and
|
* tcp_in.c: Fixed bug #27215: TCP sent() callback gives leading and
|
||||||
trailing 1 byte len (SYN/FIN)
|
trailing 1 byte len (SYN/FIN)
|
||||||
|
@ -480,14 +480,14 @@ tcp_listen_input(struct tcp_pcb_listen *pcb)
|
|||||||
static err_t
|
static err_t
|
||||||
tcp_timewait_input(struct tcp_pcb *pcb)
|
tcp_timewait_input(struct tcp_pcb *pcb)
|
||||||
{
|
{
|
||||||
if (TCP_SEQ_GT(seqno + tcplen, pcb->rcv_nxt)) {
|
u16_t flags = TCPH_FLAGS(tcphdr);
|
||||||
pcb->rcv_nxt = seqno + tcplen;
|
/* RFC 1337: in TIME_WAIT, ignore RST and ACK FINs + any 'acceptable' segments */
|
||||||
}
|
if (((flags & TCP_RST) == 0) && ((flags & TCP_FIN) || (tcplen > 0))) {
|
||||||
if (tcplen > 0) {
|
pcb->flags |= TF_ACK_NOW;
|
||||||
tcp_ack_now(pcb);
|
|
||||||
}
|
|
||||||
return tcp_output(pcb);
|
return tcp_output(pcb);
|
||||||
}
|
}
|
||||||
|
return ERR_OK;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Implements the TCP state machine. Called by tcp_input. In some
|
* Implements the TCP state machine. Called by tcp_input. In some
|
||||||
|
Loading…
Reference in New Issue
Block a user