diff options
Diffstat (limited to 'libjava/java/net/natPlainSocketImpl.cc')
-rw-r--r-- | libjava/java/net/natPlainSocketImpl.cc | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/libjava/java/net/natPlainSocketImpl.cc b/libjava/java/net/natPlainSocketImpl.cc index 545c514..0367d4f 100644 --- a/libjava/java/net/natPlainSocketImpl.cc +++ b/libjava/java/net/natPlainSocketImpl.cc @@ -33,6 +33,10 @@ details. */ #include <bstring.h> #endif +#ifndef HAVE_SOCKLEN_T +typedef int socklen_t; +#endif + // Avoid macro definitions of bind, connect from system headers, e.g. on // Solaris 7 with _XOPEN_SOURCE. FIXME static inline int @@ -55,6 +59,17 @@ _Jv_connect (int fd, struct sockaddr *addr, int addrlen) #undef connect #endif +// Same problem with accept on Tru64 UNIX with _POSIX_PII_SOCKET +static inline int +_Jv_accept (int fd, struct sockaddr *addr, socklen_t *addrlen) +{ + return ::accept (fd, addr, addrlen); +} + +#ifdef accept +#undef accept +#endif + #include <gcj/cni.h> #include <gcj/javaprims.h> #include <java/io/IOException.h> @@ -126,10 +141,6 @@ java::net::PlainSocketImpl::getOption (jint) #else /* DISABLE_JAVA_NET */ -#ifndef HAVE_SOCKLEN_T -typedef int socklen_t; -#endif - union SockAddr { struct sockaddr_in address; @@ -283,7 +294,7 @@ java::net::PlainSocketImpl::accept (java::net::PlainSocketImpl *s) JvNewStringUTF("Accept timed out")); } - new_socket = ::accept (fnum, (sockaddr*) &u, &addrlen); + new_socket = _Jv_accept (fnum, (sockaddr*) &u, &addrlen); if (new_socket < 0) goto error; jbyteArray raddr; |