# HG changeset patch # User robm # Date 1430151427 -3600 # Node ID b02550d62bdbaf61a258628b47acc3fc7982d7e5 # Parent 70aaa6da3101e6c2feeabce3b36d50624ed918ad 6991580: IPv6 Nameservers in resolv.conf throws NumberFormatException Reviewed-by: michaelm, andrew, alanb, rriggs Contributed-by: sgehwolf@redhat.com diff -r 70aaa6da3101 -r b02550d62bdb src/solaris/classes/sun/net/dns/ResolverConfigurationImpl.java --- jdk8/jdk/src/solaris/classes/sun/net/dns/ResolverConfigurationImpl.java Sun Apr 19 10:31:06 2015 +0300 +++ jdk8/jdk/src/solaris/classes/sun/net/dns/ResolverConfigurationImpl.java Mon Apr 27 17:17:07 2015 +0100 @@ -85,6 +85,15 @@ if (val.charAt(0) == '#' || val.charAt(0) == ';') { break; } + if ("nameserver".equals(keyword)) { + if (val.indexOf(':') >= 0 && + val.indexOf('.') < 0 && // skip for IPv4 literals with port + val.indexOf('[') < 0 && + val.indexOf(']') < 0 ) { + // IPv6 literal, in non-BSD-style. + val = "[" + val + "]"; + } + } ll.add(val); if (--maxvalues == 0) { break; diff -r 70aaa6da3101 -r b02550d62bdb test/com/sun/jndi/dns/IPv6NameserverPlatformParsingTest.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ jdk8/jdk/test/com/sun/jndi/dns/IPv6NameserverPlatformParsingTest.java Mon Apr 27 17:17:07 2015 +0100 @@ -0,0 +1,104 @@ +/* + * Copyright (c) 2015, Red Hat, Inc. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +import java.lang.reflect.Field; +import java.util.Hashtable; + +import javax.naming.Context; +import javax.naming.NamingException; +import javax.naming.spi.NamingManager; + +import com.sun.jndi.dns.DnsContext; + +/** + * @test + * @bug 6991580 + * @summary IPv6 Nameservers in resolv.conf throws NumberFormatException + * @run main/manual IPv6NameserverPlatformParsingTest + * + * In order to run this test be sure to place, for example, the following + * snippet into your platform's {@code /etc/resolv.conf}: + *
+ * nameserver 127.0.0.1 + * nameserver 2001:4860:4860::8888 + * nameserver [::1]:5353 + * nameserver 127.0.0.1:5353 + *+ * + * Then, run this test as manual jtreg test. + * + * @author Severin Gehwolf + * + */ +public class IPv6NameserverPlatformParsingTest { + + private static boolean foundIPv6 = false; + + public static void main(String[] args) { + Hashtable