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;