+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>
* posix-threads.cc (_Jv_CondNotify,_Jv_CondNotifyAll): Rename
import java.net.InetSocketAddress;
import java.net.NetworkInterface;
import java.net.SocketAddress;
-import java.net.SocketOptions;
import java.net.SocketException;
+import java.net.SocketOptions;
import gnu.classpath.Configuration;
/**
/**
* This is the actual underlying file descriptor
*/
- int fnum = -1;
+ int native_fd = -1;
// FIXME: Is this necessary? Could it help w/ DatagramSocket.getLocalAddress?
// InetAddress address;
{
synchronized (this)
{
- if (fnum != -1)
+ if (native_fd != -1)
close();
}
super.finalize();
public int getNativeFD()
{
- return fnum;
+ return native_fd;
}
/**
/* 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.
*
* 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.
int timeout = 0;
{
synchronized (this)
{
- if (fnum != -1)
+ if (native_fd != -1)
try
{
close();
}
catch (IOException ex)
{
- // ignore
}
}
super.finalize();
public int getNativeFD()
{
- return fnum;
+ return native_fd;
}
/**
_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.
- fnum = sock;
+ native_fd = sock;
}
void
else
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);
if (lport != 0)
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);
else
goto error;
/* Allow broadcast by default. */
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)
goto error;
union SockAddr u;
socklen_t addrlen = sizeof(u);
ssize_t retlen =
- ::recvfrom (fnum, (char *) NULL, 0, MSG_PEEK, (sockaddr*) &u,
+ ::recvfrom (native_fd, (char *) NULL, 0, MSG_PEEK, (sockaddr*) &u,
&addrlen);
if (retlen < 0)
goto error;
ssize_t retlen = 0;
// 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;
struct timeval tv;
FD_ZERO(&rset);
- FD_SET(fnum, &rset);
+ FD_SET(native_fd, &rset);
tv.tv_sec = timeout / 1000;
tv.tv_usec = (timeout % 1000) * 1000;
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;
else if (retval == 0)
throw new ::java::io::InterruptedIOException ();
}
retlen =
- ::recvfrom (fnum, (char *) dbytes, p->getLength(), MSG_PEEK, (sockaddr*) &u,
+ ::recvfrom (native_fd, (char *) dbytes, p->getLength(), MSG_PEEK, (sockaddr*) &u,
&addrlen);
if (retlen < 0)
goto error;
// The method isn't declared to throw anything, so we disregard
// the return value.
- _Jv_close (fnum);
- fnum = -1;
+ _Jv_close (native_fd);
+ native_fd = -1;
timeout = 0;
}
else
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;
char* strerr = strerror (errno);
ssize_t retlen = 0;
// 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;
struct timeval tv;
FD_ZERO(&rset);
- FD_SET(fnum, &rset);
+ FD_SET(native_fd, &rset);
tv.tv_sec = timeout / 1000;
tv.tv_usec = (timeout % 1000) * 1000;
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;
else if (retval == 0)
throw new ::java::io::InterruptedIOException ();
}
retlen =
- ::recvfrom (fnum, (char *) dbytes, p->getLength(), 0, (sockaddr*) &u,
+ ::recvfrom (native_fd, (char *) dbytes, p->getLength(), 0, (sockaddr*) &u,
&addrlen);
if (retlen < 0)
goto error;
char val = (char) ttl;
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;
char* strerr = strerror (errno);
char 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;
char* strerr = strerror (errno);
else
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;
char* strerr = strerror (errno);
int val;
socklen_t val_len = sizeof (val);
- if (fnum < 0)
+ if (native_fd < 0)
throw new ::java::net::SocketException (JvNewStringUTF ("Socket closed"));
if (_Jv_IsInstanceOf (value, &::java::lang::Boolean::class$))
return;
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)
goto error;
break;
#if defined(SO_SNDBUF) && defined(SO_RCVBUF)
int opt;
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;
#else
throw new ::java::lang::InternalError (
return;
case _Jv_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)
goto error;
#else
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)
goto error;
return;
break;
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)
goto error;
return;
break;
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)
goto error;
return new ::java::lang::Boolean (val != 0);
#if defined(SO_SNDBUF) && defined(SO_RCVBUF)
int opt;
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;
else
return new ::java::lang::Integer (val);
if (localAddress == NULL)
{
jbyteArray laddr;
- if (::getsockname (fnum, (sockaddr*) &u, &addrlen) != 0)
+ if (::getsockname (native_fd, (sockaddr*) &u, &addrlen) != 0)
goto error;
if (u.address.sin_family == AF_INET)
{
break;
case _Jv_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)
goto error;
return new ::java::lang::Boolean (val != 0);
char *bytes;
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)
goto error;
break;
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)
goto error;
return new ::java::lang::Boolean (val != 0);
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)
goto error;
return new ::java::lang::Integer (val);
_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.
- fnum = (int) sock;
+ native_fd = (int) sock;
}
void
else
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);
if (lport != 0)
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);
else
goto error;
/* Allow broadcast by default. */
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)
goto error;
union SockAddr u;
socklen_t addrlen = sizeof(u);
ssize_t retlen =
- ::recvfrom (fnum, (char *) NULL, 0, MSG_PEEK, (sockaddr*) &u,
+ ::recvfrom (native_fd, (char *) NULL, 0, MSG_PEEK, (sockaddr*) &u,
&addrlen);
if (retlen < 0)
goto error;
if (timeout > 0)
{
- int nRet= ::setsockopt(fnum, SOL_SOCKET, SO_RCVTIMEO,
+ int nRet= ::setsockopt(native_fd, SOL_SOCKET, SO_RCVTIMEO,
(char*)&timeout, sizeof(timeout));
if (nRet != NO_ERROR)
goto error;
}
retlen =
- ::recvfrom (fnum, (char *) dbytes, p->getLength(), MSG_PEEK, (sockaddr*) &u,
+ ::recvfrom (native_fd, (char *) dbytes, p->getLength(), MSG_PEEK, (sockaddr*) &u,
&addrlen);
if (retlen == SOCKET_ERROR)
goto error;
// The method isn't declared to throw anything, so we disregard
// the return value.
- ::closesocket (fnum);
- fnum = -1;
+ ::closesocket (native_fd);
+ native_fd = -1;
timeout = 0;
}
else
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;
DWORD dwErrorCode = WSAGetLastError ();
// This implementation doesn't allow specifying an infinite
// timeout after specifying a finite one, but Sun's JDK 1.4.1
// 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));
if (nRet != NO_ERROR)
goto error;
}
retlen =
- ::recvfrom (fnum, (char *) dbytes, p->getLength(), 0, (sockaddr*) &u,
+ ::recvfrom (native_fd, (char *) dbytes, p->getLength(), 0, (sockaddr*) &u,
&addrlen);
if (retlen < 0)
goto error;
char val = (char) ttl;
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;
_Jv_ThrowIOException ();
char 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;
_Jv_ThrowIOException ();
else
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;
_Jv_ThrowIOException ();
int val;
socklen_t val_len = sizeof (val);
- if (fnum < 0)
+ if (native_fd < 0)
throw new ::java::net::SocketException (JvNewStringUTF ("Socket closed"));
if (_Jv_IsInstanceOf (value, &::java::lang::Boolean::class$))
return;
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)
goto error;
break;
case _Jv_SO_RCVBUF_ :
int opt;
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;
return;
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)
goto error;
return;
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)
goto error;
return;
break;
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)
goto error;
return;
break;
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)
goto error;
return new ::java::lang::Boolean (val != 0);
case _Jv_SO_SNDBUF_ :
int opt;
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;
else
return new ::java::lang::Integer (val);
if (localAddress == NULL)
{
jbyteArray laddr;
- if (::getsockname (fnum, (sockaddr*) &u, &addrlen) != 0)
+ if (::getsockname (native_fd, (sockaddr*) &u, &addrlen) != 0)
goto error;
if (u.address.sin_family == AF_INET)
{
return localAddress;
break;
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)
goto error;
return new ::java::lang::Boolean (val != 0);
char *bytes;
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)
goto error;
break;
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)
goto error;
return new ::java::lang::Boolean (val != 0);
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)
goto error;
return new ::java::lang::Integer (val);
_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.
- fnum = sock;
+ native_fd = sock;
}
void
throw new ::java::net::SocketException (JvNewStringUTF ("invalid length"));
// 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;
socklen_t addrlen = sizeof(u);
if (lport != 0)
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);
else
goto error;
if (timeout > 0)
{
- int flags = ::fcntl (fnum, F_GETFL);
- ::fcntl (fnum, F_SETFL, flags | O_NONBLOCK);
+ int flags = ::fcntl (native_fd, F_GETFL);
+ ::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;
fd_set fset;
struct timeval tv;
FD_ZERO(&fset);
- FD_SET(fnum, &fset);
+ FD_SET(native_fd, &fset);
tv.tv_sec = timeout / 1000;
tv.tv_usec = (timeout % 1000) * 1000;
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;
else if (retval == 0)
throw new ::java::net::SocketTimeoutException
(JvNewStringUTF ("Connect timed out"));
// Set the socket back into a blocking state.
- ::fcntl (fnum, F_SETFL, flags);
+ ::fcntl (native_fd, F_SETFL, flags);
}
else
{
- if (_Jv_connect (fnum, ptr, len) != 0)
+ if (_Jv_connect (native_fd, ptr, len) != 0)
goto error;
}
// A bind may not have been done on this socket; if so, set localport now.
if (localport == 0)
{
- if (::getsockname (fnum, (sockaddr*) &u, &addrlen) == 0)
+ if (::getsockname (native_fd, (sockaddr*) &u, &addrlen) == 0)
localport = ntohs (u.address.sin_port);
else
goto error;
void
gnu::java::net::PlainSocketImpl::listen (jint backlog)
{
- if (::listen (fnum, backlog) != 0)
+ if (::listen (native_fd, backlog) != 0)
{
char* strerr = strerror (errno);
throw new ::java::io::IOException (JvNewStringUTF (strerr));
int new_socket = 0;
// 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;
struct timeval tv;
FD_ZERO(&fset);
- FD_SET(fnum, &fset);
+ FD_SET(native_fd, &fset);
tv.tv_sec = timeout / 1000;
tv.tv_usec = (timeout % 1000) * 1000;
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;
else if (retval == 0)
throw new ::java::net::SocketTimeoutException (
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)
goto error;
else
throw new ::java::net::SocketException (JvNewStringUTF ("invalid family"));
- s->fnum = new_socket;
+ s->native_fd = new_socket;
s->localport = localport;
s->address = new ::java::net::InetAddress (raddr, NULL);
s->port = rport;
JvSynchronize sync (this);
// 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)
{
throw new ::java::io::IOException (JvNewStringUTF (strerror (errno)));
}
// Safe place to reset the file pointer.
- fnum = -1;
+ native_fd = -1;
timeout = 0;
}
while (r != 1)
{
- r = _Jv_write (this$0->fnum, &d, 1);
+ r = _Jv_write (this$0->native_fd, &d, 1);
if (r == -1)
{
if (::java::lang::Thread::interrupted())
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)
{
{
jbyte b;
jint timeout = this$0->timeout;
- jint fnum = this$0->fnum;
+ jint native_fd = this$0->native_fd;
// 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.
fd_set 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.
struct timeval timeout_value;
timeout_value.tv_sec = timeout / 1000;
timeout_value.tv_usec = (timeout % 1000) * 1000;
// Select on the fds.
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...
// that means we've timed out.
if (sel_retval == 0)
// 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)
return -1;
gnu::java::net::PlainSocketImpl$SocketInputStream::read(jbyteArray buffer, jint offset,
jint count)
{
- jint fnum = this$0->fnum;
+ jint native_fd = this$0->native_fd;
jint timeout = this$0->timeout;
if (! buffer)
jbyte *bytes = elements (buffer) + offset;
// 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.
fd_set 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.
struct timeval timeout_value;
timeout_value.tv_sec = timeout / 1000;
timeout_value.tv_usec =(timeout % 1000) * 1000;
// Select on the fds.
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.
// error returns still require us to try to read
// the socket to see what happened.
}
// Read the socket.
- int r = ::recv (fnum, (char *) bytes, count, 0);
+ int r = ::recv (native_fd, (char *) bytes, count, 0);
if (r == 0)
return -1;
bool num_set = false;
#if defined(FIONREAD)
- r = ::ioctl (fnum, FIONREAD, &num);
+ r = ::ioctl (native_fd, FIONREAD, &num);
if (r == -1 && errno == ENOTTY)
{
else
num_set = true;
#elif defined(HAVE_SELECT)
- if (fnum < 0)
+ if (native_fd < 0)
{
errno = EBADF;
r = -1;
#if defined(HAVE_SELECT)
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_ZERO (&rd);
- FD_SET (fnum, &rd);
+ FD_SET (native_fd, &rd);
struct timeval tv;
tv.tv_sec = 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)
goto posix_error;
num = r == 0 ? 0 : 1;
int val;
socklen_t val_len = sizeof (val);
- if (fnum < 0)
+ if (native_fd < 0)
throw new ::java::net::SocketException (JvNewStringUTF ("Socket closed"));
if (_Jv_IsInstanceOf (value, &::java::lang::Boolean::class$))
{
case _Jv_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)
goto error;
#else
return;
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)
goto error;
break;
break;
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)
goto error;
break;
l_val.l_onoff = (val != -1);
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)
goto error;
#else
#if defined(SO_SNDBUF) && defined(SO_RCVBUF)
int opt;
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;
#else
throw new ::java::lang::InternalError (
break;
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)
goto error;
break;
{
#ifdef 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)
goto error;
else
case _Jv_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)
goto error;
break;
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)
goto error;
else
return new ::java::lang::Boolean (val != 0);
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)
goto error;
return new ::java::lang::Boolean ((jboolean)val);
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)
goto error;
return new ::java::lang::Boolean ((jboolean)val);
#if defined(SO_SNDBUF) && defined(SO_RCVBUF)
int opt;
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;
else
return new ::java::lang::Integer (val);
{
jbyteArray laddr;
- if (::getsockname (fnum, (sockaddr*) &u, &addrlen) != 0)
+ if (::getsockname (native_fd, (sockaddr*) &u, &addrlen) != 0)
goto error;
if (u.address.sin_family == AF_INET)
break;
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)
goto error;
return new ::java::lang::Integer (val);
void
gnu::java::net::PlainSocketImpl::shutdownInput (void)
{
- if (::shutdown (fnum, 0))
+ if (::shutdown (native_fd, 0))
throw new ::java::net::SocketException (JvNewStringUTF (strerror (errno)));
}
void
gnu::java::net::PlainSocketImpl::shutdownOutput (void)
{
- if (::shutdown (fnum, 1))
+ if (::shutdown (native_fd, 1))
throw new ::java::net::SocketException (JvNewStringUTF (strerror (errno)));
}
_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.
- fnum = sock;
+ native_fd = sock;
}
void
throw new ::java::net::SocketException (JvNewStringUTF ("invalid length"));
// 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;
socklen_t addrlen = sizeof(u);
if (lport != 0)
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);
else
goto error;
if (timeout > 0)
{
// 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 ();
- if (::connect (fnum, ptr, len) == SOCKET_ERROR)
+ if (::connect (native_fd, ptr, len) == SOCKET_ERROR)
{
if (WSAGetLastError () != WSAEWOULDBLOCK)
throwConnectException ();
// connect() succeeded. Use any socket-specific error code
// instead of the thread-based one.
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)
{
throwConnectException ();
}
else
{
- if (::connect (fnum, ptr, len) == SOCKET_ERROR)
+ if (::connect (native_fd, ptr, len) == SOCKET_ERROR)
throwConnectException();
}
// A bind may not have been done on this socket; if so, set localport now.
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);
else
throwConnectException();
void
gnu::java::net::PlainSocketImpl::listen (jint backlog)
{
- if (::listen (fnum, backlog) == SOCKET_ERROR)
+ if (::listen (native_fd, backlog) == SOCKET_ERROR)
{
_Jv_ThrowIOException ();
}
if (timeout > 0)
{
// 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
// associated WSAEVENT, etc.
- WSAEventWrapper aWSAEventWrapper(fnum, FD_ACCEPT);
+ WSAEventWrapper aWSAEventWrapper(native_fd, FD_ACCEPT);
WSAEVENT hEvent = aWSAEventWrapper.getEventHandle ();
for (;;)
{
- new_socket = ::accept (fnum, (sockaddr*) &u, &addrlen);
+ new_socket = ::accept (native_fd, (sockaddr*) &u, &addrlen);
if (new_socket != int(INVALID_SOCKET))
{
}
else
{
- new_socket = ::accept (fnum, (sockaddr*) &u, &addrlen);
+ new_socket = ::accept (native_fd, (sockaddr*) &u, &addrlen);
}
if (new_socket == int(INVALID_SOCKET))
else
throw new ::java::net::SocketException (JvNewStringUTF ("invalid family"));
- s->fnum = new_socket;
+ s->native_fd = new_socket;
s->localport = localport;
s->address = new ::java::net::InetAddress (raddr, NULL);
s->port = rport;
JvSynchronize sync (this);
// should we use shutdown here? how would that effect so_linger?
- int res = ::closesocket (fnum);
+ int res = ::closesocket (native_fd);
if (res == -1)
{
_Jv_ThrowIOException ();
}
// Safe place to reset the file pointer.
- fnum = -1;
+ native_fd = -1;
timeout = 0;
}
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)
{
DWORD dwErr = WSAGetLastError();
int written = 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)
{
// read() helper
static jint
-doRead(int fnum, void* buf, int count, int timeout)
+doRead(int native_fd, void* buf, int count, int timeout)
{
int r = 0;
DWORD dwErrorCode = 0;
// gone from a non-zero to zero timeout. What we'd
// really need is a member state variable in addition
// to timeout
- int nRet= ::setsockopt(fnum, SOL_SOCKET, SO_RCVTIMEO,
+ int nRet= ::setsockopt(native_fd, SOL_SOCKET, SO_RCVTIMEO,
(char*)&timeout, sizeof(timeout));
if (nRet != NO_ERROR)
{
goto error;
}
- r = ::recv (fnum, (char*) buf, count, 0);
+ r = ::recv (native_fd, (char*) buf, count, 0);
if (r == 0)
return -1;
gnu::java::net::PlainSocketImpl$SocketInputStream::read(void)
{
jbyte b;
- doRead(this$0->fnum, &b, 1, this$0->timeout);
+ doRead(this$0->native_fd, &b, 1, this$0->timeout);
return b & 0xFF;
}
jbyte *bytes = elements (buffer) + offset;
// 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?
{
unsigned long num = 0;
- if (::ioctlsocket (fnum, FIONREAD, &num) == SOCKET_ERROR)
+ if (::ioctlsocket (native_fd, FIONREAD, &num) == SOCKET_ERROR)
_Jv_ThrowIOException ();
return (jint) num;
int val;
socklen_t val_len = sizeof (val);
- if (fnum < 0)
+ if (native_fd < 0)
throw new ::java::net::SocketException (JvNewStringUTF ("Socket closed"));
if (_Jv_IsInstanceOf (value, &::java::lang::Boolean::class$))
switch (optID)
{
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)
goto error;
return;
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)
goto error;
break;
break;
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)
goto error;
break;
l_val.l_onoff = (val != -1);
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)
goto error;
return;
case _Jv_SO_RCVBUF_ :
int opt;
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)
goto error;
return;
break;
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)
goto error;
break;
switch (optID)
{
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)
goto error;
else
break;
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)
goto error;
break;
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)
goto error;
else
return new ::java::lang::Boolean (val != 0);
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)
goto error;
return new ::java::lang::Boolean ((jboolean)val);
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)
goto error;
return new ::java::lang::Boolean ((jboolean)val);
case _Jv_SO_SNDBUF_ :
int opt;
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)
goto error;
else
{
jbyteArray laddr;
- if (::getsockname (fnum, (sockaddr*) &u,
+ if (::getsockname (native_fd, (sockaddr*) &u,
&addrlen) == SOCKET_ERROR)
goto error;
break;
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)
goto error;
return new ::java::lang::Integer (val);
void
gnu::java::net::PlainSocketImpl::shutdownInput (void)
{
- if (::shutdown (fnum, 0))
+ if (::shutdown (native_fd, 0))
_Jv_ThrowSocketException ();
}
void
gnu::java::net::PlainSocketImpl::shutdownOutput (void)
{
- if (::shutdown (fnum, 1))
+ if (::shutdown (native_fd, 1))
_Jv_ThrowSocketException ();
}