Index: java/net/InetAddress.java =================================================================== RCS file: /cvsroot/classpath/classpath/java/net/InetAddress.java,v retrieving revision 1.36 diff -u -r1.36 InetAddress.java --- java/net/InetAddress.java 17 Nov 2004 07:16:00 -0000 1.36 +++ java/net/InetAddress.java 3 Jan 2005 11:05:34 -0000 @@ -227,7 +227,7 @@ { // Mask against high order bits of 1110 if (addr.length == 4) - return (addr[0] & 0xF0) == 0xE0; + return (addr[0] & 0xf0) == 0xe0; return false; } @@ -253,7 +253,7 @@ { // This is the IPv4 implementation. // Any class derived from InetAddress should override this. - return addr[0] == 0x7F; + return (addr[0] & 0xff) == 0x7f; } /** @@ -278,18 +278,17 @@ { // This is the IPv4 implementation. // Any class derived from InetAddress should override this. + // 10.0.0.0/8 - if (addr[0] == 0x0A) + if ((addr[0] & 0xff) == 0x0a) return true; - // XXX: Suns JDK 1.4.1 (on Linux) seems to have a bug here: - // it says 172.16.0.0 - 172.255.255.255 are site local addresses // 172.16.0.0/12 - if (addr[0] == 0xAC && (addr[1] & 0xF0) == 0x01) + if ((addr[0] & 0xff) == 0xac && (addr[1] & 0xf0) == 0x10) return true; // 192.168.0.0/16 - if (addr[0] == 0xC0 && addr[1] == 0xA8) + if ((addr[0] & 0xff) == 0xc0 && (addr[1] & 0xff) == 0xa8) return true; // XXX: Do we need to check more addresses here ? @@ -310,7 +309,7 @@ } /** - * Utility reoutine to check if InetAddress is a node local multicast address + * Utility routine to check if InetAddress is a node local multicast address. * * @since 1.4 */ @@ -323,7 +322,7 @@ } /** - * Utility reoutine to check if InetAddress is a link local multicast address + * Utility routine to check if InetAddress is a link local multicast address. * * @since 1.4 */ @@ -334,11 +333,13 @@ if (! isMulticastAddress()) return false; - return (addr[0] == 0xE0 && addr[1] == 0x00 && addr[2] == 0x00); + return ((addr[0] & 0xff) == 0xe0 + && (addr[1] & 0xff) == 0x00 + && (addr[2] & 0xff) == 0x00); } /** - * Utility routine to check if InetAddress is a site local multicast address + * Utility routine to check if InetAddress is a site local multicast address. * * @since 1.4 */ @@ -351,8 +352,8 @@ } /** - * Utility reoutine to check if InetAddress is a organization local - * multicast address + * Utility routine to check if InetAddress is a organization local + * multicast address. * * @since 1.4 */ @@ -474,7 +475,7 @@ int i = len > 4 ? len - 4 : 0; for (; i < len; i++) - hash = (hash << 8) | (addr[i] & 0xFF); + hash = (hash << 8) | (addr[i] & 0xff); return hash; } @@ -802,7 +803,7 @@ * This method returns the hostname for a given IP address. It will * throw an UnknownHostException if the hostname cannot be determined. * - * @param ip The IP address as a int array + * @param ip The IP address as a byte array * * @return The hostname * @@ -847,7 +848,7 @@ int i = len - 4; for (; i < len; i++) - address = address << 8 | (((int) addr[i]) & 0xFF); + address = address << 8 | (addr[i] & 0xff); oos.defaultWriteObject(); } Index: java/net/Inet4Address.java =================================================================== RCS file: /cvsroot/classpath/classpath/java/net/Inet4Address.java,v retrieving revision 1.12 diff -u -r1.12 Inet4Address.java --- java/net/Inet4Address.java 15 Oct 2004 09:56:00 -0000 1.12 +++ java/net/Inet4Address.java 3 Jan 2005 11:05:34 -0000 @@ -85,7 +85,7 @@ */ public boolean isMulticastAddress() { - return (addr[0] & 0xF0) == 0xE0; + return super.isMulticastAddress(); } /** @@ -93,7 +93,7 @@ */ public boolean isLoopbackAddress() { - return addr[0] == 0x7F; + return super.isLoopbackAddress(); } /** @@ -103,9 +103,7 @@ */ public boolean isAnyLocalAddress() { - byte[] anylocal = { 0, 0, 0, 0 }; - - return Arrays.equals(addr, anylocal); + return super.isAnyLocalAddress(); } /** @@ -115,8 +113,7 @@ */ public boolean isLinkLocalAddress() { - // XXX: This seems to not exist with IPv4 addresses - return false; + return super.isLinkLocalAddress(); } /** @@ -126,23 +123,7 @@ */ public boolean isSiteLocalAddress() { - // 10.0.0.0/8 - if (addr[0] == 0x0A) - return true; - - // XXX: Suns JDK 1.4.1 (on Linux) seems to have a bug here: - // it says 172.16.0.0 - 172.255.255.255 are site local addresses - // - // 172.16.0.0/12 - if (addr[0] == 0xAC && (addr[1] & 0xF0) == 0x01) - return true; - - // 192.168.0.0/16 - if (addr[0] == 0xC0 && addr[1] == 0xA8) - return true; - - // XXX: Do we need to check more addresses here ? - return false; + return super.isSiteLocalAddress(); } /** @@ -152,8 +133,7 @@ */ public boolean isMCGlobal() { - // XXX: This seems to net exist with IPv4 addresses - return false; + return super.isMCGlobal(); } /** @@ -163,8 +143,7 @@ */ public boolean isMCNodeLocal() { - // XXX: This seems to net exist with IPv4 addresses - return false; + return isMCNodeLocal(); } /** @@ -174,10 +153,7 @@ */ public boolean isMCLinkLocal() { - if (! isMulticastAddress()) - return false; - - return (addr[0] == 0xE0) && (addr[1] == 0x00) && (addr[2] == 0x00); + return super.isMCLinkLocal(); } /** @@ -187,8 +163,7 @@ */ public boolean isMCSiteLocal() { - // XXX: This seems to net exist with IPv4 addresses - return false; + return super.isMCSiteLocal(); } /** @@ -198,8 +173,7 @@ */ public boolean isMCOrgLocal() { - // XXX: This seems to net exist with IPv4 addresses - return false; + return isMCOrgLocal(); } /** @@ -217,22 +191,7 @@ */ public String getHostAddress() { - StringBuffer sbuf = new StringBuffer(40); - int len = addr.length; - int i = 0; - - for (;;) - { - sbuf.append(addr[i] & 0xFF); - i++; - - if (i == len) - break; - - sbuf.append('.'); - } - - return sbuf.toString(); + return super.getHostAddress(); } /** @@ -272,4 +231,4 @@ return true; } -} // class Inet4Address +}