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