svn commit: r260422 - stable/6/sys/netinet
Peter Wemm
peter at FreeBSD.org
Tue Jan 7 23:03:31 UTC 2014
Author: peter
Date: Tue Jan 7 23:03:31 2014
New Revision: 260422
URL: http://svnweb.freebsd.org/changeset/base/260422
Log:
MFC r258821 - fix tcp simultaneous close
PR: kern/99188
Modified:
stable/6/sys/netinet/tcp_input.c
Modified: stable/6/sys/netinet/tcp_input.c
==============================================================================
--- stable/6/sys/netinet/tcp_input.c Tue Jan 7 23:02:50 2014 (r260421)
+++ stable/6/sys/netinet/tcp_input.c Tue Jan 7 23:03:31 2014 (r260422)
@@ -1858,13 +1858,15 @@ trimthenstep6:
(to.to_nsacks > 0 || !TAILQ_EMPTY(&tp->snd_holes)))
tcp_sack_doack(tp, &to, th->th_ack);
if (SEQ_LEQ(th->th_ack, tp->snd_una)) {
- if (tlen == 0 && tiwin == tp->snd_wnd) {
+ if (tlen == 0 && tiwin == tp->snd_wnd &&
+ !(thflags & TH_FIN)) {
tcpstat.tcps_rcvdupack++;
/*
* If we have outstanding data (other than
* a window probe), this is a completely
* duplicate ack (ie, window info didn't
- * change), the ack is the biggest we've
+ * change and FIN isn't set),
+ * the ack is the biggest we've
* seen and we've seen exactly our rexmt
* threshhold of them, assume a packet
* has been dropped and retransmit it.
More information about the svn-src-stable-6
mailing list