Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 17 Nov 2009 16:17:40 +0000 (UTC)
From:      John Baldwin <jhb@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
Subject:   svn commit: r199401 - stable/7/sys/netinet
Message-ID:  <200911171617.nAHGHeCM020886@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: jhb
Date: Tue Nov 17 16:17:39 2009
New Revision: 199401
URL: http://svn.freebsd.org/changeset/base/199401

Log:
  MFC 198990:
  Several years ago a feature was added to TCP that casued soreceive() to
  send an ACK right away if data was drained from a TCP socket that had
  previously advertised a zero-sized window.  The current code requires the
  receive window to be exactly zero for this to kick in.  If window scaling is
  enabled and the window is smaller than the scale, then the effective window
  that is advertised is zero.  However, in that case the zero-sized window
  handling is not enabled because the window is not exactly zero.  The fix
  changes the code to check the raw window value against zero.

Modified:
  stable/7/sys/netinet/tcp_output.c
Directory Properties:
  stable/7/sys/   (props changed)
  stable/7/sys/contrib/pf/   (props changed)

Modified: stable/7/sys/netinet/tcp_output.c
==============================================================================
--- stable/7/sys/netinet/tcp_output.c	Tue Nov 17 16:17:11 2009	(r199400)
+++ stable/7/sys/netinet/tcp_output.c	Tue Nov 17 16:17:39 2009	(r199401)
@@ -939,7 +939,7 @@ send:
 	 * to read more data then can be buffered prior to transmitting on
 	 * the connection.
 	 */
-	if (recwin == 0)
+	if (th->th_win == 0)
 		tp->t_flags |= TF_RXWIN0SENT;
 	else
 		tp->t_flags &= ~TF_RXWIN0SENT;



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200911171617.nAHGHeCM020886>