summaryrefslogtreecommitdiff
path: root/sys/kern
diff options
context:
space:
mode:
authorPaul Traina <pst@FreeBSD.org>1996-09-19 08:19:00 +0000
committerPaul Traina <pst@FreeBSD.org>1996-09-19 08:19:00 +0000
commitce0a993ca4cff1a8fce1823021eb2afe325e10ae (patch)
tree247cdd92df7fee16cec529e1ee5f82e78d79b15b /sys/kern
parentfbb8be5c8f70dd7e1c4c16ac67760abcb6652ec6 (diff)
Notes
Diffstat (limited to 'sys/kern')
-rw-r--r--sys/kern/kern_sysctl.c5
-rw-r--r--sys/kern/uipc_socket2.c7
2 files changed, 9 insertions, 3 deletions
diff --git a/sys/kern/kern_sysctl.c b/sys/kern/kern_sysctl.c
index 3bc26236edb5..0d337878d167 100644
--- a/sys/kern/kern_sysctl.c
+++ b/sys/kern/kern_sysctl.c
@@ -34,7 +34,7 @@
* SUCH DAMAGE.
*
* @(#)kern_sysctl.c 8.4 (Berkeley) 4/14/94
- * $Id: kern_sysctl.c,v 1.25.4.5 1996/05/31 08:04:10 peter Exp $
+ * $Id: kern_sysctl.c,v 1.25.4.6 1996/06/04 02:46:09 davidg Exp $
*/
/*
@@ -183,6 +183,7 @@ extern int exec_usrstack;
extern int somaxconn;
extern u_long sb_max;
extern u_long sb_efficiency;
+extern int sominqueue;
/*
* kernel related system variables.
@@ -326,6 +327,8 @@ kern_sysctl(name, namelen, oldp, oldlenp, newp, newlen, p)
error = sysctl_int(oldp, oldlenp, newp, newlen, &intsb_efficiency);
sb_efficiency = intsb_efficiency;
return (error);
+ case KERN_SOMINQUEUE:
+ return(sysctl_int(oldp, oldlenp, newp, newlen, &sominqueue));
default:
return (EOPNOTSUPP);
}
diff --git a/sys/kern/uipc_socket2.c b/sys/kern/uipc_socket2.c
index b6c8cd9e903a..21b7949681a7 100644
--- a/sys/kern/uipc_socket2.c
+++ b/sys/kern/uipc_socket2.c
@@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* @(#)uipc_socket2.c 8.1 (Berkeley) 6/10/93
- * $Id: uipc_socket2.c,v 1.5.4.2 1996/05/31 08:04:12 peter Exp $
+ * $Id: uipc_socket2.c,v 1.5.4.4 1996/06/05 19:49:13 nate Exp $
*/
#include <sys/param.h>
@@ -61,6 +61,8 @@ u_long sb_max = SB_MAX; /* patchable */
u_long sb_efficiency = 8; /* parameter for sbreserve() */
+int sominqueue = 0; /* minimum queue override */
+
/*
* Procedures to manipulate state flags of socket
* and do appropriate wakeups. Normal sequence from the
@@ -162,7 +164,8 @@ sonewconn1(head, connstatus)
register struct socket *so;
int soqueue = connstatus ? 1 : 0;
- if (head->so_qlen + head->so_q0len > 3 * head->so_qlimit / 2)
+ if ((head->so_qlen + head->so_q0len > 3 * head->so_qlimit / 2) &&
+ (head->so_qlen + head->so_q0len > sominqueue))
return ((struct socket *)0);
MALLOC(so, struct socket *, sizeof(*so), M_SOCKET, M_DONTWAIT);
if (so == NULL)