Commit 4033adc6 by Michael Koch

Forgot to add to cvs command line

From-SVN: r59340
parent c231c91e
...@@ -7,23 +7,15 @@ Libgcj License. Please consult the file "LIBGCJ_LICENSE" for ...@@ -7,23 +7,15 @@ Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
details. */ details. */
#include <config.h> #include <config.h>
#include <platform.h> #include <platform.h>
#ifdef WIN32 #ifdef WIN32
#include <errno.h> #include <errno.h>
#include <string.h> #include <string.h>
#ifndef ENOPROTOOPT
#define ENOPROTOOPT 109
#endif
#define NATIVE_CLOSE(s) closesocket (s)
#else /* WIN32 */ #else /* WIN32 */
#ifdef HAVE_SYS_SOCKET_H
#include <sys/socket.h>
#endif
#ifdef HAVE_NETINET_IN_H #ifdef HAVE_NETINET_IN_H
#include <netinet/in.h> #include <netinet/in.h>
#endif #endif
...@@ -33,8 +25,6 @@ details. */ ...@@ -33,8 +25,6 @@ details. */
#include <errno.h> #include <errno.h>
#include <string.h> #include <string.h>
#define NATIVE_CLOSE(s) ::close (s)
#endif /* WIN32 */ #endif /* WIN32 */
#if HAVE_BSTRING_H #if HAVE_BSTRING_H
...@@ -42,20 +32,6 @@ details. */ ...@@ -42,20 +32,6 @@ details. */
#include <bstring.h> #include <bstring.h>
#endif #endif
#ifndef DISABLE_JAVA_NET
// Avoid macro definitions of bind from system headers, e.g. on
// Solaris 7 with _XOPEN_SOURCE. FIXME
static inline int
_Jv_bind (int fd, struct sockaddr *addr, int addrlen)
{
return ::bind (fd, addr, addrlen);
}
#endif /* DISABLE_JAVA_NET */
#ifdef bind
#undef bind
#endif
#include <gcj/cni.h> #include <gcj/cni.h>
#include <java/io/IOException.h> #include <java/io/IOException.h>
#include <java/io/InterruptedIOException.h> #include <java/io/InterruptedIOException.h>
...@@ -212,7 +188,8 @@ union InAddr ...@@ -212,7 +188,8 @@ union InAddr
void void
java::net::PlainDatagramSocketImpl::create () java::net::PlainDatagramSocketImpl::create ()
{ {
int sock = ::socket (AF_INET, SOCK_DGRAM, 0); int sock = _Jv_socket (AF_INET, SOCK_DGRAM, 0);
if (sock < 0) if (sock < 0)
{ {
char* strerr = strerror (errno); char* strerr = strerror (errno);
...@@ -240,10 +217,12 @@ java::net::PlainDatagramSocketImpl::bind (jint lport, ...@@ -240,10 +217,12 @@ java::net::PlainDatagramSocketImpl::bind (jint lport,
if (len == 4) if (len == 4)
{ {
u.address.sin_family = AF_INET; u.address.sin_family = AF_INET;
if (host != NULL) if (host != NULL)
memcpy (&u.address.sin_addr, bytes, len); memcpy (&u.address.sin_addr, bytes, len);
else else
u.address.sin_addr.s_addr = htonl (INADDR_ANY); u.address.sin_addr.s_addr = htonl (INADDR_ANY);
len = sizeof (struct sockaddr_in); len = sizeof (struct sockaddr_in);
u.address.sin_port = htons (lport); u.address.sin_port = htons (lport);
} }
...@@ -262,19 +241,23 @@ java::net::PlainDatagramSocketImpl::bind (jint lport, ...@@ -262,19 +241,23 @@ java::net::PlainDatagramSocketImpl::bind (jint lport,
if (_Jv_bind (fnum, ptr, len) == 0) if (_Jv_bind (fnum, ptr, len) == 0)
{ {
socklen_t addrlen = sizeof(u); socklen_t addrlen = sizeof(u);
if (lport != 0) if (lport != 0)
localPort = lport; localPort = lport;
else if (::getsockname (fnum, (sockaddr*) &u, &addrlen) == 0) else if (::getsockname (fnum, (sockaddr*) &u, &addrlen) == 0)
localPort = ntohs (u.address.sin_port); localPort = ntohs (u.address.sin_port);
else else
goto error; goto error;
/* Allow broadcast by default. */ /* Allow broadcast by default. */
int broadcast = 1; int broadcast = 1;
if (::setsockopt (fnum, SOL_SOCKET, SO_BROADCAST, (char *) &broadcast, if (::setsockopt (fnum, SOL_SOCKET, SO_BROADCAST, (char *) &broadcast,
sizeof (broadcast)) != 0) sizeof (broadcast)) != 0)
goto error; goto error;
return; return;
} }
error: error:
char* strerr = strerror (errno); char* strerr = strerror (errno);
throw new java::net::BindException (JvNewStringUTF (strerr)); throw new java::net::BindException (JvNewStringUTF (strerr));
...@@ -329,8 +312,10 @@ java::net::PlainDatagramSocketImpl::peek (java::net::InetAddress *i) ...@@ -329,8 +312,10 @@ java::net::PlainDatagramSocketImpl::peek (java::net::InetAddress *i)
return rport; return rport;
error: error:
char* strerr = strerror (errno); char* strerr = strerror (errno);
if (errno == ECONNREFUSED) if (errno == ECONNREFUSED)
throw new PortUnreachableException (JvNewStringUTF (strerr)); throw new PortUnreachableException (JvNewStringUTF (strerr));
throw new java::io::IOException (JvNewStringUTF (strerr)); throw new java::io::IOException (JvNewStringUTF (strerr));
} }
...@@ -356,9 +341,9 @@ java::net::PlainDatagramSocketImpl::peekData(java::net::DatagramPacket *p) ...@@ -356,9 +341,9 @@ java::net::PlainDatagramSocketImpl::peekData(java::net::DatagramPacket *p)
tv.tv_usec = (timeout % 1000) * 1000; tv.tv_usec = (timeout % 1000) * 1000;
int retval; int retval;
if ((retval = _Jv_select (fnum + 1, &rset, NULL, NULL, &tv)) < 0) if ((retval = _Jv_select (fnum + 1, &rset, NULL, NULL, &tv)) < 0)
goto error; goto error;
else if (retval == 0) else if (retval == 0)
throw new java::io::InterruptedIOException (); throw new java::io::InterruptedIOException ();
} }
#endif /* WIN32 */ #endif /* WIN32 */
...@@ -391,10 +376,13 @@ java::net::PlainDatagramSocketImpl::peekData(java::net::DatagramPacket *p) ...@@ -391,10 +376,13 @@ java::net::PlainDatagramSocketImpl::peekData(java::net::DatagramPacket *p)
p->setPort (rport); p->setPort (rport);
p->setLength ((jint) retlen); p->setLength ((jint) retlen);
return rport; return rport;
error: error:
char* strerr = strerror (errno); char* strerr = strerror (errno);
if (errno == ECONNREFUSED) if (errno == ECONNREFUSED)
throw new PortUnreachableException (JvNewStringUTF (strerr)); throw new PortUnreachableException (JvNewStringUTF (strerr));
throw new java::io::IOException (JvNewStringUTF (strerr)); throw new java::io::IOException (JvNewStringUTF (strerr));
} }
...@@ -407,7 +395,7 @@ java::net::PlainDatagramSocketImpl::close () ...@@ -407,7 +395,7 @@ java::net::PlainDatagramSocketImpl::close ()
// The method isn't declared to throw anything, so we disregard // The method isn't declared to throw anything, so we disregard
// the return value. // the return value.
NATIVE_CLOSE (fnum); _Jv_close (fnum);
fnum = -1; fnum = -1;
timeout = 0; timeout = 0;
} }
...@@ -446,8 +434,10 @@ java::net::PlainDatagramSocketImpl::send (java::net::DatagramPacket *p) ...@@ -446,8 +434,10 @@ java::net::PlainDatagramSocketImpl::send (java::net::DatagramPacket *p)
return; return;
char* strerr = strerror (errno); char* strerr = strerror (errno);
if (errno == ECONNREFUSED) if (errno == ECONNREFUSED)
throw new PortUnreachableException (JvNewStringUTF (strerr)); throw new PortUnreachableException (JvNewStringUTF (strerr));
throw new java::io::IOException (JvNewStringUTF (strerr)); throw new java::io::IOException (JvNewStringUTF (strerr));
} }
...@@ -473,9 +463,9 @@ java::net::PlainDatagramSocketImpl::receive (java::net::DatagramPacket *p) ...@@ -473,9 +463,9 @@ java::net::PlainDatagramSocketImpl::receive (java::net::DatagramPacket *p)
tv.tv_usec = (timeout % 1000) * 1000; tv.tv_usec = (timeout % 1000) * 1000;
int retval; int retval;
if ((retval = _Jv_select (fnum + 1, &rset, NULL, NULL, &tv)) < 0) if ((retval = _Jv_select (fnum + 1, &rset, NULL, NULL, &tv)) < 0)
goto error; goto error;
else if (retval == 0) else if (retval == 0)
throw new java::io::InterruptedIOException (); throw new java::io::InterruptedIOException ();
} }
#endif /* WIN32 */ #endif /* WIN32 */
...@@ -508,10 +498,13 @@ java::net::PlainDatagramSocketImpl::receive (java::net::DatagramPacket *p) ...@@ -508,10 +498,13 @@ java::net::PlainDatagramSocketImpl::receive (java::net::DatagramPacket *p)
p->setPort (rport); p->setPort (rport);
p->setLength ((jint) retlen); p->setLength ((jint) retlen);
return; return;
error: error:
char* strerr = strerror (errno); char* strerr = strerror (errno);
if (errno == ECONNREFUSED) if (errno == ECONNREFUSED)
throw new PortUnreachableException (JvNewStringUTF (strerr)); throw new PortUnreachableException (JvNewStringUTF (strerr));
throw new java::io::IOException (JvNewStringUTF (strerr)); throw new java::io::IOException (JvNewStringUTF (strerr));
} }
...@@ -521,6 +514,7 @@ java::net::PlainDatagramSocketImpl::setTimeToLive (jint ttl) ...@@ -521,6 +514,7 @@ java::net::PlainDatagramSocketImpl::setTimeToLive (jint ttl)
// Assumes IPPROTO_IP rather than IPPROTO_IPV6 since socket created is IPv4. // Assumes IPPROTO_IP rather than IPPROTO_IPV6 since socket created is IPv4.
char val = (char) ttl; char val = (char) ttl;
socklen_t val_len = sizeof(val); socklen_t val_len = sizeof(val);
if (::setsockopt (fnum, IPPROTO_IP, IP_MULTICAST_TTL, &val, val_len) == 0) if (::setsockopt (fnum, IPPROTO_IP, IP_MULTICAST_TTL, &val, val_len) == 0)
return; return;
...@@ -534,6 +528,7 @@ java::net::PlainDatagramSocketImpl::getTimeToLive () ...@@ -534,6 +528,7 @@ java::net::PlainDatagramSocketImpl::getTimeToLive ()
// Assumes IPPROTO_IP rather than IPPROTO_IPV6 since socket created is IPv4. // Assumes IPPROTO_IP rather than IPPROTO_IPV6 since socket created is IPv4.
char val; char val;
socklen_t val_len = sizeof(val); socklen_t val_len = sizeof(val);
if (::getsockopt (fnum, IPPROTO_IP, IP_MULTICAST_TTL, &val, &val_len) == 0) if (::getsockopt (fnum, IPPROTO_IP, IP_MULTICAST_TTL, &val, &val_len) == 0)
return ((int) val) & 0xFF; return ((int) val) & 0xFF;
......
...@@ -10,7 +10,9 @@ details. */ ...@@ -10,7 +10,9 @@ details. */
#include <platform.h> #include <platform.h>
#ifndef DISABLE_JAVA_NET #ifndef DISABLE_JAVA_NET
#ifdef WIN32 #ifdef WIN32
#include <windows.h> #include <windows.h>
#include <winsock.h> #include <winsock.h>
#include <errno.h> #include <errno.h>
...@@ -20,8 +22,6 @@ details. */ ...@@ -20,8 +22,6 @@ details. */
#undef MIN_PRIORITY #undef MIN_PRIORITY
#undef FIONREAD #undef FIONREAD
#define NATIVE_CLOSE(s) closesocket (s)
// These functions make the Win32 socket API look more POSIXy // These functions make the Win32 socket API look more POSIXy
static inline int static inline int
write(int s, void *buf, int len) write(int s, void *buf, int len)
...@@ -36,11 +36,6 @@ read(int s, void *buf, int len) ...@@ -36,11 +36,6 @@ read(int s, void *buf, int len)
} }
// these errors cannot occur on Win32 // these errors cannot occur on Win32
#define ENOTCONN 0
#define ECONNRESET 0
#ifndef ENOPROTOOPT
#define ENOPROTOOPT 109
#endif
#else /* WIN32 */ #else /* WIN32 */
#ifdef HAVE_SYS_IOCTL_H #ifdef HAVE_SYS_IOCTL_H
...@@ -53,14 +48,11 @@ read(int s, void *buf, int len) ...@@ -53,14 +48,11 @@ read(int s, void *buf, int len)
#include <sys/filio.h> #include <sys/filio.h>
#endif #endif
#include <sys/socket.h>
#include <netinet/in.h> #include <netinet/in.h>
#include <netinet/tcp.h> #include <netinet/tcp.h>
#include <errno.h> #include <errno.h>
#include <string.h> #include <string.h>
#define NATIVE_CLOSE(s) ::close (s)
#endif /* WIN32 */ #endif /* WIN32 */
#endif /* DISABLE_JAVA_NET */ #endif /* DISABLE_JAVA_NET */
...@@ -73,43 +65,6 @@ read(int s, void *buf, int len) ...@@ -73,43 +65,6 @@ read(int s, void *buf, int len)
typedef int socklen_t; typedef int socklen_t;
#endif #endif
#ifndef DISABLE_JAVA_NET
// Avoid macro definitions of bind, connect from system headers, e.g. on
// Solaris 7 with _XOPEN_SOURCE. FIXME
static inline int
_Jv_bind (int fd, struct sockaddr *addr, int addrlen)
{
return ::bind (fd, addr, addrlen);
}
#ifdef bind
#undef bind
#endif
static inline int
_Jv_connect (int fd, struct sockaddr *addr, int addrlen)
{
return ::connect (fd, addr, addrlen);
}
#ifdef connect
#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
#endif /* DISABLE_JAVA_NET */
#include <gcj/cni.h> #include <gcj/cni.h>
#include <gcj/javaprims.h> #include <gcj/javaprims.h>
#include <java/io/IOException.h> #include <java/io/IOException.h>
...@@ -258,7 +213,7 @@ union SockAddr ...@@ -258,7 +213,7 @@ union SockAddr
void void
java::net::PlainSocketImpl::create (jboolean stream) java::net::PlainSocketImpl::create (jboolean stream)
{ {
int sock = ::socket (AF_INET, stream ? SOCK_STREAM : SOCK_DGRAM, 0); int sock = _Jv_socket (AF_INET, stream ? SOCK_STREAM : SOCK_DGRAM, 0);
if (sock < 0) if (sock < 0)
{ {
...@@ -495,7 +450,7 @@ java::net::PlainSocketImpl::close() ...@@ -495,7 +450,7 @@ java::net::PlainSocketImpl::close()
JvSynchronize sync (this); JvSynchronize sync (this);
// should we use shutdown here? how would that effect so_linger? // should we use shutdown here? how would that effect so_linger?
int res = NATIVE_CLOSE (fnum); int res = _Jv_close (fnum);
if (res == -1) if (res == -1)
{ {
...@@ -518,7 +473,7 @@ java::net::PlainSocketImpl::write(jint b) ...@@ -518,7 +473,7 @@ java::net::PlainSocketImpl::write(jint b)
while (r != 1) while (r != 1)
{ {
r = ::write (fnum, &d, 1); r = _Jv_write (fnum, &d, 1);
if (r == -1) if (r == -1)
{ {
if (java::lang::Thread::interrupted()) if (java::lang::Thread::interrupted())
...@@ -551,7 +506,7 @@ java::net::PlainSocketImpl::write(jbyteArray b, jint offset, jint len) ...@@ -551,7 +506,7 @@ java::net::PlainSocketImpl::write(jbyteArray b, jint offset, jint len)
while (len > 0) while (len > 0)
{ {
int r = ::write (fnum, bytes, len); int r = _Jv_write (fnum, bytes, len);
if (r == -1) if (r == -1)
{ {
...@@ -614,7 +569,7 @@ java::net::PlainSocketImpl::read(void) ...@@ -614,7 +569,7 @@ java::net::PlainSocketImpl::read(void)
} }
#endif /* WIN32 */ #endif /* WIN32 */
int r = ::read (fnum, &b, 1); int r = _Jv_read (fnum, &b, 1);
if (r == 0) if (r == 0)
return -1; return -1;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment