diff options
| author | Paul Traina <pst@FreeBSD.org> | 1996-09-19 08:19:00 +0000 |
|---|---|---|
| committer | Paul Traina <pst@FreeBSD.org> | 1996-09-19 08:19:00 +0000 |
| commit | ce0a993ca4cff1a8fce1823021eb2afe325e10ae (patch) | |
| tree | 247cdd92df7fee16cec529e1ee5f82e78d79b15b /sys/kern | |
| parent | fbb8be5c8f70dd7e1c4c16ac67760abcb6652ec6 (diff) | |
Notes
Diffstat (limited to 'sys/kern')
| -rw-r--r-- | sys/kern/kern_sysctl.c | 5 | ||||
| -rw-r--r-- | sys/kern/uipc_socket2.c | 7 |
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) |
