Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 20 Oct 2012 12:53:14 +0000 (UTC)
From:      Andre Oppermann <andre@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r241781 - in head: lib/libc/sys sys/kern
Message-ID:  <201210201253.q9KCrEFf030454@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: andre
Date: Sat Oct 20 12:53:14 2012
New Revision: 241781
URL: http://svn.freebsd.org/changeset/base/241781

Log:
  Hide the unfortunate named sysctl kern.ipc.somaxconn from sysctl -a
  output and replace it with a new visible sysctl kern.ipc.acceptqueue
  of the same functionality.  It specifies the maximum length of the
  accept queue on a listen socket.
  
  The old kern.ipc.somaxconn remains available for reading and writing
  for compatibility reasons so that existing programs, scripts and
  configurations continue to work.  There no plans to ever remove the
  orginal and now hidden kern.ipc.somaxconn.

Modified:
  head/lib/libc/sys/listen.2
  head/sys/kern/uipc_socket.c

Modified: head/lib/libc/sys/listen.2
==============================================================================
--- head/lib/libc/sys/listen.2	Sat Oct 20 12:07:48 2012	(r241780)
+++ head/lib/libc/sys/listen.2	Sat Oct 20 12:53:14 2012	(r241781)
@@ -28,7 +28,7 @@
 .\"	From: @(#)listen.2	8.2 (Berkeley) 12/11/93
 .\" $FreeBSD$
 .\"
-.Dd August 29, 2005
+.Dd October 20, 2012
 .Dt LISTEN 2
 .Os
 .Sh NAME
@@ -102,15 +102,15 @@ of service attacks are no longer necessa
 The
 .Xr sysctl 3
 MIB variable
-.Va kern.ipc.somaxconn
+.Va kern.ipc.soacceptqueue
 specifies a hard limit on
 .Fa backlog ;
 if a value greater than
-.Va kern.ipc.somaxconn
+.Va kern.ipc.soacceptqueue
 or less than zero is specified,
 .Fa backlog
 is silently forced to
-.Va kern.ipc.somaxconn .
+.Va kern.ipc.soacceptqueue .
 .Sh INTERACTION WITH ACCEPT FILTERS
 When accept filtering is used on a socket, a second queue will
 be used to hold sockets that have connected, but have not yet
@@ -168,3 +168,17 @@ at run-time, and to use a negative
 .Fa backlog
 to request the maximum allowable value, was introduced in
 .Fx 2.2 .
+The
+.Va kern.ipc.somaxconn
+.Xr sysctl 3
+has been replaced with
+.Va kern.ipc.soacceptqueue
+in
+.Fx 10.0
+to prevent confusion its actual functionality.
+The original
+.Xr sysctl 3
+.Va kern.ipc.somaxconn
+is still available but hidden from a
+.Xr sysctl 3
+-a output so that existing applications and scripts continue to work.

Modified: head/sys/kern/uipc_socket.c
==============================================================================
--- head/sys/kern/uipc_socket.c	Sat Oct 20 12:07:48 2012	(r241780)
+++ head/sys/kern/uipc_socket.c	Sat Oct 20 12:53:14 2012	(r241781)
@@ -185,6 +185,8 @@ MALLOC_DEFINE(M_PCB, "pcb", "protocol co
 /*
  * Limit on the number of connections in the listen queue waiting
  * for accept(2).
+ * NB: The orginal sysctl somaxconn is still available but hidden
+ * to prevent confusion about the actually purpose of this number.
  */
 static int somaxconn = SOMAXCONN;
 
@@ -205,9 +207,13 @@ sysctl_somaxconn(SYSCTL_HANDLER_ARGS)
 	somaxconn = val;
 	return (0);
 }
-SYSCTL_PROC(_kern_ipc, KIPC_SOMAXCONN, somaxconn, CTLTYPE_UINT | CTLFLAG_RW,
+SYSCTL_PROC(_kern_ipc, OID_AUTO, soacceptqueue, CTLTYPE_UINT | CTLFLAG_RW,
     0, sizeof(int), sysctl_somaxconn, "I",
     "Maximum listen socket pending connection accept queue size");
+SYSCTL_PROC(_kern_ipc, KIPC_SOMAXCONN, somaxconn,
+    CTLTYPE_UINT | CTLFLAG_RW | CTLFLAG_SKIP,
+    0, sizeof(int), sysctl_somaxconn, "I",
+    "Maximum listen socket pending connection accept queue size (compat)");
 
 static int numopensockets;
 SYSCTL_INT(_kern_ipc, OID_AUTO, numopensockets, CTLFLAG_RD,



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