Commit 7c54b003 by Michael Koch Committed by Michael Koch

PlainDatagramSocketImpl.java, [...]: Renamed fnum to native_fd to match classpath more.

2003-10-21  Michael Koch  <konqueror@gmx.de>

	* gnu/java/net/PlainDatagramSocketImpl.java,
	gnu/java/net/PlainSocketImpl.java,
	gnu/java/net/natPlainDatagramSocketImplPosix.cc,
	gnu/java/net/natPlainDatagramSocketImplWin32.cc,
	gnu/java/net/natPlainSocketImplPosix.cc,
	gnu/java/net/natPlainSocketImplWin32.cc:
	Renamed fnum to native_fd to match classpath more.

From-SVN: r72746
parent d23ad8c8
2003-10-21 Michael Koch <konqueror@gmx.de>
* gnu/java/net/PlainDatagramSocketImpl.java,
gnu/java/net/PlainSocketImpl.java,
gnu/java/net/natPlainDatagramSocketImplPosix.cc,
gnu/java/net/natPlainDatagramSocketImplWin32.cc,
gnu/java/net/natPlainSocketImplPosix.cc,
gnu/java/net/natPlainSocketImplWin32.cc:
Renamed fnum to native_fd to match classpath more.
2003-10-21 Jerry Quinn <jlquinn@optonline.net> 2003-10-21 Jerry Quinn <jlquinn@optonline.net>
* posix-threads.cc (_Jv_CondNotify,_Jv_CondNotifyAll): Rename * posix-threads.cc (_Jv_CondNotify,_Jv_CondNotifyAll): Rename
......
...@@ -45,8 +45,8 @@ import java.net.InetAddress; ...@@ -45,8 +45,8 @@ import java.net.InetAddress;
import java.net.InetSocketAddress; import java.net.InetSocketAddress;
import java.net.NetworkInterface; import java.net.NetworkInterface;
import java.net.SocketAddress; import java.net.SocketAddress;
import java.net.SocketOptions;
import java.net.SocketException; import java.net.SocketException;
import java.net.SocketOptions;
import gnu.classpath.Configuration; import gnu.classpath.Configuration;
/** /**
...@@ -94,7 +94,7 @@ public final class PlainDatagramSocketImpl extends DatagramSocketImpl ...@@ -94,7 +94,7 @@ public final class PlainDatagramSocketImpl extends DatagramSocketImpl
/** /**
* This is the actual underlying file descriptor * This is the actual underlying file descriptor
*/ */
int fnum = -1; int native_fd = -1;
// FIXME: Is this necessary? Could it help w/ DatagramSocket.getLocalAddress? // FIXME: Is this necessary? Could it help w/ DatagramSocket.getLocalAddress?
// InetAddress address; // InetAddress address;
...@@ -116,7 +116,7 @@ public final class PlainDatagramSocketImpl extends DatagramSocketImpl ...@@ -116,7 +116,7 @@ public final class PlainDatagramSocketImpl extends DatagramSocketImpl
{ {
synchronized (this) synchronized (this)
{ {
if (fnum != -1) if (native_fd != -1)
close(); close();
} }
super.finalize(); super.finalize();
...@@ -124,7 +124,7 @@ public final class PlainDatagramSocketImpl extends DatagramSocketImpl ...@@ -124,7 +124,7 @@ public final class PlainDatagramSocketImpl extends DatagramSocketImpl
public int getNativeFD() public int getNativeFD()
{ {
return fnum; return native_fd;
} }
/** /**
......
/* PlainSocketImpl.java -- Default socket implementation /* PlainSocketImpl.java -- Default socket implementation
Copyright (C) 1998, 1999, 2003 Free Software Foundation, Inc. Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003
Free Software Foundation, Inc.
This file is part of GNU Classpath. This file is part of GNU Classpath.
...@@ -100,7 +101,7 @@ public final class PlainSocketImpl extends SocketImpl ...@@ -100,7 +101,7 @@ public final class PlainSocketImpl extends SocketImpl
* *
* When the socket is closed this is reset to -1. * When the socket is closed this is reset to -1.
*/ */
int fnum = -1; int native_fd = -1;
// This value is set/read by setOption/getOption. // This value is set/read by setOption/getOption.
int timeout = 0; int timeout = 0;
...@@ -129,14 +130,13 @@ public final class PlainSocketImpl extends SocketImpl ...@@ -129,14 +130,13 @@ public final class PlainSocketImpl extends SocketImpl
{ {
synchronized (this) synchronized (this)
{ {
if (fnum != -1) if (native_fd != -1)
try try
{ {
close(); close();
} }
catch (IOException ex) catch (IOException ex)
{ {
// ignore
} }
} }
super.finalize(); super.finalize();
...@@ -144,7 +144,7 @@ public final class PlainSocketImpl extends SocketImpl ...@@ -144,7 +144,7 @@ public final class PlainSocketImpl extends SocketImpl
public int getNativeFD() public int getNativeFD()
{ {
return fnum; return native_fd;
} }
/** /**
......
...@@ -81,9 +81,9 @@ gnu::java::net::PlainDatagramSocketImpl::create () ...@@ -81,9 +81,9 @@ gnu::java::net::PlainDatagramSocketImpl::create ()
_Jv_platform_close_on_exec (sock); _Jv_platform_close_on_exec (sock);
// We use fnum in place of fd here. From leaving fd null we avoid // We use native_fd in place of fd here. From leaving fd null we avoid
// the double close problem in FileDescriptor.finalize. // the double close problem in FileDescriptor.finalize.
fnum = sock; native_fd = sock;
} }
void void
...@@ -121,20 +121,20 @@ gnu::java::net::PlainDatagramSocketImpl::bind (jint lport, ...@@ -121,20 +121,20 @@ gnu::java::net::PlainDatagramSocketImpl::bind (jint lport,
else else
throw new ::java::net::SocketException (JvNewStringUTF ("invalid length")); throw new ::java::net::SocketException (JvNewStringUTF ("invalid length"));
if (_Jv_bind (fnum, ptr, len) == 0) if (_Jv_bind (native_fd, 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 (native_fd, (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 (native_fd, SOL_SOCKET, SO_BROADCAST, (char *) &broadcast,
sizeof (broadcast)) != 0) sizeof (broadcast)) != 0)
goto error; goto error;
...@@ -167,7 +167,7 @@ gnu::java::net::PlainDatagramSocketImpl::peek (::java::net::InetAddress *i) ...@@ -167,7 +167,7 @@ gnu::java::net::PlainDatagramSocketImpl::peek (::java::net::InetAddress *i)
union SockAddr u; union SockAddr u;
socklen_t addrlen = sizeof(u); socklen_t addrlen = sizeof(u);
ssize_t retlen = ssize_t retlen =
::recvfrom (fnum, (char *) NULL, 0, MSG_PEEK, (sockaddr*) &u, ::recvfrom (native_fd, (char *) NULL, 0, MSG_PEEK, (sockaddr*) &u,
&addrlen); &addrlen);
if (retlen < 0) if (retlen < 0)
goto error; goto error;
...@@ -212,23 +212,23 @@ gnu::java::net::PlainDatagramSocketImpl::peekData (::java::net::DatagramPacket * ...@@ -212,23 +212,23 @@ gnu::java::net::PlainDatagramSocketImpl::peekData (::java::net::DatagramPacket *
ssize_t retlen = 0; ssize_t retlen = 0;
// Do timeouts via select since SO_RCVTIMEO is not always available. // Do timeouts via select since SO_RCVTIMEO is not always available.
if (timeout > 0 && fnum >= 0 && fnum < FD_SETSIZE) if (timeout > 0 && native_fd >= 0 && native_fd < FD_SETSIZE)
{ {
fd_set rset; fd_set rset;
struct timeval tv; struct timeval tv;
FD_ZERO(&rset); FD_ZERO(&rset);
FD_SET(fnum, &rset); FD_SET(native_fd, &rset);
tv.tv_sec = timeout / 1000; tv.tv_sec = timeout / 1000;
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 (native_fd + 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 ();
} }
retlen = retlen =
::recvfrom (fnum, (char *) dbytes, p->getLength(), MSG_PEEK, (sockaddr*) &u, ::recvfrom (native_fd, (char *) dbytes, p->getLength(), MSG_PEEK, (sockaddr*) &u,
&addrlen); &addrlen);
if (retlen < 0) if (retlen < 0)
goto error; goto error;
...@@ -275,8 +275,8 @@ gnu::java::net::PlainDatagramSocketImpl::close () ...@@ -275,8 +275,8 @@ gnu::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.
_Jv_close (fnum); _Jv_close (native_fd);
fnum = -1; native_fd = -1;
timeout = 0; timeout = 0;
} }
...@@ -310,7 +310,7 @@ gnu::java::net::PlainDatagramSocketImpl::send (::java::net::DatagramPacket *p) ...@@ -310,7 +310,7 @@ gnu::java::net::PlainDatagramSocketImpl::send (::java::net::DatagramPacket *p)
else else
throw new ::java::net::SocketException (JvNewStringUTF ("invalid length")); throw new ::java::net::SocketException (JvNewStringUTF ("invalid length"));
if (::sendto (fnum, (char *) dbytes, p->getLength(), 0, ptr, len) >= 0) if (::sendto (native_fd, (char *) dbytes, p->getLength(), 0, ptr, len) >= 0)
return; return;
char* strerr = strerror (errno); char* strerr = strerror (errno);
...@@ -331,23 +331,23 @@ gnu::java::net::PlainDatagramSocketImpl::receive (::java::net::DatagramPacket *p ...@@ -331,23 +331,23 @@ gnu::java::net::PlainDatagramSocketImpl::receive (::java::net::DatagramPacket *p
ssize_t retlen = 0; ssize_t retlen = 0;
// Do timeouts via select since SO_RCVTIMEO is not always available. // Do timeouts via select since SO_RCVTIMEO is not always available.
if (timeout > 0 && fnum >= 0 && fnum < FD_SETSIZE) if (timeout > 0 && native_fd >= 0 && native_fd < FD_SETSIZE)
{ {
fd_set rset; fd_set rset;
struct timeval tv; struct timeval tv;
FD_ZERO(&rset); FD_ZERO(&rset);
FD_SET(fnum, &rset); FD_SET(native_fd, &rset);
tv.tv_sec = timeout / 1000; tv.tv_sec = timeout / 1000;
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 (native_fd + 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 ();
} }
retlen = retlen =
::recvfrom (fnum, (char *) dbytes, p->getLength(), 0, (sockaddr*) &u, ::recvfrom (native_fd, (char *) dbytes, p->getLength(), 0, (sockaddr*) &u,
&addrlen); &addrlen);
if (retlen < 0) if (retlen < 0)
goto error; goto error;
...@@ -392,7 +392,7 @@ gnu::java::net::PlainDatagramSocketImpl::setTimeToLive (jint ttl) ...@@ -392,7 +392,7 @@ gnu::java::net::PlainDatagramSocketImpl::setTimeToLive (jint ttl)
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 (native_fd, IPPROTO_IP, IP_MULTICAST_TTL, &val, val_len) == 0)
return; return;
char* strerr = strerror (errno); char* strerr = strerror (errno);
...@@ -406,7 +406,7 @@ gnu::java::net::PlainDatagramSocketImpl::getTimeToLive () ...@@ -406,7 +406,7 @@ gnu::java::net::PlainDatagramSocketImpl::getTimeToLive ()
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 (native_fd, IPPROTO_IP, IP_MULTICAST_TTL, &val, &val_len) == 0)
return ((int) val) & 0xFF; return ((int) val) & 0xFF;
char* strerr = strerror (errno); char* strerr = strerror (errno);
...@@ -466,7 +466,7 @@ gnu::java::net::PlainDatagramSocketImpl::mcastGrp (::java::net::InetAddress *ine ...@@ -466,7 +466,7 @@ gnu::java::net::PlainDatagramSocketImpl::mcastGrp (::java::net::InetAddress *ine
else else
throw new ::java::net::SocketException (JvNewStringUTF ("invalid length")); throw new ::java::net::SocketException (JvNewStringUTF ("invalid length"));
if (::setsockopt (fnum, level, opname, ptr, len) == 0) if (::setsockopt (native_fd, level, opname, ptr, len) == 0)
return; return;
char* strerr = strerror (errno); char* strerr = strerror (errno);
...@@ -480,7 +480,7 @@ gnu::java::net::PlainDatagramSocketImpl::setOption (jint optID, ...@@ -480,7 +480,7 @@ gnu::java::net::PlainDatagramSocketImpl::setOption (jint optID,
int val; int val;
socklen_t val_len = sizeof (val); socklen_t val_len = sizeof (val);
if (fnum < 0) if (native_fd < 0)
throw new ::java::net::SocketException (JvNewStringUTF ("Socket closed")); throw new ::java::net::SocketException (JvNewStringUTF ("Socket closed"));
if (_Jv_IsInstanceOf (value, &::java::lang::Boolean::class$)) if (_Jv_IsInstanceOf (value, &::java::lang::Boolean::class$))
...@@ -513,7 +513,7 @@ gnu::java::net::PlainDatagramSocketImpl::setOption (jint optID, ...@@ -513,7 +513,7 @@ gnu::java::net::PlainDatagramSocketImpl::setOption (jint optID,
return; return;
case _Jv_SO_BROADCAST_ : case _Jv_SO_BROADCAST_ :
if (::setsockopt (fnum, SOL_SOCKET, SO_BROADCAST, (char *) &val, if (::setsockopt (native_fd, SOL_SOCKET, SO_BROADCAST, (char *) &val,
val_len) != 0) val_len) != 0)
goto error; goto error;
break; break;
...@@ -528,7 +528,7 @@ gnu::java::net::PlainDatagramSocketImpl::setOption (jint optID, ...@@ -528,7 +528,7 @@ gnu::java::net::PlainDatagramSocketImpl::setOption (jint optID,
#if defined(SO_SNDBUF) && defined(SO_RCVBUF) #if defined(SO_SNDBUF) && defined(SO_RCVBUF)
int opt; int opt;
optID == _Jv_SO_SNDBUF_ ? opt = SO_SNDBUF : opt = SO_RCVBUF; optID == _Jv_SO_SNDBUF_ ? opt = SO_SNDBUF : opt = SO_RCVBUF;
if (::setsockopt (fnum, SOL_SOCKET, opt, (char *) &val, val_len) != 0) if (::setsockopt (native_fd, SOL_SOCKET, opt, (char *) &val, val_len) != 0)
goto error; goto error;
#else #else
throw new ::java::lang::InternalError ( throw new ::java::lang::InternalError (
...@@ -537,7 +537,7 @@ gnu::java::net::PlainDatagramSocketImpl::setOption (jint optID, ...@@ -537,7 +537,7 @@ gnu::java::net::PlainDatagramSocketImpl::setOption (jint optID,
return; return;
case _Jv_SO_REUSEADDR_ : case _Jv_SO_REUSEADDR_ :
#if defined(SO_REUSEADDR) #if defined(SO_REUSEADDR)
if (::setsockopt (fnum, SOL_SOCKET, SO_REUSEADDR, (char *) &val, if (::setsockopt (native_fd, SOL_SOCKET, SO_REUSEADDR, (char *) &val,
val_len) != 0) val_len) != 0)
goto error; goto error;
#else #else
...@@ -583,7 +583,7 @@ gnu::java::net::PlainDatagramSocketImpl::setOption (jint optID, ...@@ -583,7 +583,7 @@ gnu::java::net::PlainDatagramSocketImpl::setOption (jint optID,
throw throw
new ::java::net::SocketException (JvNewStringUTF ("invalid length")); new ::java::net::SocketException (JvNewStringUTF ("invalid length"));
if (::setsockopt (fnum, level, opname, ptr, len) != 0) if (::setsockopt (native_fd, level, opname, ptr, len) != 0)
goto error; goto error;
return; return;
...@@ -598,7 +598,7 @@ gnu::java::net::PlainDatagramSocketImpl::setOption (jint optID, ...@@ -598,7 +598,7 @@ gnu::java::net::PlainDatagramSocketImpl::setOption (jint optID,
break; break;
case _Jv_IP_TOS_ : case _Jv_IP_TOS_ :
if (::setsockopt (fnum, SOL_SOCKET, IP_TOS, (char *) &val, if (::setsockopt (native_fd, SOL_SOCKET, IP_TOS, (char *) &val,
val_len) != 0) val_len) != 0)
goto error; goto error;
return; return;
...@@ -639,7 +639,7 @@ gnu::java::net::PlainDatagramSocketImpl::getOption (jint optID) ...@@ -639,7 +639,7 @@ gnu::java::net::PlainDatagramSocketImpl::getOption (jint optID)
break; break;
case _Jv_SO_BROADCAST_ : case _Jv_SO_BROADCAST_ :
if (::getsockopt (fnum, SOL_SOCKET, SO_BROADCAST, (char *) &val, if (::getsockopt (native_fd, SOL_SOCKET, SO_BROADCAST, (char *) &val,
&val_len) != 0) &val_len) != 0)
goto error; goto error;
return new ::java::lang::Boolean (val != 0); return new ::java::lang::Boolean (val != 0);
...@@ -654,7 +654,7 @@ gnu::java::net::PlainDatagramSocketImpl::getOption (jint optID) ...@@ -654,7 +654,7 @@ gnu::java::net::PlainDatagramSocketImpl::getOption (jint optID)
#if defined(SO_SNDBUF) && defined(SO_RCVBUF) #if defined(SO_SNDBUF) && defined(SO_RCVBUF)
int opt; int opt;
optID == _Jv_SO_SNDBUF_ ? opt = SO_SNDBUF : opt = SO_RCVBUF; optID == _Jv_SO_SNDBUF_ ? opt = SO_SNDBUF : opt = SO_RCVBUF;
if (::getsockopt (fnum, SOL_SOCKET, opt, (char *) &val, &val_len) != 0) if (::getsockopt (native_fd, SOL_SOCKET, opt, (char *) &val, &val_len) != 0)
goto error; goto error;
else else
return new ::java::lang::Integer (val); return new ::java::lang::Integer (val);
...@@ -668,7 +668,7 @@ gnu::java::net::PlainDatagramSocketImpl::getOption (jint optID) ...@@ -668,7 +668,7 @@ gnu::java::net::PlainDatagramSocketImpl::getOption (jint optID)
if (localAddress == NULL) if (localAddress == NULL)
{ {
jbyteArray laddr; jbyteArray laddr;
if (::getsockname (fnum, (sockaddr*) &u, &addrlen) != 0) if (::getsockname (native_fd, (sockaddr*) &u, &addrlen) != 0)
goto error; goto error;
if (u.address.sin_family == AF_INET) if (u.address.sin_family == AF_INET)
{ {
...@@ -691,7 +691,7 @@ gnu::java::net::PlainDatagramSocketImpl::getOption (jint optID) ...@@ -691,7 +691,7 @@ gnu::java::net::PlainDatagramSocketImpl::getOption (jint optID)
break; break;
case _Jv_SO_REUSEADDR_ : case _Jv_SO_REUSEADDR_ :
#if defined(SO_REUSEADDR) #if defined(SO_REUSEADDR)
if (::getsockopt (fnum, SOL_SOCKET, SO_REUSEADDR, (char *) &val, if (::getsockopt (native_fd, SOL_SOCKET, SO_REUSEADDR, (char *) &val,
&val_len) != 0) &val_len) != 0)
goto error; goto error;
return new ::java::lang::Boolean (val != 0); return new ::java::lang::Boolean (val != 0);
...@@ -707,7 +707,7 @@ gnu::java::net::PlainDatagramSocketImpl::getOption (jint optID) ...@@ -707,7 +707,7 @@ gnu::java::net::PlainDatagramSocketImpl::getOption (jint optID)
char *bytes; char *bytes;
inaddr_len = sizeof(inaddr); inaddr_len = sizeof(inaddr);
if (::getsockopt (fnum, IPPROTO_IP, IP_MULTICAST_IF, (char *) &inaddr, if (::getsockopt (native_fd, IPPROTO_IP, IP_MULTICAST_IF, (char *) &inaddr,
&inaddr_len) != 0) &inaddr_len) != 0)
goto error; goto error;
...@@ -729,13 +729,13 @@ gnu::java::net::PlainDatagramSocketImpl::getOption (jint optID) ...@@ -729,13 +729,13 @@ gnu::java::net::PlainDatagramSocketImpl::getOption (jint optID)
break; break;
case _Jv_IP_MULTICAST_LOOP_ : case _Jv_IP_MULTICAST_LOOP_ :
if (::getsockopt (fnum, SOL_SOCKET, IP_MULTICAST_LOOP, (char *) &val, if (::getsockopt (native_fd, SOL_SOCKET, IP_MULTICAST_LOOP, (char *) &val,
&val_len) != 0) &val_len) != 0)
goto error; goto error;
return new ::java::lang::Boolean (val != 0); return new ::java::lang::Boolean (val != 0);
case _Jv_IP_TOS_ : case _Jv_IP_TOS_ :
if (::getsockopt (fnum, SOL_SOCKET, IP_TOS, (char *) &val, if (::getsockopt (native_fd, SOL_SOCKET, IP_TOS, (char *) &val,
&val_len) != 0) &val_len) != 0)
goto error; goto error;
return new ::java::lang::Integer (val); return new ::java::lang::Integer (val);
......
...@@ -71,9 +71,9 @@ gnu::java::net::PlainDatagramSocketImpl::create () ...@@ -71,9 +71,9 @@ gnu::java::net::PlainDatagramSocketImpl::create ()
_Jv_platform_close_on_exec (sock); _Jv_platform_close_on_exec (sock);
// We use fnum in place of fd here. From leaving fd null we avoid // We use native_fd in place of fd here. From leaving fd null we avoid
// the double close problem in FileDescriptor.finalize. // the double close problem in FileDescriptor.finalize.
fnum = (int) sock; native_fd = (int) sock;
} }
void void
...@@ -111,20 +111,20 @@ gnu::java::net::PlainDatagramSocketImpl::bind (jint lport, ...@@ -111,20 +111,20 @@ gnu::java::net::PlainDatagramSocketImpl::bind (jint lport,
else else
throw new ::java::net::SocketException (JvNewStringUTF ("invalid length")); throw new ::java::net::SocketException (JvNewStringUTF ("invalid length"));
if (::bind (fnum, ptr, len) == 0) if (::bind (native_fd, 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 (native_fd, (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 (native_fd, SOL_SOCKET, SO_BROADCAST, (char *) &broadcast,
sizeof (broadcast)) != 0) sizeof (broadcast)) != 0)
goto error; goto error;
...@@ -157,7 +157,7 @@ gnu::java::net::PlainDatagramSocketImpl::peek (::java::net::InetAddress *i) ...@@ -157,7 +157,7 @@ gnu::java::net::PlainDatagramSocketImpl::peek (::java::net::InetAddress *i)
union SockAddr u; union SockAddr u;
socklen_t addrlen = sizeof(u); socklen_t addrlen = sizeof(u);
ssize_t retlen = ssize_t retlen =
::recvfrom (fnum, (char *) NULL, 0, MSG_PEEK, (sockaddr*) &u, ::recvfrom (native_fd, (char *) NULL, 0, MSG_PEEK, (sockaddr*) &u,
&addrlen); &addrlen);
if (retlen < 0) if (retlen < 0)
goto error; goto error;
...@@ -204,14 +204,14 @@ gnu::java::net::PlainDatagramSocketImpl::peekData(::java::net::DatagramPacket *p ...@@ -204,14 +204,14 @@ gnu::java::net::PlainDatagramSocketImpl::peekData(::java::net::DatagramPacket *p
if (timeout > 0) if (timeout > 0)
{ {
int nRet= ::setsockopt(fnum, SOL_SOCKET, SO_RCVTIMEO, int nRet= ::setsockopt(native_fd, SOL_SOCKET, SO_RCVTIMEO,
(char*)&timeout, sizeof(timeout)); (char*)&timeout, sizeof(timeout));
if (nRet != NO_ERROR) if (nRet != NO_ERROR)
goto error; goto error;
} }
retlen = retlen =
::recvfrom (fnum, (char *) dbytes, p->getLength(), MSG_PEEK, (sockaddr*) &u, ::recvfrom (native_fd, (char *) dbytes, p->getLength(), MSG_PEEK, (sockaddr*) &u,
&addrlen); &addrlen);
if (retlen == SOCKET_ERROR) if (retlen == SOCKET_ERROR)
goto error; goto error;
...@@ -262,8 +262,8 @@ gnu::java::net::PlainDatagramSocketImpl::close () ...@@ -262,8 +262,8 @@ gnu::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.
::closesocket (fnum); ::closesocket (native_fd);
fnum = -1; native_fd = -1;
timeout = 0; timeout = 0;
} }
...@@ -297,7 +297,7 @@ gnu::java::net::PlainDatagramSocketImpl::send (::java::net::DatagramPacket *p) ...@@ -297,7 +297,7 @@ gnu::java::net::PlainDatagramSocketImpl::send (::java::net::DatagramPacket *p)
else else
throw new ::java::net::SocketException (JvNewStringUTF ("invalid length")); throw new ::java::net::SocketException (JvNewStringUTF ("invalid length"));
if (::sendto (fnum, (char *) dbytes, p->getLength(), 0, ptr, len) >= 0) if (::sendto (native_fd, (char *) dbytes, p->getLength(), 0, ptr, len) >= 0)
return; return;
DWORD dwErrorCode = WSAGetLastError (); DWORD dwErrorCode = WSAGetLastError ();
...@@ -321,14 +321,14 @@ gnu::java::net::PlainDatagramSocketImpl::receive (::java::net::DatagramPacket *p ...@@ -321,14 +321,14 @@ gnu::java::net::PlainDatagramSocketImpl::receive (::java::net::DatagramPacket *p
// This implementation doesn't allow specifying an infinite // This implementation doesn't allow specifying an infinite
// timeout after specifying a finite one, but Sun's JDK 1.4.1 // timeout after specifying a finite one, but Sun's JDK 1.4.1
// didn't seem to allow this either.... // didn't seem to allow this either....
int nRet= ::setsockopt(fnum, SOL_SOCKET, SO_RCVTIMEO, int nRet= ::setsockopt(native_fd, SOL_SOCKET, SO_RCVTIMEO,
(char*)&timeout, sizeof(timeout)); (char*)&timeout, sizeof(timeout));
if (nRet != NO_ERROR) if (nRet != NO_ERROR)
goto error; goto error;
} }
retlen = retlen =
::recvfrom (fnum, (char *) dbytes, p->getLength(), 0, (sockaddr*) &u, ::recvfrom (native_fd, (char *) dbytes, p->getLength(), 0, (sockaddr*) &u,
&addrlen); &addrlen);
if (retlen < 0) if (retlen < 0)
goto error; goto error;
...@@ -374,7 +374,7 @@ gnu::java::net::PlainDatagramSocketImpl::setTimeToLive (jint ttl) ...@@ -374,7 +374,7 @@ gnu::java::net::PlainDatagramSocketImpl::setTimeToLive (jint ttl)
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 (native_fd, IPPROTO_IP, IP_MULTICAST_TTL, &val, val_len) == 0)
return; return;
_Jv_ThrowIOException (); _Jv_ThrowIOException ();
...@@ -387,7 +387,7 @@ gnu::java::net::PlainDatagramSocketImpl::getTimeToLive () ...@@ -387,7 +387,7 @@ gnu::java::net::PlainDatagramSocketImpl::getTimeToLive ()
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 (native_fd, IPPROTO_IP, IP_MULTICAST_TTL, &val, &val_len) == 0)
return ((int) val) & 0xFF; return ((int) val) & 0xFF;
_Jv_ThrowIOException (); _Jv_ThrowIOException ();
...@@ -446,7 +446,7 @@ gnu::java::net::PlainDatagramSocketImpl::mcastGrp (::java::net::InetAddress *ine ...@@ -446,7 +446,7 @@ gnu::java::net::PlainDatagramSocketImpl::mcastGrp (::java::net::InetAddress *ine
else else
throw new ::java::net::SocketException (JvNewStringUTF ("invalid length")); throw new ::java::net::SocketException (JvNewStringUTF ("invalid length"));
if (::setsockopt (fnum, level, opname, ptr, len) == 0) if (::setsockopt (native_fd, level, opname, ptr, len) == 0)
return; return;
_Jv_ThrowIOException (); _Jv_ThrowIOException ();
...@@ -459,7 +459,7 @@ gnu::java::net::PlainDatagramSocketImpl::setOption (jint optID, ...@@ -459,7 +459,7 @@ gnu::java::net::PlainDatagramSocketImpl::setOption (jint optID,
int val; int val;
socklen_t val_len = sizeof (val); socklen_t val_len = sizeof (val);
if (fnum < 0) if (native_fd < 0)
throw new ::java::net::SocketException (JvNewStringUTF ("Socket closed")); throw new ::java::net::SocketException (JvNewStringUTF ("Socket closed"));
if (_Jv_IsInstanceOf (value, &::java::lang::Boolean::class$)) if (_Jv_IsInstanceOf (value, &::java::lang::Boolean::class$))
...@@ -492,7 +492,7 @@ gnu::java::net::PlainDatagramSocketImpl::setOption (jint optID, ...@@ -492,7 +492,7 @@ gnu::java::net::PlainDatagramSocketImpl::setOption (jint optID,
return; return;
case _Jv_SO_BROADCAST_ : case _Jv_SO_BROADCAST_ :
if (::setsockopt (fnum, SOL_SOCKET, SO_BROADCAST, (char *) &val, if (::setsockopt (native_fd, SOL_SOCKET, SO_BROADCAST, (char *) &val,
val_len) != 0) val_len) != 0)
goto error; goto error;
break; break;
...@@ -506,11 +506,11 @@ gnu::java::net::PlainDatagramSocketImpl::setOption (jint optID, ...@@ -506,11 +506,11 @@ gnu::java::net::PlainDatagramSocketImpl::setOption (jint optID,
case _Jv_SO_RCVBUF_ : case _Jv_SO_RCVBUF_ :
int opt; int opt;
optID == _Jv_SO_SNDBUF_ ? opt = SO_SNDBUF : opt = SO_RCVBUF; optID == _Jv_SO_SNDBUF_ ? opt = SO_SNDBUF : opt = SO_RCVBUF;
if (::setsockopt (fnum, SOL_SOCKET, opt, (char *) &val, val_len) != 0) if (::setsockopt (native_fd, SOL_SOCKET, opt, (char *) &val, val_len) != 0)
goto error; goto error;
return; return;
case _Jv_SO_REUSEADDR_ : case _Jv_SO_REUSEADDR_ :
if (::setsockopt (fnum, SOL_SOCKET, SO_REUSEADDR, (char *) &val, if (::setsockopt (native_fd, SOL_SOCKET, SO_REUSEADDR, (char *) &val,
val_len) != 0) val_len) != 0)
goto error; goto error;
return; return;
...@@ -552,7 +552,7 @@ gnu::java::net::PlainDatagramSocketImpl::setOption (jint optID, ...@@ -552,7 +552,7 @@ gnu::java::net::PlainDatagramSocketImpl::setOption (jint optID,
throw throw
new ::java::net::SocketException (JvNewStringUTF ("invalid length")); new ::java::net::SocketException (JvNewStringUTF ("invalid length"));
if (::setsockopt (fnum, level, opname, ptr, len) != 0) if (::setsockopt (native_fd, level, opname, ptr, len) != 0)
goto error; goto error;
return; return;
...@@ -567,7 +567,7 @@ gnu::java::net::PlainDatagramSocketImpl::setOption (jint optID, ...@@ -567,7 +567,7 @@ gnu::java::net::PlainDatagramSocketImpl::setOption (jint optID,
break; break;
case _Jv_IP_TOS_ : case _Jv_IP_TOS_ :
if (::setsockopt (fnum, SOL_SOCKET, IP_TOS, (char *) &val, if (::setsockopt (native_fd, SOL_SOCKET, IP_TOS, (char *) &val,
val_len) != 0) val_len) != 0)
goto error; goto error;
return; return;
...@@ -607,7 +607,7 @@ gnu::java::net::PlainDatagramSocketImpl::getOption (jint optID) ...@@ -607,7 +607,7 @@ gnu::java::net::PlainDatagramSocketImpl::getOption (jint optID)
break; break;
case _Jv_SO_BROADCAST_ : case _Jv_SO_BROADCAST_ :
if (::getsockopt (fnum, SOL_SOCKET, SO_BROADCAST, (char *) &val, if (::getsockopt (native_fd, SOL_SOCKET, SO_BROADCAST, (char *) &val,
&val_len) != 0) &val_len) != 0)
goto error; goto error;
return new ::java::lang::Boolean (val != 0); return new ::java::lang::Boolean (val != 0);
...@@ -621,7 +621,7 @@ gnu::java::net::PlainDatagramSocketImpl::getOption (jint optID) ...@@ -621,7 +621,7 @@ gnu::java::net::PlainDatagramSocketImpl::getOption (jint optID)
case _Jv_SO_SNDBUF_ : case _Jv_SO_SNDBUF_ :
int opt; int opt;
optID == _Jv_SO_SNDBUF_ ? opt = SO_SNDBUF : opt = SO_RCVBUF; optID == _Jv_SO_SNDBUF_ ? opt = SO_SNDBUF : opt = SO_RCVBUF;
if (::getsockopt (fnum, SOL_SOCKET, opt, (char *) &val, &val_len) != 0) if (::getsockopt (native_fd, SOL_SOCKET, opt, (char *) &val, &val_len) != 0)
goto error; goto error;
else else
return new ::java::lang::Integer (val); return new ::java::lang::Integer (val);
...@@ -631,7 +631,7 @@ gnu::java::net::PlainDatagramSocketImpl::getOption (jint optID) ...@@ -631,7 +631,7 @@ gnu::java::net::PlainDatagramSocketImpl::getOption (jint optID)
if (localAddress == NULL) if (localAddress == NULL)
{ {
jbyteArray laddr; jbyteArray laddr;
if (::getsockname (fnum, (sockaddr*) &u, &addrlen) != 0) if (::getsockname (native_fd, (sockaddr*) &u, &addrlen) != 0)
goto error; goto error;
if (u.address.sin_family == AF_INET) if (u.address.sin_family == AF_INET)
{ {
...@@ -653,7 +653,7 @@ gnu::java::net::PlainDatagramSocketImpl::getOption (jint optID) ...@@ -653,7 +653,7 @@ gnu::java::net::PlainDatagramSocketImpl::getOption (jint optID)
return localAddress; return localAddress;
break; break;
case _Jv_SO_REUSEADDR_ : case _Jv_SO_REUSEADDR_ :
if (::getsockopt (fnum, SOL_SOCKET, SO_REUSEADDR, (char *) &val, if (::getsockopt (native_fd, SOL_SOCKET, SO_REUSEADDR, (char *) &val,
&val_len) != 0) &val_len) != 0)
goto error; goto error;
return new ::java::lang::Boolean (val != 0); return new ::java::lang::Boolean (val != 0);
...@@ -664,7 +664,7 @@ gnu::java::net::PlainDatagramSocketImpl::getOption (jint optID) ...@@ -664,7 +664,7 @@ gnu::java::net::PlainDatagramSocketImpl::getOption (jint optID)
char *bytes; char *bytes;
inaddr_len = sizeof(inaddr); inaddr_len = sizeof(inaddr);
if (::getsockopt (fnum, IPPROTO_IP, IP_MULTICAST_IF, (char *) &inaddr, if (::getsockopt (native_fd, IPPROTO_IP, IP_MULTICAST_IF, (char *) &inaddr,
&inaddr_len) != 0) &inaddr_len) != 0)
goto error; goto error;
...@@ -682,13 +682,13 @@ gnu::java::net::PlainDatagramSocketImpl::getOption (jint optID) ...@@ -682,13 +682,13 @@ gnu::java::net::PlainDatagramSocketImpl::getOption (jint optID)
break; break;
case _Jv_IP_MULTICAST_LOOP_ : case _Jv_IP_MULTICAST_LOOP_ :
if (::getsockopt (fnum, SOL_SOCKET, IP_MULTICAST_LOOP, (char *) &val, if (::getsockopt (native_fd, SOL_SOCKET, IP_MULTICAST_LOOP, (char *) &val,
&val_len) != 0) &val_len) != 0)
goto error; goto error;
return new ::java::lang::Boolean (val != 0); return new ::java::lang::Boolean (val != 0);
case _Jv_IP_TOS_ : case _Jv_IP_TOS_ :
if (::getsockopt (fnum, SOL_SOCKET, IP_TOS, (char *) &val, if (::getsockopt (native_fd, SOL_SOCKET, IP_TOS, (char *) &val,
&val_len) != 0) &val_len) != 0)
goto error; goto error;
return new ::java::lang::Integer (val); return new ::java::lang::Integer (val);
......
...@@ -73,9 +73,9 @@ gnu::java::net::PlainSocketImpl::create (jboolean stream) ...@@ -73,9 +73,9 @@ gnu::java::net::PlainSocketImpl::create (jboolean stream)
_Jv_platform_close_on_exec (sock); _Jv_platform_close_on_exec (sock);
// We use fnum in place of fd here. From leaving fd null we avoid // We use native_fd in place of fd here. From leaving fd null we avoid
// the double close problem in FileDescriptor.finalize. // the double close problem in FileDescriptor.finalize.
fnum = sock; native_fd = sock;
} }
void void
...@@ -113,16 +113,16 @@ gnu::java::net::PlainSocketImpl::bind (::java::net::InetAddress *host, jint lpor ...@@ -113,16 +113,16 @@ gnu::java::net::PlainSocketImpl::bind (::java::net::InetAddress *host, jint lpor
throw new ::java::net::SocketException (JvNewStringUTF ("invalid length")); throw new ::java::net::SocketException (JvNewStringUTF ("invalid length"));
// Enable SO_REUSEADDR, so that servers can reuse ports left in TIME_WAIT. // Enable SO_REUSEADDR, so that servers can reuse ports left in TIME_WAIT.
::setsockopt(fnum, SOL_SOCKET, SO_REUSEADDR, (char *) &i, sizeof(i)); ::setsockopt(native_fd, SOL_SOCKET, SO_REUSEADDR, (char *) &i, sizeof(i));
if (_Jv_bind (fnum, ptr, len) == 0) if (_Jv_bind (native_fd, ptr, len) == 0)
{ {
address = host; address = host;
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 (native_fd, (sockaddr*) &u, &addrlen) == 0)
localport = ntohs (u.address.sin_port); localport = ntohs (u.address.sin_port);
else else
goto error; goto error;
...@@ -170,31 +170,31 @@ gnu::java::net::PlainSocketImpl::connect (::java::net::SocketAddress *addr, ...@@ -170,31 +170,31 @@ gnu::java::net::PlainSocketImpl::connect (::java::net::SocketAddress *addr,
if (timeout > 0) if (timeout > 0)
{ {
int flags = ::fcntl (fnum, F_GETFL); int flags = ::fcntl (native_fd, F_GETFL);
::fcntl (fnum, F_SETFL, flags | O_NONBLOCK); ::fcntl (native_fd, F_SETFL, flags | O_NONBLOCK);
if ((_Jv_connect (fnum, ptr, len) != 0) && (errno != EINPROGRESS)) if ((_Jv_connect (native_fd, ptr, len) != 0) && (errno != EINPROGRESS))
goto error; goto error;
fd_set fset; fd_set fset;
struct timeval tv; struct timeval tv;
FD_ZERO(&fset); FD_ZERO(&fset);
FD_SET(fnum, &fset); FD_SET(native_fd, &fset);
tv.tv_sec = timeout / 1000; tv.tv_sec = timeout / 1000;
tv.tv_usec = (timeout % 1000) * 1000; tv.tv_usec = (timeout % 1000) * 1000;
int retval; int retval;
if ((retval = _Jv_select (fnum + 1, &fset, &fset, NULL, &tv)) < 0) if ((retval = _Jv_select (native_fd + 1, &fset, &fset, NULL, &tv)) < 0)
goto error; goto error;
else if (retval == 0) else if (retval == 0)
throw new ::java::net::SocketTimeoutException throw new ::java::net::SocketTimeoutException
(JvNewStringUTF ("Connect timed out")); (JvNewStringUTF ("Connect timed out"));
// Set the socket back into a blocking state. // Set the socket back into a blocking state.
::fcntl (fnum, F_SETFL, flags); ::fcntl (native_fd, F_SETFL, flags);
} }
else else
{ {
if (_Jv_connect (fnum, ptr, len) != 0) if (_Jv_connect (native_fd, ptr, len) != 0)
goto error; goto error;
} }
...@@ -204,7 +204,7 @@ gnu::java::net::PlainSocketImpl::connect (::java::net::SocketAddress *addr, ...@@ -204,7 +204,7 @@ gnu::java::net::PlainSocketImpl::connect (::java::net::SocketAddress *addr,
// A bind may not have been done on this socket; if so, set localport now. // A bind may not have been done on this socket; if so, set localport now.
if (localport == 0) if (localport == 0)
{ {
if (::getsockname (fnum, (sockaddr*) &u, &addrlen) == 0) if (::getsockname (native_fd, (sockaddr*) &u, &addrlen) == 0)
localport = ntohs (u.address.sin_port); localport = ntohs (u.address.sin_port);
else else
goto error; goto error;
...@@ -220,7 +220,7 @@ gnu::java::net::PlainSocketImpl::connect (::java::net::SocketAddress *addr, ...@@ -220,7 +220,7 @@ gnu::java::net::PlainSocketImpl::connect (::java::net::SocketAddress *addr,
void void
gnu::java::net::PlainSocketImpl::listen (jint backlog) gnu::java::net::PlainSocketImpl::listen (jint backlog)
{ {
if (::listen (fnum, backlog) != 0) if (::listen (native_fd, backlog) != 0)
{ {
char* strerr = strerror (errno); char* strerr = strerror (errno);
throw new ::java::io::IOException (JvNewStringUTF (strerr)); throw new ::java::io::IOException (JvNewStringUTF (strerr));
...@@ -235,23 +235,23 @@ gnu::java::net::PlainSocketImpl::accept (gnu::java::net::PlainSocketImpl *s) ...@@ -235,23 +235,23 @@ gnu::java::net::PlainSocketImpl::accept (gnu::java::net::PlainSocketImpl *s)
int new_socket = 0; int new_socket = 0;
// Do timeouts via select since SO_RCVTIMEO is not always available. // Do timeouts via select since SO_RCVTIMEO is not always available.
if (timeout > 0 && fnum >= 0 && fnum < FD_SETSIZE) if (timeout > 0 && native_fd >= 0 && native_fd < FD_SETSIZE)
{ {
fd_set fset; fd_set fset;
struct timeval tv; struct timeval tv;
FD_ZERO(&fset); FD_ZERO(&fset);
FD_SET(fnum, &fset); FD_SET(native_fd, &fset);
tv.tv_sec = timeout / 1000; tv.tv_sec = timeout / 1000;
tv.tv_usec = (timeout % 1000) * 1000; tv.tv_usec = (timeout % 1000) * 1000;
int retval; int retval;
if ((retval = _Jv_select (fnum + 1, &fset, &fset, NULL, &tv)) < 0) if ((retval = _Jv_select (native_fd + 1, &fset, &fset, NULL, &tv)) < 0)
goto error; goto error;
else if (retval == 0) else if (retval == 0)
throw new ::java::net::SocketTimeoutException ( throw new ::java::net::SocketTimeoutException (
JvNewStringUTF("Accept timed out")); JvNewStringUTF("Accept timed out"));
} }
new_socket = _Jv_accept (fnum, (sockaddr*) &u, &addrlen); new_socket = _Jv_accept (native_fd, (sockaddr*) &u, &addrlen);
if (new_socket < 0) if (new_socket < 0)
goto error; goto error;
...@@ -277,7 +277,7 @@ gnu::java::net::PlainSocketImpl::accept (gnu::java::net::PlainSocketImpl *s) ...@@ -277,7 +277,7 @@ gnu::java::net::PlainSocketImpl::accept (gnu::java::net::PlainSocketImpl *s)
else else
throw new ::java::net::SocketException (JvNewStringUTF ("invalid family")); throw new ::java::net::SocketException (JvNewStringUTF ("invalid family"));
s->fnum = new_socket; s->native_fd = new_socket;
s->localport = localport; s->localport = localport;
s->address = new ::java::net::InetAddress (raddr, NULL); s->address = new ::java::net::InetAddress (raddr, NULL);
s->port = rport; s->port = rport;
...@@ -296,7 +296,7 @@ gnu::java::net::PlainSocketImpl::close() ...@@ -296,7 +296,7 @@ gnu::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 = _Jv_close (fnum); int res = _Jv_close (native_fd);
if (res == -1) if (res == -1)
{ {
...@@ -306,7 +306,7 @@ gnu::java::net::PlainSocketImpl::close() ...@@ -306,7 +306,7 @@ gnu::java::net::PlainSocketImpl::close()
throw new ::java::io::IOException (JvNewStringUTF (strerror (errno))); throw new ::java::io::IOException (JvNewStringUTF (strerror (errno)));
} }
// Safe place to reset the file pointer. // Safe place to reset the file pointer.
fnum = -1; native_fd = -1;
timeout = 0; timeout = 0;
} }
...@@ -319,7 +319,7 @@ gnu::java::net::PlainSocketImpl$SocketOutputStream::write(jint b) ...@@ -319,7 +319,7 @@ gnu::java::net::PlainSocketImpl$SocketOutputStream::write(jint b)
while (r != 1) while (r != 1)
{ {
r = _Jv_write (this$0->fnum, &d, 1); r = _Jv_write (this$0->native_fd, &d, 1);
if (r == -1) if (r == -1)
{ {
if (::java::lang::Thread::interrupted()) if (::java::lang::Thread::interrupted())
...@@ -352,7 +352,7 @@ gnu::java::net::PlainSocketImpl$SocketOutputStream::write(jbyteArray b, jint off ...@@ -352,7 +352,7 @@ gnu::java::net::PlainSocketImpl$SocketOutputStream::write(jbyteArray b, jint off
while (len > 0) while (len > 0)
{ {
int r = _Jv_write (this$0->fnum, bytes, len); int r = _Jv_write (this$0->native_fd, bytes, len);
if (r == -1) if (r == -1)
{ {
...@@ -389,22 +389,22 @@ gnu::java::net::PlainSocketImpl$SocketInputStream::read(void) ...@@ -389,22 +389,22 @@ gnu::java::net::PlainSocketImpl$SocketInputStream::read(void)
{ {
jbyte b; jbyte b;
jint timeout = this$0->timeout; jint timeout = this$0->timeout;
jint fnum = this$0->fnum; jint native_fd = this$0->native_fd;
// Do timeouts via select. // Do timeouts via select.
if (timeout > 0 && fnum >= 0 && fnum < FD_SETSIZE) if (timeout > 0 && native_fd >= 0 && native_fd < FD_SETSIZE)
{ {
// Create the file descriptor set. // Create the file descriptor set.
fd_set read_fds; fd_set read_fds;
FD_ZERO (&read_fds); FD_ZERO (&read_fds);
FD_SET (fnum,&read_fds); FD_SET (native_fd,&read_fds);
// Create the timeout struct based on our internal timeout value. // Create the timeout struct based on our internal timeout value.
struct timeval timeout_value; struct timeval timeout_value;
timeout_value.tv_sec = timeout / 1000; timeout_value.tv_sec = timeout / 1000;
timeout_value.tv_usec = (timeout % 1000) * 1000; timeout_value.tv_usec = (timeout % 1000) * 1000;
// Select on the fds. // Select on the fds.
int sel_retval = int sel_retval =
_Jv_select (fnum + 1, &read_fds, NULL, NULL, &timeout_value); _Jv_select (native_fd + 1, &read_fds, NULL, NULL, &timeout_value);
// If select returns 0 we've waited without getting data... // If select returns 0 we've waited without getting data...
// that means we've timed out. // that means we've timed out.
if (sel_retval == 0) if (sel_retval == 0)
...@@ -414,7 +414,7 @@ gnu::java::net::PlainSocketImpl$SocketInputStream::read(void) ...@@ -414,7 +414,7 @@ gnu::java::net::PlainSocketImpl$SocketInputStream::read(void)
// either way we need to try to read. // either way we need to try to read.
} }
int r = _Jv_read (fnum, &b, 1); int r = _Jv_read (native_fd, &b, 1);
if (r == 0) if (r == 0)
return -1; return -1;
...@@ -445,7 +445,7 @@ jint ...@@ -445,7 +445,7 @@ jint
gnu::java::net::PlainSocketImpl$SocketInputStream::read(jbyteArray buffer, jint offset, gnu::java::net::PlainSocketImpl$SocketInputStream::read(jbyteArray buffer, jint offset,
jint count) jint count)
{ {
jint fnum = this$0->fnum; jint native_fd = this$0->native_fd;
jint timeout = this$0->timeout; jint timeout = this$0->timeout;
if (! buffer) if (! buffer)
...@@ -459,19 +459,19 @@ gnu::java::net::PlainSocketImpl$SocketInputStream::read(jbyteArray buffer, jint ...@@ -459,19 +459,19 @@ gnu::java::net::PlainSocketImpl$SocketInputStream::read(jbyteArray buffer, jint
jbyte *bytes = elements (buffer) + offset; jbyte *bytes = elements (buffer) + offset;
// Do timeouts via select. // Do timeouts via select.
if (timeout > 0 && fnum >= 0 && fnum < FD_SETSIZE) if (timeout > 0 && native_fd >= 0 && native_fd < FD_SETSIZE)
{ {
// Create the file descriptor set. // Create the file descriptor set.
fd_set read_fds; fd_set read_fds;
FD_ZERO (&read_fds); FD_ZERO (&read_fds);
FD_SET (fnum, &read_fds); FD_SET (native_fd, &read_fds);
// Create the timeout struct based on our internal timeout value. // Create the timeout struct based on our internal timeout value.
struct timeval timeout_value; struct timeval timeout_value;
timeout_value.tv_sec = timeout / 1000; timeout_value.tv_sec = timeout / 1000;
timeout_value.tv_usec =(timeout % 1000) * 1000; timeout_value.tv_usec =(timeout % 1000) * 1000;
// Select on the fds. // Select on the fds.
int sel_retval = int sel_retval =
_Jv_select (fnum + 1, &read_fds, NULL, NULL, &timeout_value); _Jv_select (native_fd + 1, &read_fds, NULL, NULL, &timeout_value);
// We're only interested in the 0 return. // We're only interested in the 0 return.
// error returns still require us to try to read // error returns still require us to try to read
// the socket to see what happened. // the socket to see what happened.
...@@ -485,7 +485,7 @@ gnu::java::net::PlainSocketImpl$SocketInputStream::read(jbyteArray buffer, jint ...@@ -485,7 +485,7 @@ gnu::java::net::PlainSocketImpl$SocketInputStream::read(jbyteArray buffer, jint
} }
// Read the socket. // Read the socket.
int r = ::recv (fnum, (char *) bytes, count, 0); int r = ::recv (native_fd, (char *) bytes, count, 0);
if (r == 0) if (r == 0)
return -1; return -1;
...@@ -521,7 +521,7 @@ gnu::java::net::PlainSocketImpl::available(void) ...@@ -521,7 +521,7 @@ gnu::java::net::PlainSocketImpl::available(void)
bool num_set = false; bool num_set = false;
#if defined(FIONREAD) #if defined(FIONREAD)
r = ::ioctl (fnum, FIONREAD, &num); r = ::ioctl (native_fd, FIONREAD, &num);
if (r == -1 && errno == ENOTTY) if (r == -1 && errno == ENOTTY)
{ {
...@@ -532,7 +532,7 @@ gnu::java::net::PlainSocketImpl::available(void) ...@@ -532,7 +532,7 @@ gnu::java::net::PlainSocketImpl::available(void)
else else
num_set = true; num_set = true;
#elif defined(HAVE_SELECT) #elif defined(HAVE_SELECT)
if (fnum < 0) if (native_fd < 0)
{ {
errno = EBADF; errno = EBADF;
r = -1; r = -1;
...@@ -549,15 +549,15 @@ gnu::java::net::PlainSocketImpl::available(void) ...@@ -549,15 +549,15 @@ gnu::java::net::PlainSocketImpl::available(void)
#if defined(HAVE_SELECT) #if defined(HAVE_SELECT)
if (! num_set) if (! num_set)
if (! num_set && fnum >= 0 && fnum < FD_SETSIZE) if (! num_set && native_fd >= 0 && native_fd < FD_SETSIZE)
{ {
fd_set rd; fd_set rd;
FD_ZERO (&rd); FD_ZERO (&rd);
FD_SET (fnum, &rd); FD_SET (native_fd, &rd);
struct timeval tv; struct timeval tv;
tv.tv_sec = 0; tv.tv_sec = 0;
tv.tv_usec = 0; tv.tv_usec = 0;
r = _Jv_select (fnum + 1, &rd, NULL, NULL, &tv); r = _Jv_select (native_fd + 1, &rd, NULL, NULL, &tv);
if(r == -1) if(r == -1)
goto posix_error; goto posix_error;
num = r == 0 ? 0 : 1; num = r == 0 ? 0 : 1;
...@@ -576,7 +576,7 @@ gnu::java::net::PlainSocketImpl::setOption (jint optID, ::java::lang::Object *va ...@@ -576,7 +576,7 @@ gnu::java::net::PlainSocketImpl::setOption (jint optID, ::java::lang::Object *va
int val; int val;
socklen_t val_len = sizeof (val); socklen_t val_len = sizeof (val);
if (fnum < 0) if (native_fd < 0)
throw new ::java::net::SocketException (JvNewStringUTF ("Socket closed")); throw new ::java::net::SocketException (JvNewStringUTF ("Socket closed"));
if (_Jv_IsInstanceOf (value, &::java::lang::Boolean::class$)) if (_Jv_IsInstanceOf (value, &::java::lang::Boolean::class$))
...@@ -609,7 +609,7 @@ gnu::java::net::PlainSocketImpl::setOption (jint optID, ::java::lang::Object *va ...@@ -609,7 +609,7 @@ gnu::java::net::PlainSocketImpl::setOption (jint optID, ::java::lang::Object *va
{ {
case _Jv_TCP_NODELAY_ : case _Jv_TCP_NODELAY_ :
#ifdef TCP_NODELAY #ifdef TCP_NODELAY
if (::setsockopt (fnum, IPPROTO_TCP, TCP_NODELAY, (char *) &val, if (::setsockopt (native_fd, IPPROTO_TCP, TCP_NODELAY, (char *) &val,
val_len) != 0) val_len) != 0)
goto error; goto error;
#else #else
...@@ -619,7 +619,7 @@ gnu::java::net::PlainSocketImpl::setOption (jint optID, ::java::lang::Object *va ...@@ -619,7 +619,7 @@ gnu::java::net::PlainSocketImpl::setOption (jint optID, ::java::lang::Object *va
return; return;
case _Jv_SO_KEEPALIVE_ : case _Jv_SO_KEEPALIVE_ :
if (::setsockopt (fnum, SOL_SOCKET, SO_KEEPALIVE, (char *) &val, if (::setsockopt (native_fd, SOL_SOCKET, SO_KEEPALIVE, (char *) &val,
val_len) != 0) val_len) != 0)
goto error; goto error;
break; break;
...@@ -630,7 +630,7 @@ gnu::java::net::PlainSocketImpl::setOption (jint optID, ::java::lang::Object *va ...@@ -630,7 +630,7 @@ gnu::java::net::PlainSocketImpl::setOption (jint optID, ::java::lang::Object *va
break; break;
case _Jv_SO_OOBINLINE_ : case _Jv_SO_OOBINLINE_ :
if (::setsockopt (fnum, SOL_SOCKET, SO_OOBINLINE, (char *) &val, if (::setsockopt (native_fd, SOL_SOCKET, SO_OOBINLINE, (char *) &val,
val_len) != 0) val_len) != 0)
goto error; goto error;
break; break;
...@@ -641,7 +641,7 @@ gnu::java::net::PlainSocketImpl::setOption (jint optID, ::java::lang::Object *va ...@@ -641,7 +641,7 @@ gnu::java::net::PlainSocketImpl::setOption (jint optID, ::java::lang::Object *va
l_val.l_onoff = (val != -1); l_val.l_onoff = (val != -1);
l_val.l_linger = val; l_val.l_linger = val;
if (::setsockopt (fnum, SOL_SOCKET, SO_LINGER, (char *) &l_val, if (::setsockopt (native_fd, SOL_SOCKET, SO_LINGER, (char *) &l_val,
sizeof(l_val)) != 0) sizeof(l_val)) != 0)
goto error; goto error;
#else #else
...@@ -655,7 +655,7 @@ gnu::java::net::PlainSocketImpl::setOption (jint optID, ::java::lang::Object *va ...@@ -655,7 +655,7 @@ gnu::java::net::PlainSocketImpl::setOption (jint optID, ::java::lang::Object *va
#if defined(SO_SNDBUF) && defined(SO_RCVBUF) #if defined(SO_SNDBUF) && defined(SO_RCVBUF)
int opt; int opt;
optID == _Jv_SO_SNDBUF_ ? opt = SO_SNDBUF : opt = SO_RCVBUF; optID == _Jv_SO_SNDBUF_ ? opt = SO_SNDBUF : opt = SO_RCVBUF;
if (::setsockopt (fnum, SOL_SOCKET, opt, (char *) &val, val_len) != 0) if (::setsockopt (native_fd, SOL_SOCKET, opt, (char *) &val, val_len) != 0)
goto error; goto error;
#else #else
throw new ::java::lang::InternalError ( throw new ::java::lang::InternalError (
...@@ -684,7 +684,7 @@ gnu::java::net::PlainSocketImpl::setOption (jint optID, ::java::lang::Object *va ...@@ -684,7 +684,7 @@ gnu::java::net::PlainSocketImpl::setOption (jint optID, ::java::lang::Object *va
break; break;
case _Jv_IP_TOS_ : case _Jv_IP_TOS_ :
if (::setsockopt (fnum, SOL_SOCKET, IP_TOS, (char *) &val, if (::setsockopt (native_fd, SOL_SOCKET, IP_TOS, (char *) &val,
val_len) != 0) val_len) != 0)
goto error; goto error;
break; break;
...@@ -721,7 +721,7 @@ gnu::java::net::PlainSocketImpl::getOption (jint optID) ...@@ -721,7 +721,7 @@ gnu::java::net::PlainSocketImpl::getOption (jint optID)
{ {
#ifdef TCP_NODELAY #ifdef TCP_NODELAY
case _Jv_TCP_NODELAY_ : case _Jv_TCP_NODELAY_ :
if (::getsockopt (fnum, IPPROTO_TCP, TCP_NODELAY, (char *) &val, if (::getsockopt (native_fd, IPPROTO_TCP, TCP_NODELAY, (char *) &val,
&val_len) != 0) &val_len) != 0)
goto error; goto error;
else else
...@@ -734,7 +734,7 @@ gnu::java::net::PlainSocketImpl::getOption (jint optID) ...@@ -734,7 +734,7 @@ gnu::java::net::PlainSocketImpl::getOption (jint optID)
case _Jv_SO_LINGER_ : case _Jv_SO_LINGER_ :
#ifdef SO_LINGER #ifdef SO_LINGER
if (::getsockopt (fnum, SOL_SOCKET, SO_LINGER, (char *) &l_val, if (::getsockopt (native_fd, SOL_SOCKET, SO_LINGER, (char *) &l_val,
&l_val_len) != 0) &l_val_len) != 0)
goto error; goto error;
...@@ -749,20 +749,20 @@ gnu::java::net::PlainSocketImpl::getOption (jint optID) ...@@ -749,20 +749,20 @@ gnu::java::net::PlainSocketImpl::getOption (jint optID)
break; break;
case _Jv_SO_KEEPALIVE_ : case _Jv_SO_KEEPALIVE_ :
if (::getsockopt (fnum, SOL_SOCKET, SO_KEEPALIVE, (char *) &val, if (::getsockopt (native_fd, SOL_SOCKET, SO_KEEPALIVE, (char *) &val,
&val_len) != 0) &val_len) != 0)
goto error; goto error;
else else
return new ::java::lang::Boolean (val != 0); return new ::java::lang::Boolean (val != 0);
case _Jv_SO_BROADCAST_ : case _Jv_SO_BROADCAST_ :
if (::getsockopt (fnum, SOL_SOCKET, SO_BROADCAST, (char *) &val, if (::getsockopt (native_fd, SOL_SOCKET, SO_BROADCAST, (char *) &val,
&val_len) != 0) &val_len) != 0)
goto error; goto error;
return new ::java::lang::Boolean ((jboolean)val); return new ::java::lang::Boolean ((jboolean)val);
case _Jv_SO_OOBINLINE_ : case _Jv_SO_OOBINLINE_ :
if (::getsockopt (fnum, SOL_SOCKET, SO_OOBINLINE, (char *) &val, if (::getsockopt (native_fd, SOL_SOCKET, SO_OOBINLINE, (char *) &val,
&val_len) != 0) &val_len) != 0)
goto error; goto error;
return new ::java::lang::Boolean ((jboolean)val); return new ::java::lang::Boolean ((jboolean)val);
...@@ -772,7 +772,7 @@ gnu::java::net::PlainSocketImpl::getOption (jint optID) ...@@ -772,7 +772,7 @@ gnu::java::net::PlainSocketImpl::getOption (jint optID)
#if defined(SO_SNDBUF) && defined(SO_RCVBUF) #if defined(SO_SNDBUF) && defined(SO_RCVBUF)
int opt; int opt;
optID == _Jv_SO_SNDBUF_ ? opt = SO_SNDBUF : opt = SO_RCVBUF; optID == _Jv_SO_SNDBUF_ ? opt = SO_SNDBUF : opt = SO_RCVBUF;
if (::getsockopt (fnum, SOL_SOCKET, opt, (char *) &val, &val_len) != 0) if (::getsockopt (native_fd, SOL_SOCKET, opt, (char *) &val, &val_len) != 0)
goto error; goto error;
else else
return new ::java::lang::Integer (val); return new ::java::lang::Integer (val);
...@@ -787,7 +787,7 @@ gnu::java::net::PlainSocketImpl::getOption (jint optID) ...@@ -787,7 +787,7 @@ gnu::java::net::PlainSocketImpl::getOption (jint optID)
{ {
jbyteArray laddr; jbyteArray laddr;
if (::getsockname (fnum, (sockaddr*) &u, &addrlen) != 0) if (::getsockname (native_fd, (sockaddr*) &u, &addrlen) != 0)
goto error; goto error;
if (u.address.sin_family == AF_INET) if (u.address.sin_family == AF_INET)
...@@ -826,7 +826,7 @@ gnu::java::net::PlainSocketImpl::getOption (jint optID) ...@@ -826,7 +826,7 @@ gnu::java::net::PlainSocketImpl::getOption (jint optID)
break; break;
case _Jv_IP_TOS_ : case _Jv_IP_TOS_ :
if (::getsockopt (fnum, SOL_SOCKET, IP_TOS, (char *) &val, if (::getsockopt (native_fd, SOL_SOCKET, IP_TOS, (char *) &val,
&val_len) != 0) &val_len) != 0)
goto error; goto error;
return new ::java::lang::Integer (val); return new ::java::lang::Integer (val);
...@@ -853,13 +853,13 @@ gnu::java::net::PlainSocketImpl::getOption (jint optID) ...@@ -853,13 +853,13 @@ gnu::java::net::PlainSocketImpl::getOption (jint optID)
void void
gnu::java::net::PlainSocketImpl::shutdownInput (void) gnu::java::net::PlainSocketImpl::shutdownInput (void)
{ {
if (::shutdown (fnum, 0)) if (::shutdown (native_fd, 0))
throw new ::java::net::SocketException (JvNewStringUTF (strerror (errno))); throw new ::java::net::SocketException (JvNewStringUTF (strerror (errno)));
} }
void void
gnu::java::net::PlainSocketImpl::shutdownOutput (void) gnu::java::net::PlainSocketImpl::shutdownOutput (void)
{ {
if (::shutdown (fnum, 1)) if (::shutdown (native_fd, 1))
throw new ::java::net::SocketException (JvNewStringUTF (strerror (errno))); throw new ::java::net::SocketException (JvNewStringUTF (strerror (errno)));
} }
...@@ -54,9 +54,9 @@ gnu::java::net::PlainSocketImpl::create (jboolean stream) ...@@ -54,9 +54,9 @@ gnu::java::net::PlainSocketImpl::create (jboolean stream)
_Jv_platform_close_on_exec (sock); _Jv_platform_close_on_exec (sock);
// We use fnum in place of fd here. From leaving fd null we avoid // We use native_fd in place of fd here. From leaving fd null we avoid
// the double close problem in FileDescriptor.finalize. // the double close problem in FileDescriptor.finalize.
fnum = sock; native_fd = sock;
} }
void void
...@@ -94,16 +94,16 @@ gnu::java::net::PlainSocketImpl::bind (::java::net::InetAddress *host, jint lpor ...@@ -94,16 +94,16 @@ gnu::java::net::PlainSocketImpl::bind (::java::net::InetAddress *host, jint lpor
throw new ::java::net::SocketException (JvNewStringUTF ("invalid length")); throw new ::java::net::SocketException (JvNewStringUTF ("invalid length"));
// Enable SO_REUSEADDR, so that servers can reuse ports left in TIME_WAIT. // Enable SO_REUSEADDR, so that servers can reuse ports left in TIME_WAIT.
::setsockopt(fnum, SOL_SOCKET, SO_REUSEADDR, (char *) &i, sizeof(i)); ::setsockopt(native_fd, SOL_SOCKET, SO_REUSEADDR, (char *) &i, sizeof(i));
if (::bind (fnum, ptr, len) != SOCKET_ERROR) if (::bind (native_fd, ptr, len) != SOCKET_ERROR)
{ {
address = host; address = host;
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) != SOCKET_ERROR) else if (::getsockname (native_fd, (sockaddr*) &u, &addrlen) != SOCKET_ERROR)
localport = ntohs (u.address.sin_port); localport = ntohs (u.address.sin_port);
else else
goto error; goto error;
...@@ -165,10 +165,10 @@ gnu::java::net::PlainSocketImpl::connect (::java::net::SocketAddress *addr, ...@@ -165,10 +165,10 @@ gnu::java::net::PlainSocketImpl::connect (::java::net::SocketAddress *addr,
if (timeout > 0) if (timeout > 0)
{ {
// FIXME: we're creating a fresh WSAEVENT for each connect(). // FIXME: we're creating a fresh WSAEVENT for each connect().
WSAEventWrapper aWSAEventWrapper(fnum, FD_CONNECT); WSAEventWrapper aWSAEventWrapper(native_fd, FD_CONNECT);
WSAEVENT hEvent = aWSAEventWrapper.getEventHandle (); WSAEVENT hEvent = aWSAEventWrapper.getEventHandle ();
if (::connect (fnum, ptr, len) == SOCKET_ERROR) if (::connect (native_fd, ptr, len) == SOCKET_ERROR)
{ {
if (WSAGetLastError () != WSAEWOULDBLOCK) if (WSAGetLastError () != WSAEWOULDBLOCK)
throwConnectException (); throwConnectException ();
...@@ -189,7 +189,7 @@ gnu::java::net::PlainSocketImpl::connect (::java::net::SocketAddress *addr, ...@@ -189,7 +189,7 @@ gnu::java::net::PlainSocketImpl::connect (::java::net::SocketAddress *addr,
// connect() succeeded. Use any socket-specific error code // connect() succeeded. Use any socket-specific error code
// instead of the thread-based one. // instead of the thread-based one.
int nErrCode; int nErrLen=sizeof(nErrCode); int nErrCode; int nErrLen=sizeof(nErrCode);
if (::getsockopt(fnum, SOL_SOCKET, SO_ERROR, (char*) &nErrCode, if (::getsockopt(native_fd, SOL_SOCKET, SO_ERROR, (char*) &nErrCode,
&nErrLen) == SOCKET_ERROR) &nErrLen) == SOCKET_ERROR)
{ {
throwConnectException (); throwConnectException ();
...@@ -203,7 +203,7 @@ gnu::java::net::PlainSocketImpl::connect (::java::net::SocketAddress *addr, ...@@ -203,7 +203,7 @@ gnu::java::net::PlainSocketImpl::connect (::java::net::SocketAddress *addr,
} }
else else
{ {
if (::connect (fnum, ptr, len) == SOCKET_ERROR) if (::connect (native_fd, ptr, len) == SOCKET_ERROR)
throwConnectException(); throwConnectException();
} }
...@@ -213,7 +213,7 @@ gnu::java::net::PlainSocketImpl::connect (::java::net::SocketAddress *addr, ...@@ -213,7 +213,7 @@ gnu::java::net::PlainSocketImpl::connect (::java::net::SocketAddress *addr,
// A bind may not have been done on this socket; if so, set localport now. // A bind may not have been done on this socket; if so, set localport now.
if (localport == 0) if (localport == 0)
{ {
if (::getsockname (fnum, (sockaddr*) &u, &addrlen) != SOCKET_ERROR) if (::getsockname (native_fd, (sockaddr*) &u, &addrlen) != SOCKET_ERROR)
localport = ntohs (u.address.sin_port); localport = ntohs (u.address.sin_port);
else else
throwConnectException(); throwConnectException();
...@@ -223,7 +223,7 @@ gnu::java::net::PlainSocketImpl::connect (::java::net::SocketAddress *addr, ...@@ -223,7 +223,7 @@ gnu::java::net::PlainSocketImpl::connect (::java::net::SocketAddress *addr,
void void
gnu::java::net::PlainSocketImpl::listen (jint backlog) gnu::java::net::PlainSocketImpl::listen (jint backlog)
{ {
if (::listen (fnum, backlog) == SOCKET_ERROR) if (::listen (native_fd, backlog) == SOCKET_ERROR)
{ {
_Jv_ThrowIOException (); _Jv_ThrowIOException ();
} }
...@@ -239,15 +239,15 @@ gnu::java::net::PlainSocketImpl::accept (gnu::java::net::PlainSocketImpl *s) ...@@ -239,15 +239,15 @@ gnu::java::net::PlainSocketImpl::accept (gnu::java::net::PlainSocketImpl *s)
if (timeout > 0) if (timeout > 0)
{ {
// FIXME: we're creating a fresh WSAEVENT for each accept(). // FIXME: we're creating a fresh WSAEVENT for each accept().
// One possible alternative would be that fnum really points // One possible alternative would be that native_fd really points
// to an extended structure consisting of the SOCKET, its // to an extended structure consisting of the SOCKET, its
// associated WSAEVENT, etc. // associated WSAEVENT, etc.
WSAEventWrapper aWSAEventWrapper(fnum, FD_ACCEPT); WSAEventWrapper aWSAEventWrapper(native_fd, FD_ACCEPT);
WSAEVENT hEvent = aWSAEventWrapper.getEventHandle (); WSAEVENT hEvent = aWSAEventWrapper.getEventHandle ();
for (;;) for (;;)
{ {
new_socket = ::accept (fnum, (sockaddr*) &u, &addrlen); new_socket = ::accept (native_fd, (sockaddr*) &u, &addrlen);
if (new_socket != int(INVALID_SOCKET)) if (new_socket != int(INVALID_SOCKET))
{ {
...@@ -285,7 +285,7 @@ gnu::java::net::PlainSocketImpl::accept (gnu::java::net::PlainSocketImpl *s) ...@@ -285,7 +285,7 @@ gnu::java::net::PlainSocketImpl::accept (gnu::java::net::PlainSocketImpl *s)
} }
else else
{ {
new_socket = ::accept (fnum, (sockaddr*) &u, &addrlen); new_socket = ::accept (native_fd, (sockaddr*) &u, &addrlen);
} }
if (new_socket == int(INVALID_SOCKET)) if (new_socket == int(INVALID_SOCKET))
...@@ -312,7 +312,7 @@ gnu::java::net::PlainSocketImpl::accept (gnu::java::net::PlainSocketImpl *s) ...@@ -312,7 +312,7 @@ gnu::java::net::PlainSocketImpl::accept (gnu::java::net::PlainSocketImpl *s)
else else
throw new ::java::net::SocketException (JvNewStringUTF ("invalid family")); throw new ::java::net::SocketException (JvNewStringUTF ("invalid family"));
s->fnum = new_socket; s->native_fd = new_socket;
s->localport = localport; s->localport = localport;
s->address = new ::java::net::InetAddress (raddr, NULL); s->address = new ::java::net::InetAddress (raddr, NULL);
s->port = rport; s->port = rport;
...@@ -330,7 +330,7 @@ gnu::java::net::PlainSocketImpl::close() ...@@ -330,7 +330,7 @@ gnu::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 = ::closesocket (fnum); int res = ::closesocket (native_fd);
if (res == -1) if (res == -1)
{ {
...@@ -342,7 +342,7 @@ gnu::java::net::PlainSocketImpl::close() ...@@ -342,7 +342,7 @@ gnu::java::net::PlainSocketImpl::close()
_Jv_ThrowIOException (); _Jv_ThrowIOException ();
} }
// Safe place to reset the file pointer. // Safe place to reset the file pointer.
fnum = -1; native_fd = -1;
timeout = 0; timeout = 0;
} }
...@@ -355,7 +355,7 @@ gnu::java::net::PlainSocketImpl$SocketOutputStream::write(jint b) ...@@ -355,7 +355,7 @@ gnu::java::net::PlainSocketImpl$SocketOutputStream::write(jint b)
while (r != 1) while (r != 1)
{ {
r = ::send (this$0->fnum, (char*) &d, 1, 0); r = ::send (this$0->native_fd, (char*) &d, 1, 0);
if (r == -1) if (r == -1)
{ {
DWORD dwErr = WSAGetLastError(); DWORD dwErr = WSAGetLastError();
...@@ -390,7 +390,7 @@ gnu::java::net::PlainSocketImpl$SocketOutputStream::write(jbyteArray b, ...@@ -390,7 +390,7 @@ gnu::java::net::PlainSocketImpl$SocketOutputStream::write(jbyteArray b,
int written = 0; int written = 0;
while (len > 0) while (len > 0)
{ {
int r = ::send (this$0->fnum, (char*) bytes, len, 0); int r = ::send (this$0->native_fd, (char*) bytes, len, 0);
if (r == -1) if (r == -1)
{ {
...@@ -425,7 +425,7 @@ gnu::java::net::PlainSocketImpl::sendUrgentData (jint) ...@@ -425,7 +425,7 @@ gnu::java::net::PlainSocketImpl::sendUrgentData (jint)
// read() helper // read() helper
static jint static jint
doRead(int fnum, void* buf, int count, int timeout) doRead(int native_fd, void* buf, int count, int timeout)
{ {
int r = 0; int r = 0;
DWORD dwErrorCode = 0; DWORD dwErrorCode = 0;
...@@ -438,7 +438,7 @@ doRead(int fnum, void* buf, int count, int timeout) ...@@ -438,7 +438,7 @@ doRead(int fnum, void* buf, int count, int timeout)
// gone from a non-zero to zero timeout. What we'd // gone from a non-zero to zero timeout. What we'd
// really need is a member state variable in addition // really need is a member state variable in addition
// to timeout // to timeout
int nRet= ::setsockopt(fnum, SOL_SOCKET, SO_RCVTIMEO, int nRet= ::setsockopt(native_fd, SOL_SOCKET, SO_RCVTIMEO,
(char*)&timeout, sizeof(timeout)); (char*)&timeout, sizeof(timeout));
if (nRet != NO_ERROR) if (nRet != NO_ERROR)
{ {
...@@ -446,7 +446,7 @@ doRead(int fnum, void* buf, int count, int timeout) ...@@ -446,7 +446,7 @@ doRead(int fnum, void* buf, int count, int timeout)
goto error; goto error;
} }
r = ::recv (fnum, (char*) buf, count, 0); r = ::recv (native_fd, (char*) buf, count, 0);
if (r == 0) if (r == 0)
return -1; return -1;
...@@ -485,7 +485,7 @@ jint ...@@ -485,7 +485,7 @@ jint
gnu::java::net::PlainSocketImpl$SocketInputStream::read(void) gnu::java::net::PlainSocketImpl$SocketInputStream::read(void)
{ {
jbyte b; jbyte b;
doRead(this$0->fnum, &b, 1, this$0->timeout); doRead(this$0->native_fd, &b, 1, this$0->timeout);
return b & 0xFF; return b & 0xFF;
} }
...@@ -505,7 +505,7 @@ gnu::java::net::PlainSocketImpl$SocketInputStream::read(jbyteArray buffer, ...@@ -505,7 +505,7 @@ gnu::java::net::PlainSocketImpl$SocketInputStream::read(jbyteArray buffer,
jbyte *bytes = elements (buffer) + offset; jbyte *bytes = elements (buffer) + offset;
// Read the socket. // Read the socket.
return doRead(this$0->fnum, bytes, count, this$0->timeout); return doRead(this$0->native_fd, bytes, count, this$0->timeout);
} }
// How many bytes are available? // How many bytes are available?
...@@ -514,7 +514,7 @@ gnu::java::net::PlainSocketImpl::available(void) ...@@ -514,7 +514,7 @@ gnu::java::net::PlainSocketImpl::available(void)
{ {
unsigned long num = 0; unsigned long num = 0;
if (::ioctlsocket (fnum, FIONREAD, &num) == SOCKET_ERROR) if (::ioctlsocket (native_fd, FIONREAD, &num) == SOCKET_ERROR)
_Jv_ThrowIOException (); _Jv_ThrowIOException ();
return (jint) num; return (jint) num;
...@@ -526,7 +526,7 @@ gnu::java::net::PlainSocketImpl::setOption (jint optID, ::java::lang::Object *va ...@@ -526,7 +526,7 @@ gnu::java::net::PlainSocketImpl::setOption (jint optID, ::java::lang::Object *va
int val; int val;
socklen_t val_len = sizeof (val); socklen_t val_len = sizeof (val);
if (fnum < 0) if (native_fd < 0)
throw new ::java::net::SocketException (JvNewStringUTF ("Socket closed")); throw new ::java::net::SocketException (JvNewStringUTF ("Socket closed"));
if (_Jv_IsInstanceOf (value, &::java::lang::Boolean::class$)) if (_Jv_IsInstanceOf (value, &::java::lang::Boolean::class$))
...@@ -558,13 +558,13 @@ gnu::java::net::PlainSocketImpl::setOption (jint optID, ::java::lang::Object *va ...@@ -558,13 +558,13 @@ gnu::java::net::PlainSocketImpl::setOption (jint optID, ::java::lang::Object *va
switch (optID) switch (optID)
{ {
case _Jv_TCP_NODELAY_ : case _Jv_TCP_NODELAY_ :
if (::setsockopt (fnum, IPPROTO_TCP, TCP_NODELAY, (char *) &val, if (::setsockopt (native_fd, IPPROTO_TCP, TCP_NODELAY, (char *) &val,
val_len) == SOCKET_ERROR) val_len) == SOCKET_ERROR)
goto error; goto error;
return; return;
case _Jv_SO_KEEPALIVE_ : case _Jv_SO_KEEPALIVE_ :
if (::setsockopt (fnum, SOL_SOCKET, SO_KEEPALIVE, (char *) &val, if (::setsockopt (native_fd, SOL_SOCKET, SO_KEEPALIVE, (char *) &val,
val_len) == SOCKET_ERROR) val_len) == SOCKET_ERROR)
goto error; goto error;
break; break;
...@@ -575,7 +575,7 @@ gnu::java::net::PlainSocketImpl::setOption (jint optID, ::java::lang::Object *va ...@@ -575,7 +575,7 @@ gnu::java::net::PlainSocketImpl::setOption (jint optID, ::java::lang::Object *va
break; break;
case _Jv_SO_OOBINLINE_ : case _Jv_SO_OOBINLINE_ :
if (::setsockopt (fnum, SOL_SOCKET, SO_OOBINLINE, (char *) &val, if (::setsockopt (native_fd, SOL_SOCKET, SO_OOBINLINE, (char *) &val,
val_len) == SOCKET_ERROR) val_len) == SOCKET_ERROR)
goto error; goto error;
break; break;
...@@ -585,7 +585,7 @@ gnu::java::net::PlainSocketImpl::setOption (jint optID, ::java::lang::Object *va ...@@ -585,7 +585,7 @@ gnu::java::net::PlainSocketImpl::setOption (jint optID, ::java::lang::Object *va
l_val.l_onoff = (val != -1); l_val.l_onoff = (val != -1);
l_val.l_linger = val; l_val.l_linger = val;
if (::setsockopt (fnum, SOL_SOCKET, SO_LINGER, (char *) &l_val, if (::setsockopt (native_fd, SOL_SOCKET, SO_LINGER, (char *) &l_val,
sizeof(l_val)) == SOCKET_ERROR) sizeof(l_val)) == SOCKET_ERROR)
goto error; goto error;
return; return;
...@@ -594,7 +594,7 @@ gnu::java::net::PlainSocketImpl::setOption (jint optID, ::java::lang::Object *va ...@@ -594,7 +594,7 @@ gnu::java::net::PlainSocketImpl::setOption (jint optID, ::java::lang::Object *va
case _Jv_SO_RCVBUF_ : case _Jv_SO_RCVBUF_ :
int opt; int opt;
optID == _Jv_SO_SNDBUF_ ? opt = SO_SNDBUF : opt = SO_RCVBUF; optID == _Jv_SO_SNDBUF_ ? opt = SO_SNDBUF : opt = SO_RCVBUF;
if (::setsockopt (fnum, SOL_SOCKET, opt, (char *) &val, if (::setsockopt (native_fd, SOL_SOCKET, opt, (char *) &val,
val_len) == SOCKET_ERROR) val_len) == SOCKET_ERROR)
goto error; goto error;
return; return;
...@@ -620,7 +620,7 @@ gnu::java::net::PlainSocketImpl::setOption (jint optID, ::java::lang::Object *va ...@@ -620,7 +620,7 @@ gnu::java::net::PlainSocketImpl::setOption (jint optID, ::java::lang::Object *va
break; break;
case _Jv_IP_TOS_ : case _Jv_IP_TOS_ :
if (::setsockopt (fnum, SOL_SOCKET, IP_TOS, (char *) &val, if (::setsockopt (native_fd, SOL_SOCKET, IP_TOS, (char *) &val,
val_len) == SOCKET_ERROR) val_len) == SOCKET_ERROR)
goto error; goto error;
break; break;
...@@ -655,7 +655,7 @@ gnu::java::net::PlainSocketImpl::getOption (jint optID) ...@@ -655,7 +655,7 @@ gnu::java::net::PlainSocketImpl::getOption (jint optID)
switch (optID) switch (optID)
{ {
case _Jv_TCP_NODELAY_ : case _Jv_TCP_NODELAY_ :
if (::getsockopt (fnum, IPPROTO_TCP, TCP_NODELAY, (char *) &val, if (::getsockopt (native_fd, IPPROTO_TCP, TCP_NODELAY, (char *) &val,
&val_len) == SOCKET_ERROR) &val_len) == SOCKET_ERROR)
goto error; goto error;
else else
...@@ -663,7 +663,7 @@ gnu::java::net::PlainSocketImpl::getOption (jint optID) ...@@ -663,7 +663,7 @@ gnu::java::net::PlainSocketImpl::getOption (jint optID)
break; break;
case _Jv_SO_LINGER_ : case _Jv_SO_LINGER_ :
if (::getsockopt (fnum, SOL_SOCKET, SO_LINGER, (char *) &l_val, if (::getsockopt (native_fd, SOL_SOCKET, SO_LINGER, (char *) &l_val,
&l_val_len) == SOCKET_ERROR) &l_val_len) == SOCKET_ERROR)
goto error; goto error;
...@@ -674,20 +674,20 @@ gnu::java::net::PlainSocketImpl::getOption (jint optID) ...@@ -674,20 +674,20 @@ gnu::java::net::PlainSocketImpl::getOption (jint optID)
break; break;
case _Jv_SO_KEEPALIVE_ : case _Jv_SO_KEEPALIVE_ :
if (::getsockopt (fnum, SOL_SOCKET, SO_KEEPALIVE, (char *) &val, if (::getsockopt (native_fd, SOL_SOCKET, SO_KEEPALIVE, (char *) &val,
&val_len) == SOCKET_ERROR) &val_len) == SOCKET_ERROR)
goto error; goto error;
else else
return new ::java::lang::Boolean (val != 0); return new ::java::lang::Boolean (val != 0);
case _Jv_SO_BROADCAST_ : case _Jv_SO_BROADCAST_ :
if (::getsockopt (fnum, SOL_SOCKET, SO_BROADCAST, (char *) &val, if (::getsockopt (native_fd, SOL_SOCKET, SO_BROADCAST, (char *) &val,
&val_len) == SOCKET_ERROR) &val_len) == SOCKET_ERROR)
goto error; goto error;
return new ::java::lang::Boolean ((jboolean)val); return new ::java::lang::Boolean ((jboolean)val);
case _Jv_SO_OOBINLINE_ : case _Jv_SO_OOBINLINE_ :
if (::getsockopt (fnum, SOL_SOCKET, SO_OOBINLINE, (char *) &val, if (::getsockopt (native_fd, SOL_SOCKET, SO_OOBINLINE, (char *) &val,
&val_len) == SOCKET_ERROR) &val_len) == SOCKET_ERROR)
goto error; goto error;
return new ::java::lang::Boolean ((jboolean)val); return new ::java::lang::Boolean ((jboolean)val);
...@@ -696,7 +696,7 @@ gnu::java::net::PlainSocketImpl::getOption (jint optID) ...@@ -696,7 +696,7 @@ gnu::java::net::PlainSocketImpl::getOption (jint optID)
case _Jv_SO_SNDBUF_ : case _Jv_SO_SNDBUF_ :
int opt; int opt;
optID == _Jv_SO_SNDBUF_ ? opt = SO_SNDBUF : opt = SO_RCVBUF; optID == _Jv_SO_SNDBUF_ ? opt = SO_SNDBUF : opt = SO_RCVBUF;
if (::getsockopt (fnum, SOL_SOCKET, opt, (char *) &val, if (::getsockopt (native_fd, SOL_SOCKET, opt, (char *) &val,
&val_len) == SOCKET_ERROR) &val_len) == SOCKET_ERROR)
goto error; goto error;
else else
...@@ -708,7 +708,7 @@ gnu::java::net::PlainSocketImpl::getOption (jint optID) ...@@ -708,7 +708,7 @@ gnu::java::net::PlainSocketImpl::getOption (jint optID)
{ {
jbyteArray laddr; jbyteArray laddr;
if (::getsockname (fnum, (sockaddr*) &u, if (::getsockname (native_fd, (sockaddr*) &u,
&addrlen) == SOCKET_ERROR) &addrlen) == SOCKET_ERROR)
goto error; goto error;
...@@ -748,7 +748,7 @@ gnu::java::net::PlainSocketImpl::getOption (jint optID) ...@@ -748,7 +748,7 @@ gnu::java::net::PlainSocketImpl::getOption (jint optID)
break; break;
case _Jv_IP_TOS_ : case _Jv_IP_TOS_ :
if (::getsockopt (fnum, SOL_SOCKET, IP_TOS, (char *) &val, if (::getsockopt (native_fd, SOL_SOCKET, IP_TOS, (char *) &val,
&val_len) == SOCKET_ERROR) &val_len) == SOCKET_ERROR)
goto error; goto error;
return new ::java::lang::Integer (val); return new ::java::lang::Integer (val);
...@@ -776,13 +776,13 @@ error: ...@@ -776,13 +776,13 @@ error:
void void
gnu::java::net::PlainSocketImpl::shutdownInput (void) gnu::java::net::PlainSocketImpl::shutdownInput (void)
{ {
if (::shutdown (fnum, 0)) if (::shutdown (native_fd, 0))
_Jv_ThrowSocketException (); _Jv_ThrowSocketException ();
} }
void void
gnu::java::net::PlainSocketImpl::shutdownOutput (void) gnu::java::net::PlainSocketImpl::shutdownOutput (void)
{ {
if (::shutdown (fnum, 1)) if (::shutdown (native_fd, 1))
_Jv_ThrowSocketException (); _Jv_ThrowSocketException ();
} }
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