diff options
| author | David Carlier <devnexen@gmail.com> | 2022-06-10 19:54:53 +0100 |
|---|---|---|
| committer | David Carlier <devnexen@gmail.com> | 2022-06-10 19:54:53 +0100 |
| commit | 5454bca1b4b14706529e496ae6df8069682d24ae (patch) | |
| tree | 83659d953cd166d221cba8b6707e5e9743ce053c | |
| parent | ec55c61305eaf385fc1b93ac9a78284b4d887fe5 (diff) | |
| download | rust-5454bca1b4b14706529e496ae6df8069682d24ae.tar.gz rust-5454bca1b4b14706529e496ae6df8069682d24ae.zip | |
net listen backlog set to negative on Linux.
it will be 4076 (from 5.4) or 128.
| -rw-r--r-- | library/std/src/os/unix/net/listener.rs | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/library/std/src/os/unix/net/listener.rs b/library/std/src/os/unix/net/listener.rs index 8e11d32f130..3b31c000f25 100644 --- a/library/std/src/os/unix/net/listener.rs +++ b/library/std/src/os/unix/net/listener.rs @@ -73,9 +73,13 @@ impl UnixListener { unsafe { let inner = Socket::new_raw(libc::AF_UNIX, libc::SOCK_STREAM)?; let (addr, len) = sockaddr_un(path.as_ref())?; + #[cfg(target_os = "linux")] + const backlog: libc::c_int = -1; + #[cfg(not(target_os = "linux"))] + const backlog: libc::c_int = 128; 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(), 128))?; + cvt(libc::listen(inner.as_inner().as_raw_fd(), backlog))?; Ok(UnixListener(inner)) } @@ -109,12 +113,16 @@ impl UnixListener { pub fn bind_addr(socket_addr: &SocketAddr) -> io::Result<UnixListener> { unsafe { let inner = Socket::new_raw(libc::AF_UNIX, libc::SOCK_STREAM)?; + #[cfg(target_os = "linux")] + const backlog: libc::c_int = -1; + #[cfg(not(target_os = "linux"))] + const backlog: libc::c_int = 128; cvt(libc::bind( inner.as_raw_fd(), &socket_addr.addr as *const _ as *const _, socket_addr.len as _, ))?; - cvt(libc::listen(inner.as_raw_fd(), 128))?; + cvt(libc::listen(inner.as_raw_fd(), backlog))?; Ok(UnixListener(inner)) } } |
