diff options
Diffstat (limited to 'libjava/java/net')
-rw-r--r-- | libjava/java/net/DatagramSocket.java | 4 | ||||
-rw-r--r-- | libjava/java/net/ServerSocket.java | 6 | ||||
-rw-r--r-- | libjava/java/net/natPlainDatagramSocketImpl.cc | 12 | ||||
-rw-r--r-- | libjava/java/net/natPlainSocketImpl.cc | 13 |
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; |