Fix the handling of TCP FIN-segments in the CLOSED state
When a TCP segment with the FIN bit set was received in the CLOSED state, a TCP RST-ACK-segment is sent. When computing SEG.ACK for this, the FIN counts as one byte. This accounting was missing and is fixed by this patch. Reviewed by: hiren MFC after: 1 month Sponsored by: Netflix, Inc. Differential Revision: https://svn.freebsd.org/base/head
This commit is contained in:
parent
d6d35f1561
commit
4ddd5aadea
@ -3357,6 +3357,8 @@ tcp_dropwithreset(struct mbuf *m, struct tcphdr *th, struct tcpcb *tp,
|
||||
} else {
|
||||
if (th->th_flags & TH_SYN)
|
||||
tlen++;
|
||||
if (th->th_flags & TH_FIN)
|
||||
tlen++;
|
||||
tcp_respond(tp, mtod(m, void *), th, m, th->th_seq+tlen,
|
||||
(tcp_seq)0, TH_RST|TH_ACK);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user