diff options
author | Dwayne Boone <dwayne@zeroc.com> | 2006-11-10 16:24:17 +0000 |
---|---|---|
committer | Dwayne Boone <dwayne@zeroc.com> | 2006-11-10 16:24:17 +0000 |
commit | e2233a55ee757d8ba19b560dd8de98ba3f737423 (patch) | |
tree | 34cfad84fbba69510c66e2ef15e8885175c10c7a /java/src | |
parent | adding ice_print to exceptions (diff) | |
download | ice-e2233a55ee757d8ba19b560dd8de98ba3f737423.tar.bz2 ice-e2233a55ee757d8ba19b560dd8de98ba3f737423.tar.xz ice-e2233a55ee757d8ba19b560dd8de98ba3f737423.zip |
Fixes to ignnore IPv6 addresses
Diffstat (limited to 'java/src')
-rw-r--r-- | java/src/Ice/SysLoggerI.java | 6 | ||||
-rw-r--r-- | java/src/IceInternal/Network.java | 19 | ||||
-rw-r--r-- | java/src/IceInternal/TcpEndpointI.java | 6 | ||||
-rw-r--r-- | java/src/IceInternal/UdpEndpointI.java | 6 |
4 files changed, 23 insertions, 14 deletions
diff --git a/java/src/Ice/SysLoggerI.java b/java/src/Ice/SysLoggerI.java index 4b7b0ddb3a7..260b6a977b1 100644 --- a/java/src/Ice/SysLoggerI.java +++ b/java/src/Ice/SysLoggerI.java @@ -27,14 +27,10 @@ public final class SysLoggerI extends LocalObjectImpl implements Logger // try { - _host = InetAddress.getLocalHost(); + _host = IceInternal.Network.getLocalAddress(); _socket = new DatagramSocket(); _socket.connect(_host, _port); } - catch(java.net.UnknownHostException ex) - { - throw new Ice.DNSException(); - } catch(java.io.IOException ex) { Ice.SocketException se = new Ice.SocketException(); diff --git a/java/src/IceInternal/Network.java b/java/src/IceInternal/Network.java index 783d064c4e9..fb1e0c6961e 100644 --- a/java/src/IceInternal/Network.java +++ b/java/src/IceInternal/Network.java @@ -539,8 +539,14 @@ public final class Network { try { - java.net.InetAddress addr = java.net.InetAddress.getByName(host); - return new java.net.InetSocketAddress(addr, port); + java.net.InetAddress[] addrs = java.net.InetAddress.getAllByName(host); + for(int i = 0; i < addrs.length; ++i) + { + if(addrs[i] instanceof java.net.Inet4Address) + { + return new java.net.InetSocketAddress(addrs[i], port); + } + } } catch(java.net.UnknownHostException ex) { @@ -548,6 +554,13 @@ public final class Network e.host = host; throw e; } + + // + // No Inet4Address available. + // + Ice.DNSException e = new Ice.DNSException(); + e.host = host; + throw e; } public static java.net.InetAddress @@ -572,7 +585,7 @@ public final class Network // } - if(addr == null) + if(addr == null || addr instanceof java.net.Inet6Address) { // // Iterate over the network interfaces and pick an IP diff --git a/java/src/IceInternal/TcpEndpointI.java b/java/src/IceInternal/TcpEndpointI.java index 5fd78e98ca8..829e9fed6d2 100644 --- a/java/src/IceInternal/TcpEndpointI.java +++ b/java/src/IceInternal/TcpEndpointI.java @@ -547,10 +547,10 @@ final class TcpEndpointI extends EndpointI { try { - java.net.InetAddress addr = java.net.InetAddress.getByName(_host); - _hashCode = addr.getHostAddress().hashCode(); + java.net.InetSocketAddress addr = Network.getAddress(_host, _port); + _hashCode = addr.getAddress().getHostAddress().hashCode(); } - catch(java.net.UnknownHostException ex) + catch(Ice.DNSException ex) { _hashCode = _host.hashCode(); } diff --git a/java/src/IceInternal/UdpEndpointI.java b/java/src/IceInternal/UdpEndpointI.java index 8e8dfaccc08..b04d798298b 100644 --- a/java/src/IceInternal/UdpEndpointI.java +++ b/java/src/IceInternal/UdpEndpointI.java @@ -718,10 +718,10 @@ final class UdpEndpointI extends EndpointI { try { - java.net.InetAddress addr = java.net.InetAddress.getByName(_host); - _hashCode = addr.getHostAddress().hashCode(); + java.net.InetSocketAddress addr = Network.getAddress(_host, _port); + _hashCode = addr.getAddress().getHostAddress().hashCode(); } - catch(java.net.UnknownHostException ex) + catch(Ice.DNSException ex) { _hashCode = _host.hashCode(); } |