On 2/6/13 6:12 PM, Ian Lepore wrote:
On Wed, 2013-02-06 at 13:16 +, Andrey Zonov wrote:
Author: zont
Date: Wed Feb 6 13:16:43 2013
New Revision: 246402
URL: http://svnweb.freebsd.org/changeset/base/246402
Log:
MFC r245696:
- Force inetd to have listen queue size to be set to the value of
kern.ipc.somaxconn instead of hardcoded value 64.
Modified:
stable/9/usr.sbin/inetd/inetd.c
Directory Properties:
stable/9/usr.sbin/inetd/ (props changed)
Modified: stable/9/usr.sbin/inetd/inetd.c
==
--- stable/9/usr.sbin/inetd/inetd.c Wed Feb 6 13:14:30 2013
(r246401)
+++ stable/9/usr.sbin/inetd/inetd.c Wed Feb 6 13:16:43 2013
(r246402)
@@ -1387,7 +1387,7 @@ setsockopt(fd, SOL_SOCKET, opt, (char *)
}
}
if (sep-se_socktype == SOCK_STREAM)
-listen(sep-se_fd, 64);
+listen(sep-se_fd, -1);
enable(sep);
if (debug) {
warnx(registered %s on %d,
I recently discovered that the posix documentation for listen(2) states
that a queue depth less than zero is to be treated as if zero were
specified, and the behavior for zero is to minimize the length of the
queue to the smallest value the implementation supports (with words that
imply the desired (but not required) effect is to stop listening if
possible).
Hm, I could not imagine that POSIX creates new shiny bike for that.
Given that, perhaps it's unwise to expand the amount of code we've got
that relies on this freebsd-specific non-conformance?
I think it is BSD-specific and I like -1 more than INT_MAX here.
Note that Linux is going crazy when you set backlog more than system limit.
--
Andrey Zonov
signature.asc
Description: OpenPGP digital signature