From 743eb65cfe9a63adccce647af37d1cf3ac303828 Mon Sep 17 00:00:00 2001 From: David Carlier Date: Sat, 16 Dec 2023 20:37:57 +0000 Subject: [PATCH] std::net::bind using -1 for openbsd which in turn sets it to somaxconn. trusting platform's SOMAXCONN instead of hardcoding to 128 otherwise. --- library/std/src/os/unix/net/listener.rs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/library/std/src/os/unix/net/listener.rs b/library/std/src/os/unix/net/listener.rs index 5be8aebc70fd5..f4da569f5857c 100644 --- a/library/std/src/os/unix/net/listener.rs +++ b/library/std/src/os/unix/net/listener.rs @@ -74,7 +74,15 @@ impl UnixListener { let inner = Socket::new_raw(libc::AF_UNIX, libc::SOCK_STREAM)?; let (addr, len) = sockaddr_un(path.as_ref())?; const backlog: libc::c_int = - if cfg!(any(target_os = "linux", target_os = "freebsd")) { -1 } else { 128 }; + if cfg!(any(target_os = "linux", target_os = "freebsd", target_os = "openbsd")) { + -1 + } else if cfg!(target_os = "redox") { + // redox's relibc defines as 128 + // FIXME: adding to libc's crate + 128 + } else { + libc::SOMAXCONN + }; cvt(libc::bind(inner.as_inner().as_raw_fd(), &addr as *const _ as *const _, len as _))?; cvt(libc::listen(inner.as_inner().as_raw_fd(), backlog))?;