summaryrefslogtreecommitdiffstats
path: root/libjava/gnu/java/net
diff options
context:
space:
mode:
authortromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>2007-04-02 22:10:41 +0000
committertromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>2007-04-02 22:10:41 +0000
commit96a2bbca23321e7168eb615216115c73e28d5bec (patch)
tree7ad846a0163eaba98c9fe1213f2b4a3a8a18a96c /libjava/gnu/java/net
parentba92127f798c3b172402aa216e316c8ec1b276c5 (diff)
downloadppe42-gcc-96a2bbca23321e7168eb615216115c73e28d5bec.tar.gz
ppe42-gcc-96a2bbca23321e7168eb615216115c73e28d5bec.zip
https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=233406
* gnu/java/net/natPlainSocketImplPosix.cc (create): Return if already created. * gnu/java/net/PlainSocketImpl.java (getLocalAddress): Handle case where localport is -1. (create): Now public. * gnu/java/nio/SocketChannelImpl.java (SocketChannelImpl): Call 'create' on the socket. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@123440 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/gnu/java/net')
-rw-r--r--libjava/gnu/java/net/PlainSocketImpl.java6
-rw-r--r--libjava/gnu/java/net/natPlainSocketImplPosix.cc4
2 files changed, 8 insertions, 2 deletions
diff --git a/libjava/gnu/java/net/PlainSocketImpl.java b/libjava/gnu/java/net/PlainSocketImpl.java
index dad1724d6b1..d2c8f02b67d 100644
--- a/libjava/gnu/java/net/PlainSocketImpl.java
+++ b/libjava/gnu/java/net/PlainSocketImpl.java
@@ -228,7 +228,9 @@ public final class PlainSocketImpl extends SocketImpl
*
* @param stream true for a stream socket, false for a datagram socket
*/
- protected native void create(boolean stream) throws IOException;
+ // FIXME: this is public for nio ... but this is just a hack
+ // until we upgrade to Classpath's nio.
+ public native void create(boolean stream) throws IOException;
/**
* Connects to the remote hostname and port specified as arguments.
@@ -336,7 +338,7 @@ public final class PlainSocketImpl extends SocketImpl
{
localSocketAddress
= new InetSocketAddress ((InetAddress) getOption(SocketOptions.SO_BINDADDR),
- localport);
+ localport == -1 ? 0 : localport);
}
catch (SocketException _)
{
diff --git a/libjava/gnu/java/net/natPlainSocketImplPosix.cc b/libjava/gnu/java/net/natPlainSocketImplPosix.cc
index d16f1d31f7b..b4f4a851e81 100644
--- a/libjava/gnu/java/net/natPlainSocketImplPosix.cc
+++ b/libjava/gnu/java/net/natPlainSocketImplPosix.cc
@@ -64,6 +64,10 @@ union SockAddr
void
gnu::java::net::PlainSocketImpl::create (jboolean stream)
{
+ // We might already have been create()d in the nio case.
+ if (native_fd != -1)
+ return;
+
int sock = _Jv_socket (AF_INET, stream ? SOCK_STREAM : SOCK_DGRAM, 0);
if (sock < 0)
OpenPOWER on IntegriCloud