diff options
-rw-r--r-- | otherlibs/unix/socketaddr.c | 5 | ||||
-rw-r--r-- | otherlibs/unix/socketaddr.h | 5 | ||||
-rw-r--r-- | otherlibs/unix/sockopt.c | 7 |
3 files changed, 16 insertions, 1 deletions
diff --git a/otherlibs/unix/socketaddr.c b/otherlibs/unix/socketaddr.c index 7e760161e..f5d285984 100644 --- a/otherlibs/unix/socketaddr.c +++ b/otherlibs/unix/socketaddr.c @@ -28,7 +28,12 @@ #endif union sock_addr_union sock_addr; + +#ifdef HAS_SOCKLEN_T +socklen_t sock_addr_len; +#else int sock_addr_len; +#endif value alloc_inet_addr(unsigned int a) { diff --git a/otherlibs/unix/socketaddr.h b/otherlibs/unix/socketaddr.h index ab5a32cfc..54e982f77 100644 --- a/otherlibs/unix/socketaddr.h +++ b/otherlibs/unix/socketaddr.h @@ -26,7 +26,12 @@ union sock_addr_union { }; extern union sock_addr_union sock_addr; + +#ifdef HAS_SOCKLEN_T +extern socklen_t sock_addr_len; +#else extern int sock_addr_len; +#endif void get_sockaddr (value); value alloc_sockaddr (void); diff --git a/otherlibs/unix/sockopt.c b/otherlibs/unix/sockopt.c index 93786d6bb..250986716 100644 --- a/otherlibs/unix/sockopt.c +++ b/otherlibs/unix/sockopt.c @@ -33,7 +33,12 @@ static int sockopt[] = { value unix_getsockopt(value socket, value option) { - int optval, optsize; + int optval; +#ifdef HAS_SOCKLEN_T + socklen_t optsize; +#else + int optsize; +#endif optsize = sizeof(optval); if (getsockopt(Int_val(socket), SOL_SOCKET, sockopt[Int_val(option)], (void *) &optval, &optsize) == -1) |