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
This commit is contained in:
committed by
Michael Koch
parent
d23ad8c84e
commit
7c54b00335
@@ -45,8 +45,8 @@ import java.net.InetAddress;
|
||||
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;
|
||||
|
||||
/**
|
||||
@@ -94,7 +94,7 @@ public final class PlainDatagramSocketImpl extends DatagramSocketImpl
|
||||
/**
|
||||
* 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;
|
||||
@@ -116,7 +116,7 @@ public final class PlainDatagramSocketImpl extends DatagramSocketImpl
|
||||
{
|
||||
synchronized (this)
|
||||
{
|
||||
if (fnum != -1)
|
||||
if (native_fd != -1)
|
||||
close();
|
||||
}
|
||||
super.finalize();
|
||||
@@ -124,7 +124,7 @@ public final class PlainDatagramSocketImpl extends DatagramSocketImpl
|
||||
|
||||
public int getNativeFD()
|
||||
{
|
||||
return fnum;
|
||||
return native_fd;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
/* 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.
|
||||
|
||||
@@ -100,7 +101,7 @@ public final class PlainSocketImpl extends SocketImpl
|
||||
*
|
||||
* 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;
|
||||
@@ -129,14 +130,13 @@ public final class PlainSocketImpl extends SocketImpl
|
||||
{
|
||||
synchronized (this)
|
||||
{
|
||||
if (fnum != -1)
|
||||
if (native_fd != -1)
|
||||
try
|
||||
{
|
||||
close();
|
||||
}
|
||||
catch (IOException ex)
|
||||
{
|
||||
// ignore
|
||||
}
|
||||
}
|
||||
super.finalize();
|
||||
@@ -144,7 +144,7 @@ public final class PlainSocketImpl extends SocketImpl
|
||||
|
||||
public int getNativeFD()
|
||||
{
|
||||
return fnum;
|
||||
return native_fd;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -81,9 +81,9 @@ gnu::java::net::PlainDatagramSocketImpl::create ()
|
||||
|
||||
_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
|
||||
@@ -121,20 +121,20 @@ gnu::java::net::PlainDatagramSocketImpl::bind (jint lport,
|
||||
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;
|
||||
|
||||
@@ -167,7 +167,7 @@ gnu::java::net::PlainDatagramSocketImpl::peek (::java::net::InetAddress *i)
|
||||
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;
|
||||
@@ -212,23 +212,23 @@ gnu::java::net::PlainDatagramSocketImpl::peekData (::java::net::DatagramPacket *
|
||||
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;
|
||||
@@ -275,8 +275,8 @@ gnu::java::net::PlainDatagramSocketImpl::close ()
|
||||
|
||||
// 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;
|
||||
}
|
||||
|
||||
@@ -310,7 +310,7 @@ gnu::java::net::PlainDatagramSocketImpl::send (::java::net::DatagramPacket *p)
|
||||
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);
|
||||
@@ -331,23 +331,23 @@ gnu::java::net::PlainDatagramSocketImpl::receive (::java::net::DatagramPacket *p
|
||||
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;
|
||||
@@ -392,7 +392,7 @@ gnu::java::net::PlainDatagramSocketImpl::setTimeToLive (jint ttl)
|
||||
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);
|
||||
@@ -406,7 +406,7 @@ gnu::java::net::PlainDatagramSocketImpl::getTimeToLive ()
|
||||
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);
|
||||
@@ -466,7 +466,7 @@ gnu::java::net::PlainDatagramSocketImpl::mcastGrp (::java::net::InetAddress *ine
|
||||
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);
|
||||
@@ -480,7 +480,7 @@ gnu::java::net::PlainDatagramSocketImpl::setOption (jint optID,
|
||||
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$))
|
||||
@@ -513,7 +513,7 @@ gnu::java::net::PlainDatagramSocketImpl::setOption (jint optID,
|
||||
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;
|
||||
@@ -528,7 +528,7 @@ gnu::java::net::PlainDatagramSocketImpl::setOption (jint optID,
|
||||
#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 (
|
||||
@@ -537,7 +537,7 @@ gnu::java::net::PlainDatagramSocketImpl::setOption (jint optID,
|
||||
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
|
||||
@@ -583,7 +583,7 @@ gnu::java::net::PlainDatagramSocketImpl::setOption (jint optID,
|
||||
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;
|
||||
|
||||
@@ -598,7 +598,7 @@ gnu::java::net::PlainDatagramSocketImpl::setOption (jint optID,
|
||||
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;
|
||||
@@ -639,7 +639,7 @@ gnu::java::net::PlainDatagramSocketImpl::getOption (jint optID)
|
||||
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);
|
||||
@@ -654,7 +654,7 @@ gnu::java::net::PlainDatagramSocketImpl::getOption (jint optID)
|
||||
#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);
|
||||
@@ -668,7 +668,7 @@ gnu::java::net::PlainDatagramSocketImpl::getOption (jint optID)
|
||||
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)
|
||||
{
|
||||
@@ -691,7 +691,7 @@ gnu::java::net::PlainDatagramSocketImpl::getOption (jint optID)
|
||||
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);
|
||||
@@ -707,7 +707,7 @@ gnu::java::net::PlainDatagramSocketImpl::getOption (jint optID)
|
||||
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;
|
||||
|
||||
@@ -729,13 +729,13 @@ gnu::java::net::PlainDatagramSocketImpl::getOption (jint optID)
|
||||
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);
|
||||
|
||||
@@ -71,9 +71,9 @@ gnu::java::net::PlainDatagramSocketImpl::create ()
|
||||
|
||||
_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
|
||||
@@ -111,20 +111,20 @@ gnu::java::net::PlainDatagramSocketImpl::bind (jint lport,
|
||||
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;
|
||||
|
||||
@@ -157,7 +157,7 @@ gnu::java::net::PlainDatagramSocketImpl::peek (::java::net::InetAddress *i)
|
||||
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;
|
||||
@@ -204,14 +204,14 @@ gnu::java::net::PlainDatagramSocketImpl::peekData(::java::net::DatagramPacket *p
|
||||
|
||||
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;
|
||||
@@ -262,8 +262,8 @@ gnu::java::net::PlainDatagramSocketImpl::close ()
|
||||
|
||||
// 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;
|
||||
}
|
||||
|
||||
@@ -297,7 +297,7 @@ gnu::java::net::PlainDatagramSocketImpl::send (::java::net::DatagramPacket *p)
|
||||
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 ();
|
||||
@@ -321,14 +321,14 @@ gnu::java::net::PlainDatagramSocketImpl::receive (::java::net::DatagramPacket *p
|
||||
// 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;
|
||||
@@ -374,7 +374,7 @@ gnu::java::net::PlainDatagramSocketImpl::setTimeToLive (jint ttl)
|
||||
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 ();
|
||||
@@ -387,7 +387,7 @@ gnu::java::net::PlainDatagramSocketImpl::getTimeToLive ()
|
||||
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 ();
|
||||
@@ -446,7 +446,7 @@ gnu::java::net::PlainDatagramSocketImpl::mcastGrp (::java::net::InetAddress *ine
|
||||
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 ();
|
||||
@@ -459,7 +459,7 @@ gnu::java::net::PlainDatagramSocketImpl::setOption (jint optID,
|
||||
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$))
|
||||
@@ -492,7 +492,7 @@ gnu::java::net::PlainDatagramSocketImpl::setOption (jint optID,
|
||||
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;
|
||||
@@ -506,11 +506,11 @@ gnu::java::net::PlainDatagramSocketImpl::setOption (jint optID,
|
||||
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;
|
||||
@@ -552,7 +552,7 @@ gnu::java::net::PlainDatagramSocketImpl::setOption (jint optID,
|
||||
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;
|
||||
|
||||
@@ -567,7 +567,7 @@ gnu::java::net::PlainDatagramSocketImpl::setOption (jint optID,
|
||||
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;
|
||||
@@ -607,7 +607,7 @@ gnu::java::net::PlainDatagramSocketImpl::getOption (jint optID)
|
||||
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);
|
||||
@@ -621,7 +621,7 @@ gnu::java::net::PlainDatagramSocketImpl::getOption (jint optID)
|
||||
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);
|
||||
@@ -631,7 +631,7 @@ gnu::java::net::PlainDatagramSocketImpl::getOption (jint optID)
|
||||
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)
|
||||
{
|
||||
@@ -653,7 +653,7 @@ gnu::java::net::PlainDatagramSocketImpl::getOption (jint optID)
|
||||
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);
|
||||
@@ -664,7 +664,7 @@ gnu::java::net::PlainDatagramSocketImpl::getOption (jint optID)
|
||||
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;
|
||||
|
||||
@@ -682,13 +682,13 @@ gnu::java::net::PlainDatagramSocketImpl::getOption (jint optID)
|
||||
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);
|
||||
|
||||
@@ -73,9 +73,9 @@ gnu::java::net::PlainSocketImpl::create (jboolean stream)
|
||||
|
||||
_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
|
||||
@@ -113,16 +113,16 @@ gnu::java::net::PlainSocketImpl::bind (::java::net::InetAddress *host, jint lpor
|
||||
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;
|
||||
@@ -170,31 +170,31 @@ gnu::java::net::PlainSocketImpl::connect (::java::net::SocketAddress *addr,
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
@@ -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.
|
||||
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;
|
||||
@@ -220,7 +220,7 @@ gnu::java::net::PlainSocketImpl::connect (::java::net::SocketAddress *addr,
|
||||
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));
|
||||
@@ -235,23 +235,23 @@ gnu::java::net::PlainSocketImpl::accept (gnu::java::net::PlainSocketImpl *s)
|
||||
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;
|
||||
@@ -277,7 +277,7 @@ gnu::java::net::PlainSocketImpl::accept (gnu::java::net::PlainSocketImpl *s)
|
||||
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;
|
||||
@@ -296,7 +296,7 @@ gnu::java::net::PlainSocketImpl::close()
|
||||
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)
|
||||
{
|
||||
@@ -306,7 +306,7 @@ gnu::java::net::PlainSocketImpl::close()
|
||||
throw new ::java::io::IOException (JvNewStringUTF (strerror (errno)));
|
||||
}
|
||||
// Safe place to reset the file pointer.
|
||||
fnum = -1;
|
||||
native_fd = -1;
|
||||
timeout = 0;
|
||||
}
|
||||
|
||||
@@ -319,7 +319,7 @@ gnu::java::net::PlainSocketImpl$SocketOutputStream::write(jint b)
|
||||
|
||||
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())
|
||||
@@ -352,7 +352,7 @@ gnu::java::net::PlainSocketImpl$SocketOutputStream::write(jbyteArray b, jint off
|
||||
|
||||
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)
|
||||
{
|
||||
@@ -389,22 +389,22 @@ gnu::java::net::PlainSocketImpl$SocketInputStream::read(void)
|
||||
{
|
||||
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)
|
||||
@@ -414,7 +414,7 @@ gnu::java::net::PlainSocketImpl$SocketInputStream::read(void)
|
||||
// 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;
|
||||
@@ -445,7 +445,7 @@ jint
|
||||
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)
|
||||
@@ -459,19 +459,19 @@ gnu::java::net::PlainSocketImpl$SocketInputStream::read(jbyteArray buffer, jint
|
||||
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.
|
||||
@@ -485,7 +485,7 @@ gnu::java::net::PlainSocketImpl$SocketInputStream::read(jbyteArray buffer, jint
|
||||
}
|
||||
|
||||
// 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;
|
||||
@@ -521,7 +521,7 @@ gnu::java::net::PlainSocketImpl::available(void)
|
||||
bool num_set = false;
|
||||
|
||||
#if defined(FIONREAD)
|
||||
r = ::ioctl (fnum, FIONREAD, &num);
|
||||
r = ::ioctl (native_fd, FIONREAD, &num);
|
||||
|
||||
if (r == -1 && errno == ENOTTY)
|
||||
{
|
||||
@@ -532,7 +532,7 @@ gnu::java::net::PlainSocketImpl::available(void)
|
||||
else
|
||||
num_set = true;
|
||||
#elif defined(HAVE_SELECT)
|
||||
if (fnum < 0)
|
||||
if (native_fd < 0)
|
||||
{
|
||||
errno = EBADF;
|
||||
r = -1;
|
||||
@@ -549,15 +549,15 @@ gnu::java::net::PlainSocketImpl::available(void)
|
||||
|
||||
#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;
|
||||
@@ -576,7 +576,7 @@ gnu::java::net::PlainSocketImpl::setOption (jint optID, ::java::lang::Object *va
|
||||
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$))
|
||||
@@ -609,7 +609,7 @@ gnu::java::net::PlainSocketImpl::setOption (jint optID, ::java::lang::Object *va
|
||||
{
|
||||
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
|
||||
@@ -619,7 +619,7 @@ gnu::java::net::PlainSocketImpl::setOption (jint optID, ::java::lang::Object *va
|
||||
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;
|
||||
@@ -630,7 +630,7 @@ gnu::java::net::PlainSocketImpl::setOption (jint optID, ::java::lang::Object *va
|
||||
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;
|
||||
@@ -641,7 +641,7 @@ gnu::java::net::PlainSocketImpl::setOption (jint optID, ::java::lang::Object *va
|
||||
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
|
||||
@@ -655,7 +655,7 @@ gnu::java::net::PlainSocketImpl::setOption (jint optID, ::java::lang::Object *va
|
||||
#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 (
|
||||
@@ -684,7 +684,7 @@ gnu::java::net::PlainSocketImpl::setOption (jint optID, ::java::lang::Object *va
|
||||
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;
|
||||
@@ -721,7 +721,7 @@ gnu::java::net::PlainSocketImpl::getOption (jint optID)
|
||||
{
|
||||
#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
|
||||
@@ -734,7 +734,7 @@ gnu::java::net::PlainSocketImpl::getOption (jint optID)
|
||||
|
||||
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;
|
||||
|
||||
@@ -749,20 +749,20 @@ gnu::java::net::PlainSocketImpl::getOption (jint optID)
|
||||
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);
|
||||
@@ -772,7 +772,7 @@ gnu::java::net::PlainSocketImpl::getOption (jint optID)
|
||||
#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);
|
||||
@@ -787,7 +787,7 @@ gnu::java::net::PlainSocketImpl::getOption (jint optID)
|
||||
{
|
||||
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)
|
||||
@@ -826,7 +826,7 @@ gnu::java::net::PlainSocketImpl::getOption (jint optID)
|
||||
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);
|
||||
@@ -853,13 +853,13 @@ gnu::java::net::PlainSocketImpl::getOption (jint optID)
|
||||
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)));
|
||||
}
|
||||
|
||||
@@ -54,9 +54,9 @@ gnu::java::net::PlainSocketImpl::create (jboolean stream)
|
||||
|
||||
_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
|
||||
@@ -94,16 +94,16 @@ gnu::java::net::PlainSocketImpl::bind (::java::net::InetAddress *host, jint lpor
|
||||
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;
|
||||
@@ -165,10 +165,10 @@ gnu::java::net::PlainSocketImpl::connect (::java::net::SocketAddress *addr,
|
||||
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 ();
|
||||
@@ -189,7 +189,7 @@ gnu::java::net::PlainSocketImpl::connect (::java::net::SocketAddress *addr,
|
||||
// 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 ();
|
||||
@@ -203,7 +203,7 @@ gnu::java::net::PlainSocketImpl::connect (::java::net::SocketAddress *addr,
|
||||
}
|
||||
else
|
||||
{
|
||||
if (::connect (fnum, ptr, len) == SOCKET_ERROR)
|
||||
if (::connect (native_fd, ptr, len) == SOCKET_ERROR)
|
||||
throwConnectException();
|
||||
}
|
||||
|
||||
@@ -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.
|
||||
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();
|
||||
@@ -223,7 +223,7 @@ gnu::java::net::PlainSocketImpl::connect (::java::net::SocketAddress *addr,
|
||||
void
|
||||
gnu::java::net::PlainSocketImpl::listen (jint backlog)
|
||||
{
|
||||
if (::listen (fnum, backlog) == SOCKET_ERROR)
|
||||
if (::listen (native_fd, backlog) == SOCKET_ERROR)
|
||||
{
|
||||
_Jv_ThrowIOException ();
|
||||
}
|
||||
@@ -239,15 +239,15 @@ gnu::java::net::PlainSocketImpl::accept (gnu::java::net::PlainSocketImpl *s)
|
||||
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))
|
||||
{
|
||||
@@ -285,7 +285,7 @@ gnu::java::net::PlainSocketImpl::accept (gnu::java::net::PlainSocketImpl *s)
|
||||
}
|
||||
else
|
||||
{
|
||||
new_socket = ::accept (fnum, (sockaddr*) &u, &addrlen);
|
||||
new_socket = ::accept (native_fd, (sockaddr*) &u, &addrlen);
|
||||
}
|
||||
|
||||
if (new_socket == int(INVALID_SOCKET))
|
||||
@@ -312,7 +312,7 @@ gnu::java::net::PlainSocketImpl::accept (gnu::java::net::PlainSocketImpl *s)
|
||||
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;
|
||||
@@ -330,7 +330,7 @@ gnu::java::net::PlainSocketImpl::close()
|
||||
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)
|
||||
{
|
||||
@@ -342,7 +342,7 @@ gnu::java::net::PlainSocketImpl::close()
|
||||
_Jv_ThrowIOException ();
|
||||
}
|
||||
// Safe place to reset the file pointer.
|
||||
fnum = -1;
|
||||
native_fd = -1;
|
||||
timeout = 0;
|
||||
}
|
||||
|
||||
@@ -355,7 +355,7 @@ gnu::java::net::PlainSocketImpl$SocketOutputStream::write(jint b)
|
||||
|
||||
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();
|
||||
@@ -390,7 +390,7 @@ gnu::java::net::PlainSocketImpl$SocketOutputStream::write(jbyteArray b,
|
||||
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)
|
||||
{
|
||||
@@ -425,7 +425,7 @@ gnu::java::net::PlainSocketImpl::sendUrgentData (jint)
|
||||
|
||||
// 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;
|
||||
@@ -438,7 +438,7 @@ doRead(int fnum, void* buf, int count, int timeout)
|
||||
// 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)
|
||||
{
|
||||
@@ -446,7 +446,7 @@ doRead(int fnum, void* buf, int count, int timeout)
|
||||
goto error;
|
||||
}
|
||||
|
||||
r = ::recv (fnum, (char*) buf, count, 0);
|
||||
r = ::recv (native_fd, (char*) buf, count, 0);
|
||||
|
||||
if (r == 0)
|
||||
return -1;
|
||||
@@ -485,7 +485,7 @@ jint
|
||||
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;
|
||||
}
|
||||
|
||||
@@ -505,7 +505,7 @@ gnu::java::net::PlainSocketImpl$SocketInputStream::read(jbyteArray buffer,
|
||||
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?
|
||||
@@ -514,7 +514,7 @@ gnu::java::net::PlainSocketImpl::available(void)
|
||||
{
|
||||
unsigned long num = 0;
|
||||
|
||||
if (::ioctlsocket (fnum, FIONREAD, &num) == SOCKET_ERROR)
|
||||
if (::ioctlsocket (native_fd, FIONREAD, &num) == SOCKET_ERROR)
|
||||
_Jv_ThrowIOException ();
|
||||
|
||||
return (jint) num;
|
||||
@@ -526,7 +526,7 @@ gnu::java::net::PlainSocketImpl::setOption (jint optID, ::java::lang::Object *va
|
||||
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$))
|
||||
@@ -558,13 +558,13 @@ gnu::java::net::PlainSocketImpl::setOption (jint optID, ::java::lang::Object *va
|
||||
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;
|
||||
@@ -575,7 +575,7 @@ gnu::java::net::PlainSocketImpl::setOption (jint optID, ::java::lang::Object *va
|
||||
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;
|
||||
@@ -585,7 +585,7 @@ gnu::java::net::PlainSocketImpl::setOption (jint optID, ::java::lang::Object *va
|
||||
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;
|
||||
@@ -594,7 +594,7 @@ gnu::java::net::PlainSocketImpl::setOption (jint optID, ::java::lang::Object *va
|
||||
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;
|
||||
@@ -620,7 +620,7 @@ gnu::java::net::PlainSocketImpl::setOption (jint optID, ::java::lang::Object *va
|
||||
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;
|
||||
@@ -655,7 +655,7 @@ gnu::java::net::PlainSocketImpl::getOption (jint optID)
|
||||
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
|
||||
@@ -663,7 +663,7 @@ gnu::java::net::PlainSocketImpl::getOption (jint optID)
|
||||
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;
|
||||
|
||||
@@ -674,20 +674,20 @@ gnu::java::net::PlainSocketImpl::getOption (jint optID)
|
||||
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);
|
||||
@@ -696,7 +696,7 @@ gnu::java::net::PlainSocketImpl::getOption (jint optID)
|
||||
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
|
||||
@@ -708,7 +708,7 @@ gnu::java::net::PlainSocketImpl::getOption (jint optID)
|
||||
{
|
||||
jbyteArray laddr;
|
||||
|
||||
if (::getsockname (fnum, (sockaddr*) &u,
|
||||
if (::getsockname (native_fd, (sockaddr*) &u,
|
||||
&addrlen) == SOCKET_ERROR)
|
||||
goto error;
|
||||
|
||||
@@ -748,7 +748,7 @@ gnu::java::net::PlainSocketImpl::getOption (jint optID)
|
||||
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);
|
||||
@@ -776,13 +776,13 @@ error:
|
||||
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 ();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user