aboutsummaryrefslogtreecommitdiff
path: root/libjava/java/net
diff options
context:
space:
mode:
Diffstat (limited to 'libjava/java/net')
-rw-r--r--libjava/java/net/DatagramSocket.java4
-rw-r--r--libjava/java/net/ServerSocket.java6
-rw-r--r--libjava/java/net/natPlainDatagramSocketImpl.cc12
-rw-r--r--libjava/java/net/natPlainSocketImpl.cc13
4 files changed, 13 insertions, 22 deletions
diff --git a/libjava/java/net/DatagramSocket.java b/libjava/java/net/DatagramSocket.java
index 3291efe..6f5e735 100644
--- a/libjava/java/net/DatagramSocket.java
+++ b/libjava/java/net/DatagramSocket.java
@@ -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
diff --git a/libjava/java/net/ServerSocket.java b/libjava/java/net/ServerSocket.java
index 0d40bcc..95c9f35 100644
--- a/libjava/java/net/ServerSocket.java
+++ b/libjava/java/net/ServerSocket.java
@@ -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)
diff --git a/libjava/java/net/natPlainDatagramSocketImpl.cc b/libjava/java/net/natPlainDatagramSocketImpl.cc
index ec08d20..8ef7fd2 100644
--- a/libjava/java/net/natPlainDatagramSocketImpl.cc
+++ b/libjava/java/net/natPlainDatagramSocketImpl.cc
@@ -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)
{
diff --git a/libjava/java/net/natPlainSocketImpl.cc b/libjava/java/net/natPlainSocketImpl.cc
index 2e7f9d5..d42b821 100644
--- a/libjava/java/net/natPlainSocketImpl.cc
+++ b/libjava/java/net/natPlainSocketImpl.cc
@@ -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;