netbsd: NetBSD ships with paccept(2) a superset of Linux-specific accept4()

[diwic: Moved paccept to #bsd line in configure.ac]
This commit is contained in:
Kamil Rytarowski 2015-11-21 23:08:23 +01:00 committed by David Henningsson
parent 30a9523b75
commit 3753f50755
2 changed files with 8 additions and 1 deletions

View file

@ -569,7 +569,7 @@ AC_CHECK_FUNCS_ONCE([ctime_r usleep])
AC_CHECK_FUNCS_ONCE([strerror_r]) AC_CHECK_FUNCS_ONCE([strerror_r])
# BSD # BSD
AC_CHECK_FUNCS_ONCE([lstat]) AC_CHECK_FUNCS_ONCE([lstat paccept])
# Non-standard # Non-standard
AC_CHECK_FUNCS_ONCE([setresuid setresgid setreuid setregid seteuid setegid ppoll strsignal sig2str strtod_l pipe2 accept4]) AC_CHECK_FUNCS_ONCE([setresuid setresgid setreuid setregid seteuid setegid ppoll strsignal sig2str strtod_l pipe2 accept4])

View file

@ -3501,6 +3501,8 @@ finish:
int pa_accept_cloexec(int sockfd, struct sockaddr *addr, socklen_t *addrlen) { int pa_accept_cloexec(int sockfd, struct sockaddr *addr, socklen_t *addrlen) {
int fd; int fd;
errno = 0;
#ifdef HAVE_ACCEPT4 #ifdef HAVE_ACCEPT4
if ((fd = accept4(sockfd, addr, addrlen, SOCK_CLOEXEC)) >= 0) if ((fd = accept4(sockfd, addr, addrlen, SOCK_CLOEXEC)) >= 0)
goto finish; goto finish;
@ -3510,6 +3512,11 @@ int pa_accept_cloexec(int sockfd, struct sockaddr *addr, socklen_t *addrlen) {
#endif #endif
#ifdef HAVE_PACCEPT
if ((fd = paccept(sockfd, addr, addrlen, NULL, SOCK_CLOEXEC)) >= 0)
goto finish;
#endif
if ((fd = accept(sockfd, addr, addrlen)) >= 0) if ((fd = accept(sockfd, addr, addrlen)) >= 0)
goto finish; goto finish;