Forgot to add to cvs command line

From-SVN: r59340
This commit is contained in:
Michael Koch 2002-11-21 10:24:18 +00:00
parent c231c91e55
commit 4033adc630
2 changed files with 35 additions and 85 deletions

View File

@ -7,23 +7,15 @@ Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
details. */
#include <config.h>
#include <platform.h>
#ifdef WIN32
#include <errno.h>
#include <string.h>
#ifndef ENOPROTOOPT
#define ENOPROTOOPT 109
#endif
#define NATIVE_CLOSE(s) closesocket (s)
#else /* WIN32 */
#ifdef HAVE_SYS_SOCKET_H
#include <sys/socket.h>
#endif
#ifdef HAVE_NETINET_IN_H
#include <netinet/in.h>
#endif
@ -33,8 +25,6 @@ details. */
#include <errno.h>
#include <string.h>
#define NATIVE_CLOSE(s) ::close (s)
#endif /* WIN32 */
#if HAVE_BSTRING_H
@ -42,20 +32,6 @@ details. */
#include <bstring.h>
#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 <java/io/IOException.h>
#include <java/io/InterruptedIOException.h>
@ -212,7 +188,8 @@ union InAddr
void
java::net::PlainDatagramSocketImpl::create ()
{
int sock = ::socket (AF_INET, SOCK_DGRAM, 0);
int sock = _Jv_socket (AF_INET, SOCK_DGRAM, 0);
if (sock < 0)
{
char* strerr = strerror (errno);
@ -240,10 +217,12 @@ java::net::PlainDatagramSocketImpl::bind (jint lport,
if (len == 4)
{
u.address.sin_family = AF_INET;
if (host != NULL)
memcpy (&u.address.sin_addr, bytes, len);
memcpy (&u.address.sin_addr, bytes, len);
else
u.address.sin_addr.s_addr = htonl (INADDR_ANY);
u.address.sin_addr.s_addr = htonl (INADDR_ANY);
len = sizeof (struct sockaddr_in);
u.address.sin_port = htons (lport);
}
@ -262,19 +241,23 @@ java::net::PlainDatagramSocketImpl::bind (jint lport,
if (_Jv_bind (fnum, ptr, len) == 0)
{
socklen_t addrlen = sizeof(u);
if (lport != 0)
localPort = lport;
else if (::getsockname (fnum, (sockaddr*) &u, &addrlen) == 0)
localPort = ntohs (u.address.sin_port);
else
goto error;
/* Allow broadcast by default. */
int broadcast = 1;
if (::setsockopt (fnum, SOL_SOCKET, SO_BROADCAST, (char *) &broadcast,
sizeof (broadcast)) != 0)
goto error;
return;
}
error:
char* strerr = strerror (errno);
throw new java::net::BindException (JvNewStringUTF (strerr));
@ -329,8 +312,10 @@ java::net::PlainDatagramSocketImpl::peek (java::net::InetAddress *i)
return rport;
error:
char* strerr = strerror (errno);
if (errno == ECONNREFUSED)
throw new PortUnreachableException (JvNewStringUTF (strerr));
throw new java::io::IOException (JvNewStringUTF (strerr));
}
@ -356,9 +341,9 @@ java::net::PlainDatagramSocketImpl::peekData(java::net::DatagramPacket *p)
tv.tv_usec = (timeout % 1000) * 1000;
int retval;
if ((retval = _Jv_select (fnum + 1, &rset, NULL, NULL, &tv)) < 0)
goto error;
goto error;
else if (retval == 0)
throw new java::io::InterruptedIOException ();
throw new java::io::InterruptedIOException ();
}
#endif /* WIN32 */
@ -391,10 +376,13 @@ java::net::PlainDatagramSocketImpl::peekData(java::net::DatagramPacket *p)
p->setPort (rport);
p->setLength ((jint) retlen);
return rport;
error:
char* strerr = strerror (errno);
if (errno == ECONNREFUSED)
throw new PortUnreachableException (JvNewStringUTF (strerr));
throw new java::io::IOException (JvNewStringUTF (strerr));
}
@ -407,7 +395,7 @@ java::net::PlainDatagramSocketImpl::close ()
// The method isn't declared to throw anything, so we disregard
// the return value.
NATIVE_CLOSE (fnum);
_Jv_close (fnum);
fnum = -1;
timeout = 0;
}
@ -446,8 +434,10 @@ java::net::PlainDatagramSocketImpl::send (java::net::DatagramPacket *p)
return;
char* strerr = strerror (errno);
if (errno == ECONNREFUSED)
throw new PortUnreachableException (JvNewStringUTF (strerr));
throw new java::io::IOException (JvNewStringUTF (strerr));
}
@ -473,9 +463,9 @@ java::net::PlainDatagramSocketImpl::receive (java::net::DatagramPacket *p)
tv.tv_usec = (timeout % 1000) * 1000;
int retval;
if ((retval = _Jv_select (fnum + 1, &rset, NULL, NULL, &tv)) < 0)
goto error;
goto error;
else if (retval == 0)
throw new java::io::InterruptedIOException ();
throw new java::io::InterruptedIOException ();
}
#endif /* WIN32 */
@ -508,10 +498,13 @@ java::net::PlainDatagramSocketImpl::receive (java::net::DatagramPacket *p)
p->setPort (rport);
p->setLength ((jint) retlen);
return;
error:
char* strerr = strerror (errno);
if (errno == ECONNREFUSED)
throw new PortUnreachableException (JvNewStringUTF (strerr));
throw new java::io::IOException (JvNewStringUTF (strerr));
}
@ -521,6 +514,7 @@ java::net::PlainDatagramSocketImpl::setTimeToLive (jint ttl)
// Assumes IPPROTO_IP rather than IPPROTO_IPV6 since socket created is IPv4.
char val = (char) ttl;
socklen_t val_len = sizeof(val);
if (::setsockopt (fnum, IPPROTO_IP, IP_MULTICAST_TTL, &val, val_len) == 0)
return;
@ -534,6 +528,7 @@ java::net::PlainDatagramSocketImpl::getTimeToLive ()
// Assumes IPPROTO_IP rather than IPPROTO_IPV6 since socket created is IPv4.
char val;
socklen_t val_len = sizeof(val);
if (::getsockopt (fnum, IPPROTO_IP, IP_MULTICAST_TTL, &val, &val_len) == 0)
return ((int) val) & 0xFF;

