git: bc0d40767636 - main - Revert "listen(): improve POSIX compliance"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Wed, 12 Oct 2022 07:17:13 UTC
The branch main has been updated by tuexen: URL: https://cgit.FreeBSD.org/src/commit/?id=bc0d4076763624df7c3ab35862bc571a3cf80748 commit bc0d4076763624df7c3ab35862bc571a3cf80748 Author: Michael Tuexen <tuexen@FreeBSD.org> AuthorDate: 2022-10-12 02:33:00 +0000 Commit: Michael Tuexen <tuexen@FreeBSD.org> CommitDate: 2022-10-12 02:33:00 +0000 Revert "listen(): improve POSIX compliance" This reverts commit 76e6e4d72f8d3da7d19242f303bc95461fde7fb9. Several programs in the tree use -1 instead of INT_MAX to use the maximum value. Thanks to Eugene Grosbein for pointing this out. --- lib/libc/sys/listen.2 | 12 ++---------- sys/kern/uipc_socket.c | 4 +--- 2 files changed, 3 insertions(+), 13 deletions(-) diff --git a/lib/libc/sys/listen.2 b/lib/libc/sys/listen.2 index ad4d6edf228f..4d0962fd412c 100644 --- a/lib/libc/sys/listen.2 +++ b/lib/libc/sys/listen.2 @@ -28,7 +28,7 @@ .\" From: @(#)listen.2 8.2 (Berkeley) 12/11/93 .\" $FreeBSD$ .\" -.Dd October 11, 2022 +.Dd April 14, 2020 .Dt LISTEN 2 .Os .Sh NAME @@ -106,13 +106,10 @@ specifies a hard limit on .Fa backlog ; if a value greater than .Va kern.ipc.soacceptqueue -is specified, +or less than zero is specified, .Fa backlog is silently forced to .Va kern.ipc.soacceptqueue . -If a negative value is used, -.Fa backlog -is silently forced to 0. .Pp If the listen queue overflows, the kernel will emit a LOG_DEBUG syslog message. The @@ -194,8 +191,3 @@ The original is still available but hidden from a .Xr sysctl 3 -a output so that existing applications and scripts continue to work. -To improve POSIX compliance, a negative -.Fa backlog -argument is handled the same as 0. -This was introduced in -.Fx 14.0 . diff --git a/sys/kern/uipc_socket.c b/sys/kern/uipc_socket.c index ff2ecadfb22a..7e1d2c910dbd 100644 --- a/sys/kern/uipc_socket.c +++ b/sys/kern/uipc_socket.c @@ -1075,9 +1075,7 @@ solisten_proto(struct socket *so, int backlog) so->so_options |= SO_ACCEPTCONN; listening: - if (backlog < 0) - backlog = 0; - if (backlog > somaxconn) + if (backlog < 0 || backlog > somaxconn) backlog = somaxconn; so->sol_qlimit = backlog;