From da181cc144ae150c0ec9497faafcb26da68af07c Mon Sep 17 00:00:00 2001 From: Bruce M Simpson Date: Fri, 18 Jun 2004 02:47:59 +0000 Subject: [PATCH] Don't set FIN on a retransmitted segment after a FIN has been sent, unless the segment really contains the last of the data for the stream. PR: kern/34619 Obtained from: OpenBSD (tcp_output.c rev 1.47) Noticed by: Joseph Ishac Reviewed by: George Neville-Neil --- sys/netinet/tcp_output.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/netinet/tcp_output.c b/sys/netinet/tcp_output.c index 46d9337caf0..7d48eefbe20 100644 --- a/sys/netinet/tcp_output.c +++ b/sys/netinet/tcp_output.c @@ -292,7 +292,7 @@ again: len = tp->t_maxseg; sendalot = 1; } - if (SEQ_LT(tp->snd_nxt + len, tp->snd_una + so->so_snd.sb_cc)) + if (off + len < so->so_snd.sb_cc) flags &= ~TH_FIN; recwin = sbspace(&so->so_rcv);