diff options
| author | Andreas Schneider <asn@cryptomilk.org> | 2013-07-08 19:24:56 +0200 |
|---|---|---|
| committer | Andreas Schneider <asn@cryptomilk.org> | 2013-07-08 19:24:56 +0200 |
| commit | 2a2e0cc2b2934a838d8bc92e4415aa6dea8672ef (patch) | |
| tree | 1abb7d57cddce7c70043aad3e877d4546464ca88 | |
| parent | d49aa61690da70e32b6140b5b51258da5d3efc8e (diff) | |
| download | socket_wrapper-2a2e0cc2b2934a838d8bc92e4415aa6dea8672ef.tar.gz socket_wrapper-2a2e0cc2b2934a838d8bc92e4415aa6dea8672ef.tar.xz socket_wrapper-2a2e0cc2b2934a838d8bc92e4415aa6dea8672ef.zip | |
src: Fix build on OpenIndiana.
| -rw-r--r-- | ConfigureChecks.cmake | 16 | ||||
| -rw-r--r-- | config.h.cmake | 3 | ||||
| -rw-r--r-- | src/socket_wrapper.c | 37 |
3 files changed, 46 insertions, 10 deletions
diff --git a/ConfigureChecks.cmake b/ConfigureChecks.cmake index 3596755..1be7583 100644 --- a/ConfigureChecks.cmake +++ b/ConfigureChecks.cmake @@ -97,6 +97,18 @@ check_prototype_definition(gettimeofday "sys/time.h" HAVE_GETTIMEOFDAY_TZ_VOID) +check_prototype_definition(accept + "int accept(int s, struct sockaddr *addr, Psocklen_t addrlen)" + "-1" + "sys/types.h;sys/socket.h" + HAVE_ACCEPT_PSOCKLEN_T) + +check_prototype_definition(ioctl + "int accept(int s, int r, ...)" + "-1" + "unistd.h" + HAVE_IOCTL_INT) + # IPV6 check_c_source_compiles(" #include <stdlib.h> @@ -167,10 +179,6 @@ if (OSX) set(HAVE_APPLE 1) endif (OSX) -if (SOLARIS) - add_definitions(-D_XOPEN_SOURCE -D_XOPEN_SOURCE_EXTENDED=1) -endif (SOLARIS) - # ENDIAN if (NOT WIN32) test_big_endian(WORDS_BIGENDIAN) diff --git a/config.h.cmake b/config.h.cmake index f48a32f..d47478b 100644 --- a/config.h.cmake +++ b/config.h.cmake @@ -21,12 +21,15 @@ /* Define to 1 if you have the `getaddrinfo' function. */ #cmakedefine HAVE_GETADDRINFO 1 +#cmakedefine HAVE_ACCEPT_PSOCKLEN_T 1 +#cmakedefine HAVE_IOCTL_INT 1 /*************************** LIBRARIES ***************************/ #cmakedefine HAVE_GETTIMEOFDAY_TZ 1 #cmakedefine HAVE_GETTIMEOFDAY_TZ_VOID 1 + /**************************** OPTIONS ****************************/ #cmakedefine HAVE_GCC_THREAD_LOCAL_STORAGE 1 diff --git a/src/socket_wrapper.c b/src/socket_wrapper.c index 2412c66..7e10064 100644 --- a/src/socket_wrapper.c +++ b/src/socket_wrapper.c @@ -2073,9 +2073,13 @@ static int swrap_accept(int s, struct sockaddr *addr, socklen_t *addrlen) return fd; } +#ifdef HAVE_ACCEPT_PSOCKLEN_T +int accept(int s, struct sockaddr *addr, Psocklen_t addrlen) +#else int accept(int s, struct sockaddr *addr, socklen_t *addrlen) +#endif { - return swrap_accept(s, addr, addrlen); + return swrap_accept(s, addr, (socklen_t *)addrlen); } static int autobind_start_init; @@ -2364,9 +2368,13 @@ static int swrap_getpeername(int s, struct sockaddr *name, socklen_t *addrlen) return 0; } +#ifdef HAVE_ACCEPT_PSOCKLEN_T +int getpeername(int s, struct sockaddr *name, Psocklen_t addrlen) +#else int getpeername(int s, struct sockaddr *name, socklen_t *addrlen) +#endif { - return swrap_getpeername(s, name, addrlen); + return swrap_getpeername(s, name, (socklen_t *)addrlen); } /**************************************************************************** @@ -2387,9 +2395,13 @@ static int swrap_getsockname(int s, struct sockaddr *name, socklen_t *addrlen) return 0; } +#ifdef HAVE_ACCEPT_PSOCKLEN_T +int getsockname(int s, struct sockaddr *name, Psocklen_t addrlen) +#else int getsockname(int s, struct sockaddr *name, socklen_t *addrlen) +#endif { - return swrap_getsockname(s, name, addrlen); + return swrap_getsockname(s, name, (socklen_t *)addrlen); } /**************************************************************************** @@ -2413,9 +2425,13 @@ static int swrap_getsockopt(int s, int level, int optname, return -1; } +#ifdef HAVE_ACCEPT_PSOCKLEN_T +int getsockopt(int s, int level, int optname, void *optval, Psocklen_t optlen) +#else int getsockopt(int s, int level, int optname, void *optval, socklen_t *optlen) +#endif { - return swrap_getsockopt(s, level, optname, optval, optlen); + return swrap_getsockopt(s, level, optname, optval, (socklen_t *)optlen); } /**************************************************************************** @@ -2490,14 +2506,18 @@ static int swrap_vioctl(int s, unsigned long int r, va_list va) return rc; } +#ifdef HAVE_IOCTL_INT +int ioctl(int s, int r, ...) +#else int ioctl(int s, unsigned long int r, ...) +#endif { va_list va; int rc; va_start(va, r); - rc = swrap_vioctl(s, r, va); + rc = swrap_vioctl(s, (unsigned long int) r, va); va_end(va); @@ -2734,10 +2754,15 @@ static ssize_t swrap_recvfrom(int s, void *buf, size_t len, int flags, return ret; } +#ifdef HAVE_ACCEPT_PSOCKLEN_T +ssize_t recvfrom(int s, void *buf, size_t len, int flags, + struct sockaddr *from, Psocklen_t fromlen) +#else ssize_t recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlen) +#endif { - return swrap_recvfrom(s, buf, len, flags, from, fromlen); + return swrap_recvfrom(s, buf, len, flags, from, (socklen_t *)fromlen); } /**************************************************************************** |
