From e3bbec2745d54146c1cf5e144a8245c507311a79 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torbj=C3=B8rn=20Birch=20Moltu?= Date: Sun, 20 Oct 2019 18:17:01 +0200 Subject: [PATCH] Add accept4() for NetBSD, Illumos and Solaris References: * NetBSD (became available with 8.0): http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/sys/socket.h?annotate=1.129&only_with_tag=MAIN http://cvsweb.netbsd.org/bsdweb.cgi/src/lib/libc/sys/accept4.c?annotate=1.2&only_with_tag=MAIN * Illumos: https://illumos.org/man/3socket/accept https://github.com/illumos/illumos-gate/blob/master/usr/src/uts/common/sys/socket.h https://github.com/illumos/illumos-gate/blob/master/usr/src/lib/libsocket/socket/weaks.c * Solaris: https://docs.oracle.com/cd/E88353_01/html/E37843/accept-3c.html --- src/unix/bsd/netbsdlike/mod.rs | 6 ++++++ src/unix/bsd/netbsdlike/openbsd/mod.rs | 6 ------ src/unix/solarish/mod.rs | 6 ++++++ 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/src/unix/bsd/netbsdlike/mod.rs b/src/unix/bsd/netbsdlike/mod.rs index 970cb233a191a..976b95c2002c8 100644 --- a/src/unix/bsd/netbsdlike/mod.rs +++ b/src/unix/bsd/netbsdlike/mod.rs @@ -632,6 +632,12 @@ extern "C" { ) -> ::c_int; pub fn daemon(nochdir: ::c_int, noclose: ::c_int) -> ::c_int; + pub fn accept4( + s: ::c_int, + addr: *mut ::sockaddr, + addrlen: *mut ::socklen_t, + flags: ::c_int, + ) -> ::c_int; pub fn mincore( addr: *mut ::c_void, len: ::size_t, diff --git a/src/unix/bsd/netbsdlike/openbsd/mod.rs b/src/unix/bsd/netbsdlike/openbsd/mod.rs index 8e1bfcb578eb1..f77a424380ffc 100644 --- a/src/unix/bsd/netbsdlike/openbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/openbsd/mod.rs @@ -1393,12 +1393,6 @@ extern "C" { tp: *const ::timeval, tz: *const ::timezone, ) -> ::c_int; - pub fn accept4( - s: ::c_int, - addr: *mut ::sockaddr, - addrlen: *mut ::socklen_t, - flags: ::c_int, - ) -> ::c_int; pub fn execvpe( file: *const ::c_char, argv: *const *const ::c_char, diff --git a/src/unix/solarish/mod.rs b/src/unix/solarish/mod.rs index 35031df201422..f893374f31f29 100644 --- a/src/unix/solarish/mod.rs +++ b/src/unix/solarish/mod.rs @@ -2347,6 +2347,12 @@ extern "C" { msg: *mut ::msghdr, flags: ::c_int, ) -> ::ssize_t; + pub fn accept4( + fd: ::c_int, + address: *mut sockaddr, + address_len: *mut socklen_t, + flags: ::c_int + ) -> ::c_int; pub fn mq_open(name: *const ::c_char, oflag: ::c_int, ...) -> ::mqd_t; pub fn mq_close(mqd: ::mqd_t) -> ::c_int;