Mercurial > hg > release > icedtea8-forest-3.0 > jdk
changeset 11506:e951c898bb6c jdk8u66-b13
Merge
author | asaha |
---|---|
date | Tue, 08 Sep 2015 14:09:21 -0700 |
parents | 590588bfc2a3 (current diff) e870cf08fd0b (diff) |
children | 52541d232672 |
files | .hgtags |
diffstat | 7 files changed, 80 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/.hgtags Mon Aug 31 13:59:44 2015 -0700 +++ b/.hgtags Tue Sep 08 14:09:21 2015 -0700 @@ -470,6 +470,7 @@ ed9e7ba6a419a80cbcdc60f4634388af054bdc76 jdk8u65-b10 22ae2d11ff54b758b648b5fcd6ea90e03a4c6781 jdk8u65-b11 7eb9c6cf007cc6176ccb700f995a3e9b81746bfd jdk8u65-b12 +64ac5b0b4b9e7a587fc0606fada354c6fa4a7a86 jdk8u65-b13 e9f82302d5fdef8a0976640e09363895e9dcde3c jdk8u66-b00 64d7bd4e98150447916f210e3bfd6875a4c2728a jdk8u66-b01 d8210091911b14930192abd3138ee37c281fb632 jdk8u66-b02
--- a/src/share/classes/java/net/Inet4Address.java Mon Aug 31 13:59:44 2015 -0700 +++ b/src/share/classes/java/net/Inet4Address.java Tue Sep 08 14:09:21 2015 -0700 @@ -117,11 +117,13 @@ holder().address = address; } } + holder().originalHostName = hostName; } Inet4Address(String hostName, int address) { holder().hostName = hostName; holder().family = IPv4; holder().address = address; + holder().originalHostName = hostName; } /**
--- a/src/share/classes/java/net/InetAddress.java Mon Aug 31 13:59:44 2015 -0700 +++ b/src/share/classes/java/net/InetAddress.java Tue Sep 08 14:09:21 2015 -0700 @@ -217,7 +217,7 @@ * * Note: May define a new public method in the future if necessary. */ - private String originalHostName; + String originalHostName; InetAddressHolder() {}
--- a/src/share/native/java/net/InetAddress.c Mon Aug 31 13:59:44 2015 -0700 +++ b/src/share/native/java/net/InetAddress.c Tue Sep 08 14:09:21 2015 -0700 @@ -38,6 +38,7 @@ jfieldID iac_addressID; jfieldID iac_familyID; jfieldID iac_hostNameID; +jfieldID iac_origHostNameID; jfieldID ia_preferIPv6AddressID; /* @@ -64,4 +65,6 @@ iac_familyID = (*env)->GetFieldID(env, iac_class, "family", "I"); CHECK_NULL(iac_familyID); iac_hostNameID = (*env)->GetFieldID(env, iac_class, "hostName", "Ljava/lang/String;"); + CHECK_NULL(iac_hostNameID); + iac_origHostNameID = (*env)->GetFieldID(env, iac_class, "originalHostName", "Ljava/lang/String;"); }
--- a/src/share/native/java/net/net_util.c Mon Aug 31 13:59:44 2015 -0700 +++ b/src/share/native/java/net/net_util.c Tue Sep 08 14:09:21 2015 -0700 @@ -199,6 +199,7 @@ initInetAddrs(env); holder = (*env)->GetObjectField(env, iaObj, ia_holderID); (*env)->SetObjectField(env, holder, iac_hostNameID, host); + (*env)->SetObjectField(env, holder, iac_origHostNameID, host); } int getInetAddress_addr(JNIEnv *env, jobject iaObj) {
--- a/src/share/native/java/net/net_util.h Mon Aug 31 13:59:44 2015 -0700 +++ b/src/share/native/java/net/net_util.h Tue Sep 08 14:09:21 2015 -0700 @@ -53,6 +53,7 @@ extern jfieldID iac_addressID; extern jfieldID iac_familyID; extern jfieldID iac_hostNameID; +extern jfieldID iac_origHostNameID; extern jfieldID ia_preferIPv6AddressID; /** (Inet6Address accessors)
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/java/net/InetAddress/getOriginalHostName.java Tue Sep 08 14:09:21 2015 -0700 @@ -0,0 +1,71 @@ +/* + * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. + * 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. + */ + +/* + * @test + * @bug 8133196 + * @summary test functionality of getOriginalHostName(InetAddress) + */ + +import java.io.*; +import java.net.InetAddress; + +import sun.misc.JavaNetAccess; +import sun.misc.SharedSecrets; + +public class getOriginalHostName { + + private static final JavaNetAccess jna = SharedSecrets.getJavaNetAccess(); + + public static void main(String[] args) throws Exception { + final String HOST = "dummyserver.java.net"; + InetAddress ia = null; + ia = InetAddress.getByName(HOST); + testInetAddress(ia, HOST); + ia = InetAddress.getByName("255.255.255.0"); + testInetAddress(ia, null); + ia = InetAddress.getByAddress(new byte[]{1,1,1,1}); + testInetAddress(ia, null); + ia = InetAddress.getLocalHost(); + testInetAddress(ia, ia.getHostName()); + ia = InetAddress.getLoopbackAddress(); + testInetAddress(ia, ia.getHostName()); + } + + + private static void testInetAddress(InetAddress ia, String expected) + throws Exception { + + System.out.println("Testing InetAddress: " + ia); + System.out.println("Expecting original hostname of : " + expected); + String origHostName = jna.getOriginalHostName(ia); + System.out.println("via JavaNetAccess: " + origHostName); + if (origHostName == null && expected != null) { + throw new RuntimeException("Unexpected null. Testing:" + expected); + } else if (expected != null && !origHostName.equals(expected)) { + throw new RuntimeException("Unexpected hostname :" + origHostName); + } else if (expected == null && origHostName != null) { + throw new RuntimeException("Unexpected origHostName: " + origHostName); + } + } +}