svn commit: r260423 - stable/4/sys/netinet

Peter Wemm peter at FreeBSD.org
Tue Jan 7 23:04:06 UTC 2014


Author: peter
Date: Tue Jan  7 23:04:06 2014
New Revision: 260423
URL: http://svnweb.freebsd.org/changeset/base/260423

Log:
  MFC r258821 - fix tcp simultaneous close
  
  PR:             kern/99188

Modified:
  stable/4/sys/netinet/tcp_input.c

Modified: stable/4/sys/netinet/tcp_input.c
==============================================================================
--- stable/4/sys/netinet/tcp_input.c	Tue Jan  7 23:03:31 2014	(r260422)
+++ stable/4/sys/netinet/tcp_input.c	Tue Jan  7 23:04:06 2014	(r260423)
@@ -1705,13 +1705,15 @@ trimthenstep6:
 	case TCPS_TIME_WAIT:
 
 		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-other mailing list