diff options
author | Matthew Newhook <matthew@zeroc.com> | 2009-01-09 11:49:20 -0330 |
---|---|---|
committer | Matthew Newhook <matthew@zeroc.com> | 2009-01-09 11:49:20 -0330 |
commit | 9117e9040c02465cb9f0a1e0bcc6aa963f71c61a (patch) | |
tree | ef345adb5612327136e70c8207182e015dfc6349 /java/src/IceInternal/Network.java | |
parent | Fixed NRVO demo depend file (diff) | |
parent | http://bugzilla.zeroc.com/bugzilla/show_bug.cgi?id=3553. database demo uses w... (diff) | |
download | ice-9117e9040c02465cb9f0a1e0bcc6aa963f71c61a.tar.bz2 ice-9117e9040c02465cb9f0a1e0bcc6aa963f71c61a.tar.xz ice-9117e9040c02465cb9f0a1e0bcc6aa963f71c61a.zip |
Merge commit 'origin/R3_3_branch'
Conflicts:
cs/demo/WCF/latency/Client.cs
cs/demo/WCF/latency_m/Client.cs
cs/demo/WCF/throughput/Client.cs
cs/demo/WCF/throughput_m/Client.cs
cs/demo/WCF/throughput_m/Service.cs
java/demo/Database/library/BookI.java
java/demo/Database/library/BookQueryResultI.java
java/demo/Database/library/Client.java
java/demo/Database/library/ConnectionPool.java
java/demo/Database/library/DispatchInterceptorI.java
java/demo/Database/library/Glacier2Session.ice
java/demo/Database/library/Glacier2SessionManagerI.java
java/demo/Database/library/Grammar.java
java/demo/Database/library/Library.ice
java/demo/Database/library/LibraryI.java
java/demo/Database/library/Parser.java
java/demo/Database/library/ReapThread.java
java/demo/Database/library/RunParser.java
java/demo/Database/library/SQLRequestContext.java
java/demo/Database/library/Scanner.java
java/demo/Database/library/Server.java
java/demo/Database/library/Session.ice
java/demo/Database/library/SessionFactoryI.java
java/demo/Database/library/SessionI.java
java/demo/Database/library/Token.java
java/demo/Database/library/build.xml
java/demo/Database/library/config.client
Diffstat (limited to 'java/src/IceInternal/Network.java')
-rw-r--r-- | java/src/IceInternal/Network.java | 34 |
1 files changed, 19 insertions, 15 deletions
diff --git a/java/src/IceInternal/Network.java b/java/src/IceInternal/Network.java index 40b411d5f9d..3eb8a840d14 100644 --- a/java/src/IceInternal/Network.java +++ b/java/src/IceInternal/Network.java @@ -772,9 +772,7 @@ public final class Network // } - if(addr == null || - (addr instanceof java.net.Inet4Address && protocol == EnableIPv6) || - (addr instanceof java.net.Inet6Address && protocol == EnableIPv4)) + if(addr == null || isValidAddr(addr, protocol)) { // // Iterate over the network interfaces and pick an IP @@ -785,9 +783,7 @@ public final class Network while(addr == null && iter.hasNext()) { java.net.InetAddress a = iter.next(); - if(protocol == EnableBoth || - (protocol == EnableIPv4 && a instanceof java.net.Inet4Address) || - (protocol == EnableIPv6 && a instanceof java.net.Inet6Address)) + if(protocol == EnableBoth || isValidAddr(a, protocol)) { addr = a; } @@ -822,9 +818,7 @@ public final class Network for(int i = 0; i < addrs.length; ++i) { - if(protocol == EnableBoth || - (protocol == EnableIPv4 && addrs[i] instanceof java.net.Inet4Address) || - (protocol == EnableIPv6 && addrs[i] instanceof java.net.Inet6Address)) + if(protocol == EnableBoth || isValidAddr(addrs[i], protocol)) { addresses.add(new java.net.InetSocketAddress(addrs[i], port)); } @@ -873,9 +867,7 @@ public final class Network java.net.InetAddress addr = addrs.nextElement(); if(!addr.isLoopbackAddress()) { - if(protocol == EnableBoth || - (protocol == EnableIPv4 && addr instanceof java.net.Inet4Address) || - (protocol == EnableIPv6 && addr instanceof java.net.Inet6Address)) + if(protocol == EnableBoth || isValidAddr(addr, protocol)) { result.add(addr); } @@ -1148,6 +1140,20 @@ public final class Network return ex instanceof java.io.InterruptedIOException; } + private static boolean + isValidAddr(java.net.InetAddress addr, int protocol) + { + byte[] bytes = null; + if(addr != null) + { + bytes = addr.getAddress(); + } + return bytes != null && + ((bytes.length == 16 && protocol == EnableIPv6) || + (bytes.length == 4 && protocol == EnableIPv4)); + } + + private static java.net.InetSocketAddress getAddressImpl(String host, int port, int protocol, boolean server) { @@ -1172,9 +1178,7 @@ public final class Network for(int i = 0; i < addrs.length; ++i) { - if(protocol == EnableBoth || - (protocol == EnableIPv4 && addrs[i] instanceof java.net.Inet4Address) || - (protocol == EnableIPv6 && addrs[i] instanceof java.net.Inet6Address)) + if(protocol == EnableBoth || isValidAddr(addrs[i], protocol)) { return new java.net.InetSocketAddress(addrs[i], port); } |