From 8ed6395702fbfb413d26cd7a4140c31d7f8a7167 Mon Sep 17 00:00:00 2001
From: alanb <unknown>
Date: Fri, 26 Aug 2011 22:24:12 +0100
Subject: [PATCH] 7060243: (dc) Multicasting tests fail on Windows XP if IPv6
 is enabled Reviewed-by: alanb Contributed-by: kurchi.subhra.hazra@oracle.com

---
 .../DatagramChannel/NetworkConfiguration.java       | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

diff --git a/jdk/test/java/nio/channels/DatagramChannel/NetworkConfiguration.java b/jdk/test/java/nio/channels/DatagramChannel/NetworkConfiguration.java
index f22b350374..7833a4b892 100644
--- a/jdk/test/java/nio/channels/DatagramChannel/NetworkConfiguration.java
+++ b/jdk/test/java/nio/channels/DatagramChannel/NetworkConfiguration.java
@@ -57,11 +57,22 @@ class NetworkConfiguration {
         return ip6Interfaces.get(nif);
     }
 
+    // IPv6 not supported for Windows XP/Server 2003
+    static boolean isIPv6Supported() {
+        if (System.getProperty("os.name").startsWith("Windows")) {
+            String ver = System.getProperty("os.version");
+            int major = Integer.parseInt(ver.split("\\.")[0]);
+            return (major >= 6);
+        }
+        return true;
+    }
+
     static NetworkConfiguration probe() throws IOException {
         Map<NetworkInterface,List<InetAddress>> ip4Interfaces =
             new HashMap<NetworkInterface,List<InetAddress>>();
         Map<NetworkInterface,List<InetAddress>> ip6Interfaces =
             new HashMap<NetworkInterface,List<InetAddress>>();
+        boolean isIPv6Supported = isIPv6Supported();
 
         // find the interfaces that support IPv4 and IPv6
         List<NetworkInterface> nifs = Collections
@@ -81,7 +92,7 @@ class NetworkConfiguration {
                         }
                         list.add(addr);
                         ip4Interfaces.put(nif, list);
-                    } else if (addr instanceof Inet6Address) {
+                    } else if (isIPv6Supported && (addr instanceof Inet6Address)) {
                         List<InetAddress> list = ip6Interfaces.get(nif);
                         if (list == null) {
                             list = new LinkedList<InetAddress>();
-- 
GitLab