Rollup merge of #119026 - devnexen:listener_upd, r=Mark-Simulacrum
std::net::bind using -1 for openbsd which in turn sets it to somaxconn. trusting platform's SOMAXCONN instead of hardcoding to 128 otherwise.
This commit is contained in:
commit
d134a4fe60
1 changed files with 12 additions and 2 deletions
|
@ -73,8 +73,18 @@ impl UnixListener {
|
|||
unsafe {
|
||||
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 };
|
||||
#[cfg(any(target_os = "windows", target_os = "redox"))]
|
||||
const backlog: libc::c_int = 128;
|
||||
#[cfg(any(target_os = "linux", target_os = "freebsd", target_os = "openbsd"))]
|
||||
const backlog: libc::c_int = -1;
|
||||
#[cfg(not(any(
|
||||
target_os = "windows",
|
||||
target_os = "redox",
|
||||
target_os = "linux",
|
||||
target_os = "freebsd",
|
||||
target_os = "openbsd"
|
||||
)))]
|
||||
const backlog: libc::c_int = 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))?;
|
||||
|
|
Loading…
Add table
Reference in a new issue