View File

@ -10,7 +10,9 @@ details. */
#include <platform.h>
#ifndef DISABLE_JAVA_NET
#ifdef WIN32
#include <windows.h>
#include <winsock.h>
#include <errno.h>
@ -20,8 +22,6 @@ details. */
#undef MIN_PRIORITY
#undef FIONREAD
#define NATIVE_CLOSE(s) closesocket (s)
// These functions make the Win32 socket API look more POSIXy
static inline int
write(int s, void *buf, int len)
@ -36,11 +36,6 @@ read(int s, void *buf, int len)
}
// these errors cannot occur on Win32
#define ENOTCONN 0
#define ECONNRESET 0
#ifndef ENOPROTOOPT
#define ENOPROTOOPT 109
#endif
#else /* WIN32 */
#ifdef HAVE_SYS_IOCTL_H
@ -53,14 +48,11 @@ read(int s, void *buf, int len)
#include <sys/filio.h>
#endif
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <errno.h>
#include <string.h>
#define NATIVE_CLOSE(s) ::close (s)
#endif /* WIN32 */
#endif /* DISABLE_JAVA_NET */
@ -73,43 +65,6 @@ read(int s, void *buf, int len)
typedef int socklen_t;
#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/javaprims.h>
#include <java/io/IOException.h>
@ -258,7 +213,7 @@ union SockAddr
void
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)
{
@ -495,7 +450,7 @@ java::net::PlainSocketImpl::close()
JvSynchronize sync (this);
// should we use shutdown here? how would that effect so_linger?
int res = NATIVE_CLOSE (fnum);
int res = _Jv_close (fnum);
if (res == -1)
{
@ -518,7 +473,7 @@ java::net::PlainSocketImpl::write(jint b)
while (r != 1)
{
r = ::write (fnum, &d, 1);
r = _Jv_write (fnum, &d, 1);
if (r == -1)
{
if (java::lang::Thread::interrupted())
@ -551,7 +506,7 @@ java::net::PlainSocketImpl::write(jbyteArray b, jint offset, jint len)
while (len > 0)
{
int r = ::write (fnum, bytes, len);
int r = _Jv_write (fnum, bytes, len);
if (r == -1)
{
@ -614,7 +569,7 @@ java::net::PlainSocketImpl::read(void)
}
#endif /* WIN32 */
int r = ::read (fnum, &b, 1);
int r = _Jv_read (fnum, &b, 1);
if (r == 0)
return -1;