Author: tellison
Date: Wed Feb 1 03:16:28 2006
New Revision: 374048
URL: http://svn.apache.org/viewcvs?rev=374048&view=rev
Log:
Use Inet6Util helper from getHostName()/getCanonicalHostName()
Modified:
incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/net/InetAddress.java
Modified: incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/net/InetAddress.java
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/net/InetAddress.java?rev=374048&r1=374047&r2=374048&view=diff
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/net/InetAddress.java
(original)
+++ incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/net/InetAddress.java
Wed Feb 1 03:16:28 2006
@@ -263,15 +263,24 @@
* @return String the corresponding string name
*/
public String getHostName() {
- int address = 0;
try {
if (hostName == null) {
- address = bytesToInt(ipaddress, 0);
- hostName = (0 == address) ? inetNtoaImpl(address)
- : getHostByAddrImpl(ipaddress).hostName;
+ int address = 0;
+ if (ipaddress.length == 4) {
+ address = bytesToInt(ipaddress, 0);
+ if (address == 0) {
+ return hostName = inetNtoaImpl(address);
+ }
+ }
+ hostName = getHostByAddrImpl(ipaddress).hostName;
+ if (hostName.equals("localhost") && ipaddress.length == 4
+ && address != 0x7f000001) {
+ return hostName = inetNtoaImpl(address);
+ }
}
} catch (UnknownHostException e) {
- return hostName = inetNtoaImpl(address);
+ return hostName = Inet6Util
+ .createIPAddrStringFromByteArray(ipaddress);
}
SecurityManager security = System.getSecurityManager();
try {
@@ -279,11 +288,10 @@
if (security != null && isHostName(hostName))
security.checkConnect(hostName, -1);
} catch (SecurityException e) {
- address = bytesToInt(ipaddress, 0);
- return inetNtoaImpl(address);
+ return Inet6Util.createIPAddrStringFromByteArray(ipaddress);
}
return hostName;
- }
+}
/**
* Answers canonical name for the host associated with the inet address
@@ -291,26 +299,29 @@
* @return String string containing the host name
*/
public String getCanonicalHostName() {
- int address = 0;
+ String canonicalName;
try {
-
- address = bytesToInt(ipaddress, 0);
- hostName = (0 == address) ? inetNtoaImpl(address)
- : getHostByAddrImpl(ipaddress).hostName;
+ int address = 0;
+ if (ipaddress.length == 4) {
+ address = bytesToInt(ipaddress, 0);
+ if (address == 0) {
+ return inetNtoaImpl(address);
+ }
+ }
+ canonicalName = getHostByAddrImpl(ipaddress).hostName;
} catch (UnknownHostException e) {
- return hostName = inetNtoaImpl(address);
+ return Inet6Util.createIPAddrStringFromByteArray(ipaddress);
}
SecurityManager security = System.getSecurityManager();
try {
// Only check host names, not addresses
- if (security != null && isHostName(hostName))
- security.checkConnect(hostName, -1);
+ if (security != null && isHostName(canonicalName))
+ security.checkConnect(canonicalName, -1);
} catch (SecurityException e) {
- address = bytesToInt(ipaddress, 0);
- return inetNtoaImpl(address);
+ return Inet6Util.createIPAddrStringFromByteArray(ipaddress);
}
- return hostName;
- }
+ return canonicalName;
+}
/**
* Answer the local host, if allowed by the security policy. Otherwise,
@@ -1050,9 +1061,7 @@
static boolean preferIPv6Addresses() {
String result = (String) AccessController.doPrivileged(new PriviAction(
"java.net.preferIPv6Addresses"));
- if ("true".equals(result))
- return true;
- return false;
+ return "true".equals(result);
}
private static final ObjectStreamField[] serialPersistentFields = {
|