summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorbms <bms@FreeBSD.org>2004-06-18 02:47:59 +0000
committerbms <bms@FreeBSD.org>2004-06-18 02:47:59 +0000
commit48317d5cbf6fc60d08d669d945662e451113a578 (patch)
tree92b7a0f0e1b54cf4b2f7a5864412dae67663e58a /sys
parentddf2ab11f4b789d38a12ccc49baa9a6781f11e80 (diff)
downloadFreeBSD-src-48317d5cbf6fc60d08d669d945662e451113a578.zip
FreeBSD-src-48317d5cbf6fc60d08d669d945662e451113a578.tar.gz
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
Diffstat (limited to 'sys')
-rw-r--r--sys/netinet/tcp_output.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/netinet/tcp_output.c b/sys/netinet/tcp_output.c
index 46d9337..7d48eef 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);
OpenPOWER on IntegriCloud