diff options
author | Mark Spruiell <mes@zeroc.com> | 2011-02-07 13:46:35 -0800 |
---|---|---|
committer | Mark Spruiell <mes@zeroc.com> | 2011-02-07 13:46:35 -0800 |
commit | 139d6a7e6449eb87fedddd7b0a45fcc823b3665e (patch) | |
tree | b3c1bc23395326a6f28be83e813fa2ed3b463a04 /java/src/IceInternal/Network.java | |
parent | fixing version in eclipse/CHANGES (diff) | |
download | ice-139d6a7e6449eb87fedddd7b0a45fcc823b3665e.tar.bz2 ice-139d6a7e6449eb87fedddd7b0a45fcc823b3665e.tar.xz ice-139d6a7e6449eb87fedddd7b0a45fcc823b3665e.zip |
fixes for Android compatibility
Diffstat (limited to 'java/src/IceInternal/Network.java')
-rw-r--r-- | java/src/IceInternal/Network.java | 35 |
1 files changed, 29 insertions, 6 deletions
diff --git a/java/src/IceInternal/Network.java b/java/src/IceInternal/Network.java index 568a6c5d0f4..d2ccaec4f90 100644 --- a/java/src/IceInternal/Network.java +++ b/java/src/IceInternal/Network.java @@ -1103,9 +1103,7 @@ public final class Network { StringBuilder s = new StringBuilder(128); s.append("local address = "); - s.append(localAddr.getHostAddress()); - s.append(':'); - s.append(localPort); + s.append(addrToString(localAddr, localPort)); if(remoteAddr == null) { s.append("\nremote address = <not connected>"); @@ -1113,9 +1111,7 @@ public final class Network else { s.append("\nremote address = "); - s.append(remoteAddr.getHostAddress()); - s.append(':'); - s.append(remotePort); + s.append(addrToString(remoteAddr, remotePort)); } return s.toString(); @@ -1150,6 +1146,33 @@ public final class Network (bytes.length == 4 && protocol == EnableIPv4)); } + private static String + addrToString(java.net.InetAddress addr, int port) + { + StringBuffer s = new StringBuffer(); + + // + // In early Android releases, sockets don't correctly report their address and + // port information. + // + + if(addr == null || addr.isAnyLocalAddress()) + { + s.append("<not available>"); + } + else + { + s.append(addr.getHostAddress()); + } + + if(port > 0) + { + s.append(':'); + s.append(port); + } + + return s.toString(); + } private static java.net.InetSocketAddress getAddressImpl(String host, int port, int protocol, boolean server) |