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:
Bryce McKinlay 1999-08-03 00:30:53 +00:00 committed by Bryce McKinlay
parent a0e4da0d17
commit 25fef12b66
7 changed files with 23 additions and 24 deletions

View file

@ -2,6 +2,14 @@
* boehm.cc (_Jv_RegisterFinalizer): Cast `meth' to GC_PTR. * boehm.cc (_Jv_RegisterFinalizer): Cast `meth' to GC_PTR.
* exception.cc (_Jv_Throw): Cast `_Jv_type_matcher' to __eh_matcher. * exception.cc (_Jv_Throw): Cast `_Jv_type_matcher' to __eh_matcher.
* 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.0' instead of
null.
* java/net/natPlainDatagramSocketImpl (bind): Expect `0.0.0.0'
instead of null.
1999-08-01 Alexandre Oliva <oliva@dcc.unicamp.br> 1999-08-01 Alexandre Oliva <oliva@dcc.unicamp.br>

View file

@ -260,7 +260,7 @@ call_finalizer (GC_PTR obj, GC_PTR client_data)
void void
_Jv_RegisterFinalizer (void *object, _Jv_FinalizerFunc *meth) _Jv_RegisterFinalizer (void *object, _Jv_FinalizerFunc *meth)
{ {
GC_REGISTER_FINALIZER_NO_ORDER (object, call_finalizer, (GC_PTR)meth, GC_REGISTER_FINALIZER_NO_ORDER (object, call_finalizer, (GC_PTR) meth,
NULL, NULL); NULL, NULL);
} }

View file

@ -147,7 +147,7 @@ _Jv_Throw (void *value)
_Jv_eh_alloc (); _Jv_eh_alloc ();
ehinfo = *(__get_eh_info ()); ehinfo = *(__get_eh_info ());
} }
ehinfo->eh_info.match_function = (__eh_matcher)_Jv_type_matcher; ehinfo->eh_info.match_function = (__eh_matcher) _Jv_type_matcher;
ehinfo->eh_info.language = EH_LANG_Java; ehinfo->eh_info.language = EH_LANG_Java;
ehinfo->eh_info.version = 1; ehinfo->eh_info.version = 1;
ehinfo->value = value; ehinfo->value = value;

View file

@ -28,12 +28,12 @@ public class DatagramSocket
public DatagramSocket() throws SocketException public DatagramSocket() throws SocketException
{ {
this(0, null); this(0, ServerSocket.ANY_IF);
} }
public DatagramSocket(int port) throws SocketException public DatagramSocket(int port) throws SocketException
{ {
this(port, null); this(port, ServerSocket.ANY_IF);
} }
public DatagramSocket(int port, InetAddress laddr) throws SocketException public DatagramSocket(int port, InetAddress laddr) throws SocketException

View file

@ -25,6 +25,10 @@ public class ServerSocket
static SocketImplFactory factory; static SocketImplFactory factory;
SocketImpl impl; 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) public ServerSocket (int port)
throws java.io.IOException throws java.io.IOException
{ {
@ -34,7 +38,7 @@ public class ServerSocket
public ServerSocket (int port, int backlog) public ServerSocket (int port, int backlog)
throws java.io.IOException throws java.io.IOException
{ {
this(port, backlog, null); this(port, backlog, ANY_IF);
} }
public ServerSocket (int port, int backlog, InetAddress bindAddr) public ServerSocket (int port, int backlog, InetAddress bindAddr)

View file

@ -101,16 +101,10 @@ java::net::PlainDatagramSocketImpl::bind (jint lport,
// FIXME: prob. need to do a setsockopt with SO_BROADCAST to allow multicast. // FIXME: prob. need to do a setsockopt with SO_BROADCAST to allow multicast.
union SockAddr u; union SockAddr u;
struct sockaddr *ptr = (struct sockaddr *) &u.address; struct sockaddr *ptr = (struct sockaddr *) &u.address;
jbyte *bytes = NULL;
// FIXME: Use getaddrinfo() to get actual protocol instead of assuming ipv4. // 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);
if (host != NULL) int len = haddress->length;
{
jbyteArray haddress = host->address;
bytes = elements (haddress);
len = haddress->length;
}
if (len == 4) if (len == 4)
{ {

View file

@ -71,17 +71,10 @@ java::net::PlainSocketImpl::bind (java::net::InetAddress *host, jint lport)
{ {
union SockAddr u; union SockAddr u;
struct sockaddr *ptr = (struct sockaddr *) &u.address; struct sockaddr *ptr = (struct sockaddr *) &u.address;
jbyte *bytes = NULL; jbyteArray haddress = host->address;
// FIXME: Use getaddrinfo() to get actual protocol instead of assuming ipv4. jbyte *bytes = elements (haddress);
int len = 4; // Initialize for INADDR_ANY in case host is NULL. int len = haddress->length;
if (host != NULL)
{
jbyteArray haddress = host->address;
bytes = elements (haddress);
len = haddress->length;
}
if (len == 4) if (len == 4)
{ {
u.address.sin_family = AF_INET; u.address.sin_family = AF_INET;