ServerSocket.java: Define ANY_IF.
* java/net/ServerSocket.java: Define ANY_IF.
(ServerSocket (int,int)): Use ANY_IF instead of null to bind to
all network interfaces.
* java/net/DatagramSocket.java (DatagramSocket): ditto.
* java/net/natPlainSocketImpl.cc (bind): Expect 0.0.0' instead of
null.
* java/net/natPlainDatagramSocketImpl (bind): Expect 0.0.0'
instead of null.
From-SVN: r28429
This commit is contained in:
committed by
Bryce McKinlay
parent
a0e4da0d17
commit
25fef12b66
@@ -28,12 +28,12 @@ public class DatagramSocket
|
||||
|
||||
public DatagramSocket() throws SocketException
|
||||
{
|
||||
this(0, null);
|
||||
this(0, ServerSocket.ANY_IF);
|
||||
}
|
||||
|
||||
public DatagramSocket(int port) throws SocketException
|
||||
{
|
||||
this(port, null);
|
||||
this(port, ServerSocket.ANY_IF);
|
||||
}
|
||||
|
||||
public DatagramSocket(int port, InetAddress laddr) throws SocketException
|
||||
|
||||
@@ -25,6 +25,10 @@ public class ServerSocket
|
||||
static SocketImplFactory factory;
|
||||
SocketImpl impl;
|
||||
|
||||
static final byte[] zeros = {0,0,0,0};
|
||||
/* dummy InetAddress, used to bind socket to any (all) network interfaces */
|
||||
static final InetAddress ANY_IF = new InetAddress(zeros, null);
|
||||
|
||||
public ServerSocket (int port)
|
||||
throws java.io.IOException
|
||||
{
|
||||
@@ -34,7 +38,7 @@ public class ServerSocket
|
||||
public ServerSocket (int port, int backlog)
|
||||
throws java.io.IOException
|
||||
{
|
||||
this(port, backlog, null);
|
||||
this(port, backlog, ANY_IF);
|
||||
}
|
||||
|
||||
public ServerSocket (int port, int backlog, InetAddress bindAddr)
|
||||
|
||||
@@ -101,16 +101,10 @@ java::net::PlainDatagramSocketImpl::bind (jint lport,
|
||||
// FIXME: prob. need to do a setsockopt with SO_BROADCAST to allow multicast.
|
||||
union SockAddr u;
|
||||
struct sockaddr *ptr = (struct sockaddr *) &u.address;
|
||||
jbyte *bytes = NULL;
|
||||
// FIXME: Use getaddrinfo() to get actual protocol instead of assuming ipv4.
|
||||
int len = 4; // Initialize for INADDR_ANY in case host is NULL.
|
||||
|
||||
if (host != NULL)
|
||||
{
|
||||
jbyteArray haddress = host->address;
|
||||
bytes = elements (haddress);
|
||||
len = haddress->length;
|
||||
}
|
||||
jbyteArray haddress = host->address;
|
||||
jbyte *bytes = elements (haddress);
|
||||
int len = haddress->length;
|
||||
|
||||
if (len == 4)
|
||||
{
|
||||
|
||||
@@ -71,17 +71,10 @@ java::net::PlainSocketImpl::bind (java::net::InetAddress *host, jint lport)
|
||||
{
|
||||
union SockAddr u;
|
||||
struct sockaddr *ptr = (struct sockaddr *) &u.address;
|
||||
jbyte *bytes = NULL;
|
||||
// FIXME: Use getaddrinfo() to get actual protocol instead of assuming ipv4.
|
||||
int len = 4; // Initialize for INADDR_ANY in case host is NULL.
|
||||
jbyteArray haddress = host->address;
|
||||
jbyte *bytes = elements (haddress);
|
||||
int len = haddress->length;
|
||||
|
||||
if (host != NULL)
|
||||
{
|
||||
jbyteArray haddress = host->address;
|
||||
bytes = elements (haddress);
|
||||
len = haddress->length;
|
||||
}
|
||||
|
||||
if (len == 4)
|
||||
{
|
||||
u.address.sin_family = AF_INET;
|
||||
|
||||
Reference in New Issue
Block a user