[kaffe] CVS kaffe (guilhem): Fix for getAllByName when it is dealing with IPV6 address.

Kaffe CVS Kaffe Mailing List <kaffe@kaffe.org>
Tue Sep 9 09:37:02 2003


PatchSet 4022 
Date: 2003/09/09 16:34:58
Author: guilhem
Branch: HEAD
Tag: (none) 
Log:
Fix for getAllByName when it is dealing with IPV6 address.

Members: 
	ChangeLog:1.1618->1.1619 
	libraries/javalib/java/net/InetAddress.java:1.16->1.17 

Index: kaffe/ChangeLog
diff -u kaffe/ChangeLog:1.1618 kaffe/ChangeLog:1.1619
--- kaffe/ChangeLog:1.1618	Fri Sep  5 23:12:54 2003
+++ kaffe/ChangeLog	Tue Sep  9 16:34:58 2003
@@ -1,3 +1,9 @@
+2003-09-09  Guilhem Lavaux <guilhem@kaffe.org>
+
+	* libraries/javalib/java/net/InetAddress.java:
+	(getAllByName) check whether getHostByName returns IPV6 address. If it
+	is the case we build Inet6Address instead of InetAddress.
+
 2003-09-05  Jim Pick  <jim@kaffe.org>
 
 	* include/kaffe/jmalloc.h:
Index: kaffe/libraries/javalib/java/net/InetAddress.java
diff -u kaffe/libraries/javalib/java/net/InetAddress.java:1.16 kaffe/libraries/javalib/java/net/InetAddress.java:1.17
--- kaffe/libraries/javalib/java/net/InetAddress.java:1.16	Fri Sep  5 17:56:57 2003
+++ kaffe/libraries/javalib/java/net/InetAddress.java	Tue Sep  9 16:35:00 2003
@@ -306,14 +306,18 @@
 
     for (int i = 0; i < iplist.length; i++)
       {
-        if (iplist[i].length != 4)
+        if (iplist[i].length != 4 && iplist[i].length != 16)
           throw new UnknownHostException (hostname);
 
         // Don't store the hostname in order to force resolution of the
         // canonical names of these ip's when the user asks for the hostname
         // But do specify the host alias so if the IP returned won't
         // reverse lookup we don't throw an exception.
-        addresses[i] = new InetAddress (iplist[i], null, hostname);
+	// If the length is equal to 16 this is an IPV6 address.
+	if (iplist[i].length == 16)
+	  addresses[i] = new Inet6Address (iplist[i], hostname);
+	else
+	  addresses[i] = new InetAddress (iplist[i], null, hostname);
       }
 
     addToCache (hostname, addresses);