natPlainSocketImplPosix.cc (create): Return if already created.
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. From-SVN: r123440
This commit is contained in:
parent
c8bbabf282
commit
c44cc446f7
10 changed files with 21 additions and 3 deletions
|
@ -1,3 +1,14 @@
|
||||||
|
2007-04-02 Tom Tromey <tromey@redhat.com>
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
2007-04-02 Andrew Haley <aph@redhat.com>
|
2007-04-02 Andrew Haley <aph@redhat.com>
|
||||||
|
|
||||||
* java/lang/reflect/natVMProxy.cc (run_proxy): Use
|
* java/lang/reflect/natVMProxy.cc (run_proxy): Use
|
||||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -228,7 +228,9 @@ public final class PlainSocketImpl extends SocketImpl
|
||||||
*
|
*
|
||||||
* @param stream true for a stream socket, false for a datagram socket
|
* @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.
|
* Connects to the remote hostname and port specified as arguments.
|
||||||
|
@ -336,7 +338,7 @@ public final class PlainSocketImpl extends SocketImpl
|
||||||
{
|
{
|
||||||
localSocketAddress
|
localSocketAddress
|
||||||
= new InetSocketAddress ((InetAddress) getOption(SocketOptions.SO_BINDADDR),
|
= new InetSocketAddress ((InetAddress) getOption(SocketOptions.SO_BINDADDR),
|
||||||
localport);
|
localport == -1 ? 0 : localport);
|
||||||
}
|
}
|
||||||
catch (SocketException _)
|
catch (SocketException _)
|
||||||
{
|
{
|
||||||
|
|
|
@ -64,6 +64,10 @@ union SockAddr
|
||||||
void
|
void
|
||||||
gnu::java::net::PlainSocketImpl::create (jboolean stream)
|
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);
|
int sock = _Jv_socket (AF_INET, stream ? SOCK_STREAM : SOCK_DGRAM, 0);
|
||||||
|
|
||||||
if (sock < 0)
|
if (sock < 0)
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* SocketChannelImpl.java --
|
/* SocketChannelImpl.java --
|
||||||
Copyright (C) 2002, 2003, 2004, 2006 Free Software Foundation, Inc.
|
Copyright (C) 2002, 2003, 2004, 2006, 2007 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This file is part of GNU Classpath.
|
This file is part of GNU Classpath.
|
||||||
|
|
||||||
|
@ -71,6 +71,7 @@ public final class SocketChannelImpl extends SocketChannel
|
||||||
{
|
{
|
||||||
super (provider);
|
super (provider);
|
||||||
impl = new PlainSocketImpl();
|
impl = new PlainSocketImpl();
|
||||||
|
impl.create(true);
|
||||||
socket = new NIOSocket (impl, this);
|
socket = new NIOSocket (impl, this);
|
||||||
configureBlocking(true);
|
configureBlocking(true);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue