summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndreas Schneider <asn@cryptomilk.org>2013-07-08 19:24:56 +0200
committerAndreas Schneider <asn@cryptomilk.org>2013-07-08 19:24:56 +0200
commit2a2e0cc2b2934a838d8bc92e4415aa6dea8672ef (patch)
tree1abb7d57cddce7c70043aad3e877d4546464ca88
parentd49aa61690da70e32b6140b5b51258da5d3efc8e (diff)
downloadsocket_wrapper-2a2e0cc2b2934a838d8bc92e4415aa6dea8672ef.tar.gz
socket_wrapper-2a2e0cc2b2934a838d8bc92e4415aa6dea8672ef.tar.xz
socket_wrapper-2a2e0cc2b2934a838d8bc92e4415aa6dea8672ef.zip
src: Fix build on OpenIndiana.
-rw-r--r--ConfigureChecks.cmake16
-rw-r--r--config.h.cmake3
-rw-r--r--src/socket_wrapper.c37
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);
}
/****************************************************************************