diff options
author | Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> | 2001-08-01 17:53:00 +0000 |
---|---|---|
committer | Rainer Orth <ro@gcc.gnu.org> | 2001-08-01 17:53:00 +0000 |
commit | 60a78ccfac331b0d4ff71fcdddcfc302817eb110 (patch) | |
tree | f5dc8cf40aeb44dfd1791af25d70f89af31ffd81 /libjava/java | |
parent | 2a25b23f7fc4970eb1760f5a3001e626720fa844 (diff) | |
download | gcc-60a78ccfac331b0d4ff71fcdddcfc302817eb110.zip gcc-60a78ccfac331b0d4ff71fcdddcfc302817eb110.tar.gz gcc-60a78ccfac331b0d4ff71fcdddcfc302817eb110.tar.bz2 |
re PR libgcj/3694 (natPlainDatagramSocketImpl.cc doesn't compile in ALPHA OSF1)
* include/posix.h (_POSIX_PII_SOCKET): Define.
* configure.in (HAVE_SOCKLEN_T): Define.
* java/net/natPlainSocketImpl.cc [!HAVE_SOCKLEN_T]: Move socklen_t
definition up.
(_JV_accept): New function, avoids Tru64 UNIX accept macro.
(java::net::PlainSocketImpl::accept): Use it.
Fixes PRs libgcj/3694, libgcj/3696.
* configure.in (HAVE_STRUCT_IPV6_MREQ): New test.
* acconfig.h (HAVE_STRUCT_IPV6_MREQ): Provide template.
* configure, include/config.h.in: Regenerate.
* java/net/natPlainDatagramSocketImpl.cc (union McastReq): Use it.
(mcastGrp): Likewise.
(java::net::PlainDatagramSocketImpl::setOption): Guard against
missing IPV6_MULTICAST_IF.
Fixes PR libgcj/3694.
From-SVN: r44546
Diffstat (limited to 'libjava/java')
-rw-r--r-- | libjava/java/net/natPlainDatagramSocketImpl.cc | 7 | ||||
-rw-r--r-- | libjava/java/net/natPlainSocketImpl.cc | 21 |
2 files changed, 20 insertions, 8 deletions
diff --git a/libjava/java/net/natPlainDatagramSocketImpl.cc b/libjava/java/net/natPlainDatagramSocketImpl.cc index e15ead2..611d4e8 100644 --- a/libjava/java/net/natPlainDatagramSocketImpl.cc +++ b/libjava/java/net/natPlainDatagramSocketImpl.cc @@ -158,7 +158,7 @@ union McastReq #if HAVE_STRUCT_IP_MREQ struct ip_mreq mreq; #endif -#ifdef HAVE_INET6 +#if HAVE_STRUCT_IPV6_MREQ struct ipv6_mreq mreq6; #endif }; @@ -423,7 +423,7 @@ java::net::PlainDatagramSocketImpl::mcastGrp (java::net::InetAddress *inetaddr, ptr = (const char *) &u.mreq; } #endif -#ifdef HAVE_INET6 +#if HAVE_STRUCT_IPV6_MREQ else if (len == 16) { level = IPPROTO_IPV6; @@ -531,7 +531,8 @@ java::net::PlainDatagramSocketImpl::setOption (jint optID, len = sizeof (struct in_addr); ptr = (const char *) &u.addr; } -#ifdef HAVE_INET6 +// Tru64 UNIX V5.0 has struct sockaddr_in6, but no IPV6_MULTICAST_IF +#if defined (HAVE_INET6) && defined (IPV6_MULTICAST_IF) else if (len == 16) { level = IPPROTO_IPV6; 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; |