undefect. CWE-407 — 63 sites patched across 27 ecosystems
Authors: russell@unturf.com · brackishbert@gmail.com · foxhop.net · TimeHexOn.com Patches, unit tests, benchmarks, whitepaper, and outreach briefs. Public domain — no copyright claimed. Use freely.
This commit is contained in:
commit
0a580b313d
70422 changed files with 17213626 additions and 0 deletions
55
test/jdk/java/net/Inet6Address/B4923906.java
Normal file
55
test/jdk/java/net/Inet6Address/B4923906.java
Normal file
|
|
@ -0,0 +1,55 @@
|
|||
/*
|
||||
* Copyright (c) 2003, 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 4923906
|
||||
* @summary Inet6Address.getScopedInterface() returns a String instead of a NetworkInterface
|
||||
*/
|
||||
|
||||
import java.net.*;
|
||||
import java.util.*;
|
||||
|
||||
public class B4923906 {
|
||||
public static void main (String[] args) throws Exception {
|
||||
Enumeration e = NetworkInterface.getNetworkInterfaces();
|
||||
while (e.hasMoreElements()) {
|
||||
NetworkInterface ifc = (NetworkInterface) e.nextElement();
|
||||
Enumeration addrs = ifc.getInetAddresses();
|
||||
System.out.println (ifc.getName() +": " + ifc.getDisplayName());
|
||||
while (addrs.hasMoreElements()) {
|
||||
InetAddress a = (InetAddress)addrs.nextElement();
|
||||
System.out.println ("\t"+a);
|
||||
if (a instanceof Inet6Address) {
|
||||
Inet6Address ia6 = (Inet6Address) a;
|
||||
Object o = ia6.getScopedInterface();
|
||||
if (o instanceof String) {
|
||||
throw new RuntimeException (
|
||||
"Oops! This should be a NetworkInterface"
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
71
test/jdk/java/net/Inet6Address/B6206527.java
Normal file
71
test/jdk/java/net/Inet6Address/B6206527.java
Normal file
|
|
@ -0,0 +1,71 @@
|
|||
/*
|
||||
* Copyright (c) 2005, 2021, 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 1.1 05/01/05
|
||||
* @bug 6206527
|
||||
* @summary "cannot assign address" when binding ServerSocket on Suse 9
|
||||
* @library /test/lib
|
||||
* @build jdk.test.lib.NetworkConfiguration
|
||||
* jdk.test.lib.Platform
|
||||
* @run main B6206527
|
||||
*/
|
||||
|
||||
import java.net.*;
|
||||
import java.util.*;
|
||||
import jdk.test.lib.NetworkConfiguration;
|
||||
|
||||
public class B6206527 {
|
||||
|
||||
public static void main (String[] args) throws Exception {
|
||||
Inet6Address addr = getLocalAddr();
|
||||
if (addr == null) {
|
||||
System.out.println("Could not find a link-local address");
|
||||
return;
|
||||
}
|
||||
|
||||
try (ServerSocket ss = new ServerSocket()) {
|
||||
System.out.println("trying LL addr: " + addr);
|
||||
ss.bind(new InetSocketAddress(addr, 0));
|
||||
}
|
||||
|
||||
// need to remove the %scope suffix
|
||||
addr = (Inet6Address) InetAddress.getByAddress (
|
||||
addr.getAddress()
|
||||
);
|
||||
|
||||
try (ServerSocket ss = new ServerSocket()) {
|
||||
System.out.println("trying LL addr: " + addr);
|
||||
ss.bind(new InetSocketAddress(addr, 0));
|
||||
}
|
||||
}
|
||||
|
||||
public static Inet6Address getLocalAddr() throws Exception {
|
||||
Optional<Inet6Address> oaddr = NetworkConfiguration.probe()
|
||||
.ip6Addresses()
|
||||
.filter(a -> a.isLinkLocalAddress())
|
||||
.findFirst();
|
||||
|
||||
return oaddr.orElseGet(() -> null);
|
||||
}
|
||||
}
|
||||
93
test/jdk/java/net/Inet6Address/B6558853.java
Normal file
93
test/jdk/java/net/Inet6Address/B6558853.java
Normal file
|
|
@ -0,0 +1,93 @@
|
|||
/*
|
||||
* Copyright (c) 2008, 2019, 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
|
||||
* @key intermittent
|
||||
* @bug 6558853
|
||||
* @summary getHostAddress() on connections using IPv6 link-local addrs should have zone id
|
||||
* This test needs to bind to the wildcard address and as such is succeptible to
|
||||
* fail intermittently because of port reuse issues.
|
||||
* @library /test/lib
|
||||
* @build jdk.test.lib.NetworkConfiguration
|
||||
* jdk.test.lib.Platform
|
||||
* @run main B6558853
|
||||
*/
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.OutputStream;
|
||||
import java.net.*;
|
||||
import java.util.Optional;
|
||||
import jdk.test.lib.NetworkConfiguration;
|
||||
|
||||
public class B6558853 implements Runnable {
|
||||
private InetAddress addr = null;
|
||||
private int port = 0;
|
||||
|
||||
public static void main(String[] args) throws Exception {
|
||||
Optional<Inet6Address> oaddr = NetworkConfiguration.probe()
|
||||
.ip6Addresses()
|
||||
.filter(a -> a.isLinkLocalAddress())
|
||||
.findFirst();
|
||||
|
||||
if (!oaddr.isPresent()) {
|
||||
System.out.println("No suitable interface found. Exiting.");
|
||||
return;
|
||||
}
|
||||
|
||||
Inet6Address dest = oaddr.get();
|
||||
System.out.println("Using " + dest);
|
||||
|
||||
try (ServerSocket ss = new ServerSocket(0)) {
|
||||
int port = ss.getLocalPort();
|
||||
B6558853 test = new B6558853(dest, port);
|
||||
Thread thread = new Thread(test);
|
||||
thread.start();
|
||||
Socket s = ss.accept();
|
||||
InetAddress a = s.getInetAddress();
|
||||
OutputStream out = s.getOutputStream();
|
||||
out.write(1);
|
||||
out.close();
|
||||
if (!(a instanceof Inet6Address) || a.getHostAddress().indexOf("%") == -1) {
|
||||
// No Scope found in the address String
|
||||
throw new RuntimeException("Wrong address: " + a.getHostAddress());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public B6558853(InetAddress a, int port) {
|
||||
addr = a;
|
||||
this.port = port;
|
||||
}
|
||||
|
||||
public void run() {
|
||||
try {
|
||||
Socket s = new Socket(addr, port);
|
||||
InputStream in = s.getInputStream();
|
||||
int i = in.read();
|
||||
in.close();
|
||||
} catch (IOException iOException) {
|
||||
}
|
||||
}
|
||||
}
|
||||
69
test/jdk/java/net/Inet6Address/IPv6AddressTypes.java
Normal file
69
test/jdk/java/net/Inet6Address/IPv6AddressTypes.java
Normal file
|
|
@ -0,0 +1,69 @@
|
|||
/*
|
||||
* Copyright (c) 2001, 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 4482124
|
||||
* @summary Inet6Address.isLinkLocal() and isSiteLocal()
|
||||
* implementation incorrect
|
||||
*
|
||||
*/
|
||||
import java.net.*;
|
||||
|
||||
public class IPv6AddressTypes {
|
||||
public static void main(String[] args) throws Exception {
|
||||
String[] goodlinklocal = {"fe80::a00:20ff:feae:45c9",
|
||||
"fe80::", "feb0::"};
|
||||
String[] badlinklocal = {"fec0::", "fe70::", "ff00::"};
|
||||
String[] goodsitelocal = {"fec0::a00:20ff:feae:45c9", "feff::"};
|
||||
String[] badsitelocal = {"fe80::", "fe00::", "ffc0::"};
|
||||
int i;
|
||||
|
||||
for (i = 0; i < goodlinklocal.length; i++) {
|
||||
InetAddress ia = InetAddress.getByName(goodlinklocal[i]);
|
||||
if (!ia.isLinkLocalAddress()) {
|
||||
throw new RuntimeException("Link-local address check failed:"+ia);
|
||||
} else {
|
||||
System.out.println("succeed: "+ia);
|
||||
}
|
||||
}
|
||||
for (i = 0; i < badlinklocal.length; i++) {
|
||||
InetAddress ia = InetAddress.getByName(badlinklocal[i]);
|
||||
if (ia.isLinkLocalAddress()) {
|
||||
throw new RuntimeException("Link-local address check failed:"+ia);
|
||||
}
|
||||
}
|
||||
for (i = 0; i < goodsitelocal.length; i++) {
|
||||
InetAddress ia = InetAddress.getByName(goodsitelocal[i]);
|
||||
if (!ia.isSiteLocalAddress()) {
|
||||
throw new RuntimeException("Site-local address check failed:"+ia);
|
||||
}
|
||||
}
|
||||
for (i = 0; i < badsitelocal.length; i++) {
|
||||
InetAddress ia = InetAddress.getByName(badsitelocal[i]);
|
||||
if (ia.isSiteLocalAddress()) {
|
||||
throw new RuntimeException("Site-local address check failed:"+ia);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
43
test/jdk/java/net/Inet6Address/IPv6Numeric.java
Normal file
43
test/jdk/java/net/Inet6Address/IPv6Numeric.java
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
/*
|
||||
* Copyright (c) 2003, 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 4865061
|
||||
* @summary REGRESSION: InetAddress.getByName(":") throws ArrayIndexOutOfBoundsException
|
||||
*
|
||||
*/
|
||||
|
||||
import java.net.InetAddress;
|
||||
|
||||
public class IPv6Numeric {
|
||||
public static void main(String[] args) {
|
||||
try {
|
||||
InetAddress addr = InetAddress.getByName(":");
|
||||
} catch (java.net.UnknownHostException uhe) {
|
||||
// what we expect. So everything is OK
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException(e.toString());
|
||||
}
|
||||
}
|
||||
}
|
||||
124
test/jdk/java/net/Inet6Address/PreferIPv6AddressesTest.java
Normal file
124
test/jdk/java/net/Inet6Address/PreferIPv6AddressesTest.java
Normal file
|
|
@ -0,0 +1,124 @@
|
|||
/*
|
||||
* Copyright (c) 2016, 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 8016521
|
||||
* @library /test/lib
|
||||
* @summary InetAddress should not always re-order addresses returned from name
|
||||
* service
|
||||
* @run main/othervm -Djava.net.preferIPv6Addresses=false PreferIPv6AddressesTest
|
||||
* @run main/othervm -Djava.net.preferIPv6Addresses=true PreferIPv6AddressesTest
|
||||
* @run main/othervm -Djava.net.preferIPv6Addresses=system PreferIPv6AddressesTest
|
||||
* @run main/othervm PreferIPv6AddressesTest
|
||||
*/
|
||||
|
||||
import java.io.IOException;
|
||||
import java.net.*;
|
||||
import java.nio.channels.DatagramChannel;
|
||||
import java.util.Arrays;
|
||||
import java.util.stream.IntStream;
|
||||
import static java.lang.System.out;
|
||||
import jdk.test.lib.net.IPSupport;
|
||||
|
||||
public class PreferIPv6AddressesTest {
|
||||
|
||||
// A name, that if resolves, returns both IPv4 and IPv6 addresses.
|
||||
static final String HOST_NAME = "www.google.com";
|
||||
|
||||
static final InetAddress LOOPBACK = InetAddress.getLoopbackAddress();
|
||||
|
||||
static final String preferIPV6Address =
|
||||
System.getProperty("java.net.preferIPv6Addresses", "false");
|
||||
|
||||
public static void main(String args[]) throws IOException {
|
||||
InetAddress addrs[];
|
||||
try {
|
||||
addrs = InetAddress.getAllByName(HOST_NAME);
|
||||
} catch (UnknownHostException e) {
|
||||
out.println("Unknown host " + HOST_NAME + ", cannot run test.");
|
||||
return;
|
||||
}
|
||||
|
||||
int firstIPv4Address = IntStream.range(0, addrs.length)
|
||||
.filter(x -> addrs[x] instanceof Inet4Address)
|
||||
.findFirst().orElse(-1);
|
||||
int firstIPv6Address = IntStream.range(0, addrs.length)
|
||||
.filter(x -> addrs[x] instanceof Inet6Address)
|
||||
.findFirst().orElse(-1);
|
||||
|
||||
out.println("IPv6 supported: " + IPSupport.hasIPv6());
|
||||
out.println("Addresses: " + Arrays.asList(addrs));
|
||||
|
||||
if (preferIPV6Address.equalsIgnoreCase("true") && firstIPv6Address != -1) {
|
||||
int off = firstIPv4Address != -1 ? firstIPv4Address : addrs.length;
|
||||
assertAllv6Addresses(addrs, 0, off);
|
||||
assertAllv4Addresses(addrs, off, addrs.length);
|
||||
assertLoopbackAddress(Inet6Address.class);
|
||||
assertAnyLocalAddress(Inet6Address.class);
|
||||
} else if (preferIPV6Address.equalsIgnoreCase("false") && firstIPv4Address != -1) {
|
||||
int off = firstIPv6Address != -1 ? firstIPv6Address : addrs.length;
|
||||
assertAllv4Addresses(addrs, 0, off);
|
||||
assertAllv6Addresses(addrs, off, addrs.length);
|
||||
assertLoopbackAddress(Inet4Address.class);
|
||||
assertAnyLocalAddress(Inet4Address.class);
|
||||
} else if (preferIPV6Address.equalsIgnoreCase("system") && IPSupport.hasIPv6()) {
|
||||
assertLoopbackAddress(Inet6Address.class);
|
||||
assertAnyLocalAddress(Inet6Address.class);
|
||||
} else if (preferIPV6Address.equalsIgnoreCase("system") && !IPSupport.hasIPv6()) {
|
||||
assertLoopbackAddress(Inet4Address.class);
|
||||
assertAnyLocalAddress(Inet4Address.class);
|
||||
}
|
||||
}
|
||||
|
||||
static void assertAllv4Addresses(InetAddress[] addrs, int off, int len) {
|
||||
IntStream.range(off, len)
|
||||
.mapToObj(x -> addrs[x])
|
||||
.forEach(x -> {
|
||||
if (!(x instanceof Inet4Address))
|
||||
throw new RuntimeException("Expected IPv4, got " + x);
|
||||
});
|
||||
}
|
||||
|
||||
static void assertAllv6Addresses(InetAddress[] addrs, int off, int len) {
|
||||
IntStream.range(off, len)
|
||||
.mapToObj(x -> addrs[x])
|
||||
.forEach(x -> {
|
||||
if (!(x instanceof Inet6Address))
|
||||
throw new RuntimeException("Expected IPv6, got " + x);
|
||||
});
|
||||
}
|
||||
|
||||
static void assertLoopbackAddress(Class<?> expectedType) {
|
||||
if (!LOOPBACK.getClass().isAssignableFrom(expectedType))
|
||||
throw new RuntimeException("Expected " + expectedType
|
||||
+ ", got " + LOOPBACK.getClass());
|
||||
}
|
||||
|
||||
static void assertAnyLocalAddress(Class<?> expectedType) {
|
||||
InetAddress anyAddr = (new InetSocketAddress(0)).getAddress();
|
||||
if (!anyAddr.getClass().isAssignableFrom(expectedType))
|
||||
throw new RuntimeException("Expected " + expectedType
|
||||
+ ", got " + anyAddr.getClass());
|
||||
}
|
||||
}
|
||||
196
test/jdk/java/net/Inet6Address/Scoping.java
Normal file
196
test/jdk/java/net/Inet6Address/Scoping.java
Normal file
|
|
@ -0,0 +1,196 @@
|
|||
/*
|
||||
* Copyright (c) 2019, 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 8216417
|
||||
* @summary cleanup of IPv6 scope-id handling
|
||||
* @library /test/lib
|
||||
* @build jdk.test.lib.NetworkConfiguration
|
||||
* @run main/othervm Scoping
|
||||
*/
|
||||
|
||||
import java.io.IOException;
|
||||
import java.net.*;
|
||||
import java.nio.ByteBuffer;
|
||||
import java.nio.channels.DatagramChannel;
|
||||
import java.nio.channels.ServerSocketChannel;
|
||||
import java.nio.channels.SocketChannel;
|
||||
import java.util.Enumeration;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import jdk.test.lib.NetworkConfiguration;
|
||||
|
||||
public class Scoping {
|
||||
|
||||
interface ThrowingConsumer<T> {
|
||||
public void accept(T t) throws Exception;
|
||||
}
|
||||
|
||||
static List<ThrowingConsumer<InetSocketAddress>> targets = List.of(
|
||||
/* 0 */ (a) -> {Socket s = new Socket(); s.bind(a);s.close();},
|
||||
/* 1 */ (a) -> {ServerSocket s = new ServerSocket(); s.bind(a);s.close();},
|
||||
/* 2 */ (a) -> {DatagramSocket s = new DatagramSocket(null); s.bind(a); s.close();},
|
||||
/* 3 */ (a) -> {MulticastSocket s = new MulticastSocket(null); s.bind(a); s.close();},
|
||||
/* 4 */ (a) -> {SocketChannel s = SocketChannel.open(); s.bind(a);s.close();},
|
||||
/* 5 */ (a) -> {ServerSocketChannel s = ServerSocketChannel.open(); s.bind(a);s.close();},
|
||||
/* 6 */ (a) -> {DatagramChannel s = DatagramChannel.open(); s.bind(a); s.close();},
|
||||
/* 7 */ (a) -> {SocketChannel s = SocketChannel.open(); s.socket().bind(a);s.close();},
|
||||
/* 8 */ (a) -> {ServerSocketChannel s = ServerSocketChannel.open(); s.socket().bind(a);s.close();},
|
||||
/* 9 */ (a) -> {DatagramChannel s = DatagramChannel.open(); s.socket().bind(a); s.close();},
|
||||
/* 10 */ (a) -> {socketTest(a);},
|
||||
/* 11 */ (a) -> {dgSocketTest(a, false);},
|
||||
/* 12 */ (a) -> {dgSocketTest(a, true);},
|
||||
/* 13 */ (a) -> {dgChannelTest(a, false);},
|
||||
/* 14 */ (a) -> {dgChannelTest(a, true);}
|
||||
);
|
||||
|
||||
static List<Inet6Address> getLinkLocalAddrs() throws IOException {
|
||||
return NetworkConfiguration.probe()
|
||||
.ip6Addresses()
|
||||
.filter(Inet6Address::isLinkLocalAddress)
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
|
||||
static void compare(InetSocketAddress a, InetSocketAddress b) {
|
||||
Inet6Address a1 = (Inet6Address)a.getAddress();
|
||||
Inet6Address b1 = (Inet6Address)b.getAddress();
|
||||
compare (a1, b1);
|
||||
}
|
||||
|
||||
static void compare(InetAddress a, InetAddress b) {
|
||||
Inet6Address a1 = (Inet6Address)a;
|
||||
Inet6Address b1 = (Inet6Address)b;
|
||||
if (!a1.equals(b1)) {
|
||||
System.out.printf("%s != %s\n", a1, b1);
|
||||
throw new RuntimeException("Addresses not the same");
|
||||
}
|
||||
|
||||
if (!a1.getHostAddress().equals(b1.getHostAddress())) {
|
||||
System.out.printf("%s != %s\n", a1, b1);
|
||||
if (a1.getScopeId() != b1.getScopeId())
|
||||
throw new RuntimeException("Scope ids not the same");
|
||||
}
|
||||
}
|
||||
|
||||
static void socketTest(InetSocketAddress a) throws Exception {
|
||||
System.out.printf("socketTest: address %s\n", a);
|
||||
try (ServerSocket server = new ServerSocket(0, 5, a.getAddress())) {
|
||||
InetAddress saddr = server.getInetAddress();
|
||||
int port = server.getLocalPort();
|
||||
Socket client = new Socket(saddr, port);
|
||||
compare(client.getInetAddress(), saddr);
|
||||
try {
|
||||
client.close();
|
||||
} catch (IOException e) {}
|
||||
}
|
||||
}
|
||||
|
||||
static void dgSocketTest(InetSocketAddress a, boolean connect) throws Exception {
|
||||
try (DatagramSocket s = new DatagramSocket(null)) {
|
||||
System.out.println("dgSocketTest: " + a);
|
||||
s.bind(a);
|
||||
String t = "Hello world";
|
||||
DatagramPacket rx = new DatagramPacket(new byte[128], 128);
|
||||
int port = s.getLocalPort();
|
||||
InetSocketAddress dest = new InetSocketAddress(a.getAddress(), port);
|
||||
DatagramPacket tx = new DatagramPacket(t.getBytes("ISO8859_1"), t.length(), dest);
|
||||
if (connect) {
|
||||
s.connect(dest);
|
||||
System.out.println("dgSocketTest: connect remote addr = " + s.getRemoteSocketAddress());
|
||||
compare(a, (InetSocketAddress)s.getRemoteSocketAddress());
|
||||
}
|
||||
s.send(tx);
|
||||
s.receive(rx);
|
||||
String t1 = new String(rx.getData(), rx.getOffset(), rx.getLength(), "ISO8859_1");
|
||||
if (!t1.equals(t))
|
||||
throw new RuntimeException("Packets not equal");
|
||||
}
|
||||
}
|
||||
|
||||
static void dgChannelTest(InetSocketAddress a, boolean connect) throws Exception {
|
||||
try (DatagramChannel s = DatagramChannel.open()) {
|
||||
System.out.println("dgChannelTest: " + a);
|
||||
s.bind(a);
|
||||
String t = "Hello world";
|
||||
ByteBuffer rx = ByteBuffer.allocate(128);
|
||||
int port = ((InetSocketAddress)s.getLocalAddress()).getPort();
|
||||
InetSocketAddress dest = new InetSocketAddress(a.getAddress(), port);
|
||||
ByteBuffer tx = ByteBuffer.wrap(t.getBytes("ISO8859_1"));
|
||||
if (connect) {
|
||||
s.connect(dest);
|
||||
System.out.println("dgChannelTest: connect remote addr = " + s.getRemoteAddress());
|
||||
compare(a, (InetSocketAddress)s.getRemoteAddress());
|
||||
}
|
||||
s.send(tx, dest);
|
||||
s.receive(rx);
|
||||
rx.flip();
|
||||
String t1 = new String(rx.array(), 0, rx.limit(), "ISO8859_1");
|
||||
System.out.printf("rx : %s, data: %s\n", rx, t1);
|
||||
if (!t1.equals(t))
|
||||
throw new RuntimeException("Packets not equal");
|
||||
}
|
||||
}
|
||||
|
||||
static Inet6Address stripScope(Inet6Address address) {
|
||||
byte[] bytes = address.getAddress();
|
||||
InetAddress result = null;
|
||||
try {
|
||||
result = InetAddress.getByAddress(bytes);
|
||||
} catch (UnknownHostException e) {
|
||||
assert false;
|
||||
}
|
||||
return (Inet6Address)result;
|
||||
}
|
||||
|
||||
public static void main(String[] args) throws Exception {
|
||||
for (Inet6Address address : getLinkLocalAddrs()) {
|
||||
Inet6Address stripped = stripScope(address);
|
||||
InetSocketAddress s1 = new InetSocketAddress(address, 0);
|
||||
InetSocketAddress s2 = new InetSocketAddress(stripped, 0);
|
||||
System.out.println("Trying: " + address);
|
||||
int count = 0, success = 0;
|
||||
for (ThrowingConsumer<InetSocketAddress> target : targets) {
|
||||
try {
|
||||
target.accept(s1);
|
||||
System.out.println("target " + count + " OK");
|
||||
// if that succeeds try s2 (the actual test)
|
||||
try {
|
||||
target.accept(s2);
|
||||
success++;
|
||||
} catch (IOException ee) {
|
||||
String msg = "Failed: " + s2.toString() + "count: " + Integer.toString(count);
|
||||
throw new RuntimeException (msg);
|
||||
}
|
||||
} catch (IOException e) {
|
||||
System.out.println(e.getMessage());
|
||||
// OK
|
||||
}
|
||||
count++;
|
||||
}
|
||||
System.out.println("Succeeded with " + success + " binds");
|
||||
}
|
||||
}
|
||||
}
|
||||
63
test/jdk/java/net/Inet6Address/StringScope.java
Normal file
63
test/jdk/java/net/Inet6Address/StringScope.java
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
/*
|
||||
* Copyright (c) 2012, 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 8004675
|
||||
* @summary Inet6Address.getHostAddress should use string scope
|
||||
* identifier where available
|
||||
*/
|
||||
|
||||
import java.net.*;
|
||||
import java.util.Enumeration;
|
||||
|
||||
public class StringScope {
|
||||
|
||||
public static void main(String args[]) throws Exception {
|
||||
Enumeration<NetworkInterface> e = NetworkInterface.getNetworkInterfaces();
|
||||
while (e.hasMoreElements()) {
|
||||
NetworkInterface iface = e.nextElement();
|
||||
Enumeration<InetAddress> iadrs = iface.getInetAddresses();
|
||||
while (iadrs.hasMoreElements()) {
|
||||
InetAddress iadr = iadrs.nextElement();
|
||||
if (iadr instanceof Inet6Address) {
|
||||
Inet6Address i6adr = (Inet6Address) iadr;
|
||||
NetworkInterface nif = i6adr.getScopedInterface();
|
||||
if (nif == null)
|
||||
continue;
|
||||
|
||||
String nifName = nif.getName();
|
||||
String i6adrHostAddress = i6adr.getHostAddress();
|
||||
int index = i6adrHostAddress.indexOf('%');
|
||||
String i6adrScopeName = i6adrHostAddress.substring(index+1);
|
||||
|
||||
if (!nifName.equals(i6adrScopeName))
|
||||
throw new RuntimeException("Expected nifName ["
|
||||
+ nifName + "], to equal i6adrScopeName ["
|
||||
+ i6adrScopeName + "] ");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -0,0 +1,93 @@
|
|||
/*
|
||||
* Copyright (c) 2018, 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.
|
||||
*/
|
||||
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.DataOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InvalidObjectException;
|
||||
import java.io.ObjectInputStream;
|
||||
import java.io.ObjectStreamConstants;
|
||||
import static java.io.ObjectStreamConstants.STREAM_MAGIC;
|
||||
import static java.io.ObjectStreamConstants.TC_CLASSDESC;
|
||||
import static java.io.ObjectStreamConstants.TC_ENDBLOCKDATA;
|
||||
import static java.io.ObjectStreamConstants.TC_NULL;
|
||||
import static java.io.ObjectStreamConstants.TC_OBJECT;
|
||||
import java.net.Inet6Address;
|
||||
/**
|
||||
* @test
|
||||
* @bug 8194676
|
||||
* @summary NullPointerException is thrown if ipaddress is not set.
|
||||
* @run main Inet6AddressSerTest
|
||||
*/
|
||||
public class Inet6AddressSerTest implements ObjectStreamConstants {
|
||||
|
||||
static class PayloadTest {
|
||||
|
||||
private static byte[] serialize(String className) throws IOException {
|
||||
try (ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
||||
DataOutputStream dos = new DataOutputStream(baos)) {
|
||||
// stream headers
|
||||
dos.writeShort(STREAM_MAGIC);
|
||||
dos.writeShort(5); // version
|
||||
|
||||
// Inet6Address
|
||||
dos.writeByte(TC_OBJECT);
|
||||
dos.writeByte(TC_CLASSDESC);
|
||||
dos.writeUTF(className);
|
||||
dos.writeLong(6880410070516793377L);
|
||||
dos.writeByte(2);
|
||||
dos.writeShort(0);
|
||||
dos.writeByte(TC_ENDBLOCKDATA);
|
||||
dos.writeByte(TC_NULL);
|
||||
return baos.toByteArray();
|
||||
}
|
||||
}
|
||||
|
||||
private static Object deserialize(final byte[] buffer)
|
||||
throws IOException, ClassNotFoundException {
|
||||
try (ObjectInputStream ois = new ObjectInputStream(new ByteArrayInputStream(buffer))) {
|
||||
return ois.readObject();
|
||||
}
|
||||
}
|
||||
|
||||
void test(String className) throws IOException, ClassNotFoundException {
|
||||
deserialize(serialize(className));
|
||||
}
|
||||
}
|
||||
|
||||
public static void main(String[] args) throws IOException, ClassNotFoundException {
|
||||
try {
|
||||
new PayloadTest().test(Inet6Address.class.getName());
|
||||
throw new RuntimeException("Expected exception not raised");
|
||||
} catch (InvalidObjectException ioe) {
|
||||
if (ioe.getMessage().contains("invalid address length")) {
|
||||
System.out.println(String.format("Got expected exception: %s", ioe));
|
||||
} else {
|
||||
throw new RuntimeException("Expected exception not raised");
|
||||
}
|
||||
} catch (RuntimeException re) {
|
||||
throw new RuntimeException("Expected exception not raised");
|
||||
}
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load diff
6
test/jdk/java/net/Inet6Address/serialize/Readme.txt
Normal file
6
test/jdk/java/net/Inet6Address/serialize/Readme.txt
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
This test uses 2 binary data files that were each created by serializing an Inet6Address instance.
|
||||
In both cases this has to do with the tricky issue of scopes in serialized addresses.
|
||||
|
||||
serial1.4.2.ser: Was created by serializing an Inet6Address (::1) with J2SE 1.4.2 and is used to check for backward compatibility.
|
||||
|
||||
serial-bge0.ser: Was created on a Sparc workstation because it has an uncommon interface name ('bge0') which is useful for the test.
|
||||
293
test/jdk/java/net/Inet6Address/serialize/Serialize.java
Normal file
293
test/jdk/java/net/Inet6Address/serialize/Serialize.java
Normal file
|
|
@ -0,0 +1,293 @@
|
|||
/*
|
||||
* Copyright (c) 2003, 2013, 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 4921029
|
||||
* @bug 6656849
|
||||
* @summary java.net.Inet6Address fails to be serialized with IPv6 support
|
||||
* @summary NullPointerException thrown while de-serializing IPV6 Address.
|
||||
*/
|
||||
|
||||
import java.net.*;
|
||||
import java.io.*;
|
||||
import java.util.*;
|
||||
|
||||
public class Serialize {
|
||||
|
||||
public static void main(String[] args)
|
||||
throws Exception
|
||||
{
|
||||
Enumeration nifs = NetworkInterface.getNetworkInterfaces();
|
||||
while (nifs.hasMoreElements()) {
|
||||
NetworkInterface nif = (NetworkInterface)nifs.nextElement();
|
||||
Enumeration addrs = nif.getInetAddresses();
|
||||
while (addrs.hasMoreElements()) {
|
||||
Object o = addrs.nextElement();
|
||||
if (o instanceof Inet6Address) {
|
||||
Inet6Address addr = (Inet6Address) o;
|
||||
System.out.println ("serializing " + addr);
|
||||
if (!test (addr)) {
|
||||
throw new RuntimeException ("failed on " + addr.toString());
|
||||
}
|
||||
|
||||
/* now reconstruct address with string name
|
||||
* and test again
|
||||
*/
|
||||
byte[] bytes = addr.getAddress();
|
||||
Inet6Address addr1 = Inet6Address.getByAddress ("foo", bytes, nif);
|
||||
System.out.println ("serializing " + addr1);
|
||||
if (!test (addr1)) {
|
||||
throw new RuntimeException ("failed on " + addr1.toString());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ObjectInputStream ois;
|
||||
Inet6Address nobj;
|
||||
|
||||
// check ::1 object serialised with 1.4.2 is readable
|
||||
|
||||
File file = new File (System.getProperty("test.src"), "serial1.4.2.ser");
|
||||
ois = new ObjectInputStream(new FileInputStream(file));
|
||||
nobj = (Inet6Address) ois.readObject();
|
||||
ois.close();
|
||||
if (!nobj.equals (InetAddress.getByName ("::1"))) {
|
||||
throw new RuntimeException ("old ::1 not deserialized right");
|
||||
}
|
||||
|
||||
System.out.println(nobj);
|
||||
|
||||
// create an address with an unlikely numeric scope_id
|
||||
if (!test ((Inet6Address)InetAddress.getByName ("fe80::1%99"))) {
|
||||
throw new RuntimeException ("test failed on fe80::1%99");
|
||||
}
|
||||
|
||||
// Deserialize an Inet6 address with a named interface
|
||||
file = new File (System.getProperty("test.src"), "serial-bge0.ser");
|
||||
ois = new ObjectInputStream(new FileInputStream(file));
|
||||
try {
|
||||
nobj = (Inet6Address) ois.readObject();
|
||||
} catch (NullPointerException e) {
|
||||
throw new RuntimeException("6656849 Not fixed: NullPointer when deserializing");
|
||||
} finally {
|
||||
ois.close();
|
||||
}
|
||||
|
||||
nobj = (Inet6Address)InetAddress.getByAddress("foo.com", new byte[] {
|
||||
(byte)0xfe,(byte)0x80,(byte)0,(byte)0,(byte)0,(byte)0,(byte)0,(byte)0,
|
||||
(byte)0,(byte)0,(byte)0,(byte)0,(byte)0,(byte)0,(byte)0,(byte)1
|
||||
});
|
||||
if (!test1(nobj, addr1)) {
|
||||
throw new RuntimeException("failed with " + nobj.toString());
|
||||
}
|
||||
nobj = (Inet6Address)InetAddress.getByAddress("x.bar.com", new byte[] {
|
||||
(byte)0xfe,(byte)0xC0,(byte)0,(byte)0,(byte)0,(byte)0,(byte)0,(byte)0,
|
||||
(byte)0,(byte)0,(byte)0,(byte)0,(byte)0,(byte)0,(byte)0,(byte)1
|
||||
});
|
||||
if (!test1(nobj, addr2)) {
|
||||
throw new RuntimeException("failed with " + nobj.toString());
|
||||
}
|
||||
nobj = (Inet6Address)InetAddress.getByName("::1");
|
||||
if (!test1(nobj, addr3)) {
|
||||
throw new RuntimeException("failed with " + nobj.toString());
|
||||
}
|
||||
|
||||
System.out.println("All tests passed");
|
||||
}
|
||||
|
||||
static boolean test (Inet6Address obj) throws Exception {
|
||||
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("i6a1.ser"));
|
||||
oos.writeObject(obj);
|
||||
oos.close();
|
||||
|
||||
ObjectInputStream ois = new ObjectInputStream(new FileInputStream("i6a1.ser"));
|
||||
Inet6Address nobj = (Inet6Address) ois.readObject();
|
||||
ois.close();
|
||||
|
||||
if (nobj.equals(obj)) {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
static boolean test1 (Inet6Address obj, byte[] buf) throws Exception {
|
||||
ObjectInputStream ois = new ObjectInputStream(new ByteArrayInputStream(buf));
|
||||
Inet6Address nobj = (Inet6Address) ois.readObject();
|
||||
ois.close();
|
||||
|
||||
if (nobj.equals(obj)) {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// Inet6Address instances serialized with JDK 6
|
||||
|
||||
static byte[] addr1 = {
|
||||
(byte)0xac,(byte)0xed,(byte)0x00,(byte)0x05,(byte)0x73,(byte)0x72,
|
||||
(byte)0x00,(byte)0x15,(byte)0x6a,(byte)0x61,(byte)0x76,(byte)0x61,
|
||||
(byte)0x2e,(byte)0x6e,(byte)0x65,(byte)0x74,(byte)0x2e,(byte)0x49,
|
||||
(byte)0x6e,(byte)0x65,(byte)0x74,(byte)0x36,(byte)0x41,(byte)0x64,
|
||||
(byte)0x64,(byte)0x72,(byte)0x65,(byte)0x73,(byte)0x73,(byte)0x5f,
|
||||
(byte)0x7c,(byte)0x20,(byte)0x81,(byte)0x52,(byte)0x2c,(byte)0x80,
|
||||
(byte)0x21,(byte)0x03,(byte)0x00,(byte)0x05,(byte)0x49,(byte)0x00,
|
||||
(byte)0x08,(byte)0x73,(byte)0x63,(byte)0x6f,(byte)0x70,(byte)0x65,
|
||||
(byte)0x5f,(byte)0x69,(byte)0x64,(byte)0x5a,(byte)0x00,(byte)0x0c,
|
||||
(byte)0x73,(byte)0x63,(byte)0x6f,(byte)0x70,(byte)0x65,(byte)0x5f,
|
||||
(byte)0x69,(byte)0x64,(byte)0x5f,(byte)0x73,(byte)0x65,(byte)0x74,
|
||||
(byte)0x5a,(byte)0x00,(byte)0x10,(byte)0x73,(byte)0x63,(byte)0x6f,
|
||||
(byte)0x70,(byte)0x65,(byte)0x5f,(byte)0x69,(byte)0x66,(byte)0x6e,
|
||||
(byte)0x61,(byte)0x6d,(byte)0x65,(byte)0x5f,(byte)0x73,(byte)0x65,
|
||||
(byte)0x74,(byte)0x4c,(byte)0x00,(byte)0x06,(byte)0x69,(byte)0x66,
|
||||
(byte)0x6e,(byte)0x61,(byte)0x6d,(byte)0x65,(byte)0x74,(byte)0x00,
|
||||
(byte)0x12,(byte)0x4c,(byte)0x6a,(byte)0x61,(byte)0x76,(byte)0x61,
|
||||
(byte)0x2f,(byte)0x6c,(byte)0x61,(byte)0x6e,(byte)0x67,(byte)0x2f,
|
||||
(byte)0x53,(byte)0x74,(byte)0x72,(byte)0x69,(byte)0x6e,(byte)0x67,
|
||||
(byte)0x3b,(byte)0x5b,(byte)0x00,(byte)0x09,(byte)0x69,(byte)0x70,
|
||||
(byte)0x61,(byte)0x64,(byte)0x64,(byte)0x72,(byte)0x65,(byte)0x73,
|
||||
(byte)0x73,(byte)0x74,(byte)0x00,(byte)0x02,(byte)0x5b,(byte)0x42,
|
||||
(byte)0x78,(byte)0x72,(byte)0x00,(byte)0x14,(byte)0x6a,(byte)0x61,
|
||||
(byte)0x76,(byte)0x61,(byte)0x2e,(byte)0x6e,(byte)0x65,(byte)0x74,
|
||||
(byte)0x2e,(byte)0x49,(byte)0x6e,(byte)0x65,(byte)0x74,(byte)0x41,
|
||||
(byte)0x64,(byte)0x64,(byte)0x72,(byte)0x65,(byte)0x73,(byte)0x73,
|
||||
(byte)0x2d,(byte)0x9b,(byte)0x57,(byte)0xaf,(byte)0x9f,(byte)0xe3,
|
||||
(byte)0xeb,(byte)0xdb,(byte)0x02,(byte)0x00,(byte)0x03,(byte)0x49,
|
||||
(byte)0x00,(byte)0x07,(byte)0x61,(byte)0x64,(byte)0x64,(byte)0x72,
|
||||
(byte)0x65,(byte)0x73,(byte)0x73,(byte)0x49,(byte)0x00,(byte)0x06,
|
||||
(byte)0x66,(byte)0x61,(byte)0x6d,(byte)0x69,(byte)0x6c,(byte)0x79,
|
||||
(byte)0x4c,(byte)0x00,(byte)0x08,(byte)0x68,(byte)0x6f,(byte)0x73,
|
||||
(byte)0x74,(byte)0x4e,(byte)0x61,(byte)0x6d,(byte)0x65,(byte)0x71,
|
||||
(byte)0x00,(byte)0x7e,(byte)0x00,(byte)0x01,(byte)0x78,(byte)0x70,
|
||||
(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x00,
|
||||
(byte)0x00,(byte)0x02,(byte)0x74,(byte)0x00,(byte)0x07,(byte)0x66,
|
||||
(byte)0x6f,(byte)0x6f,(byte)0x2e,(byte)0x63,(byte)0x6f,(byte)0x6d,
|
||||
(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x00,
|
||||
(byte)0x70,(byte)0x75,(byte)0x72,(byte)0x00,(byte)0x02,(byte)0x5b,
|
||||
(byte)0x42,(byte)0xac,(byte)0xf3,(byte)0x17,(byte)0xf8,(byte)0x06,
|
||||
(byte)0x08,(byte)0x54,(byte)0xe0,(byte)0x02,(byte)0x00,(byte)0x00,
|
||||
(byte)0x78,(byte)0x70,(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x10,
|
||||
(byte)0xfe,(byte)0x80,(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x00,
|
||||
(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x00,
|
||||
(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x01,(byte)0x78
|
||||
};
|
||||
|
||||
static byte[] addr2 = {
|
||||
(byte)0xac,(byte)0xed,(byte)0x00,(byte)0x05,(byte)0x73,(byte)0x72,
|
||||
(byte)0x00,(byte)0x15,(byte)0x6a,(byte)0x61,(byte)0x76,(byte)0x61,
|
||||
(byte)0x2e,(byte)0x6e,(byte)0x65,(byte)0x74,(byte)0x2e,(byte)0x49,
|
||||
(byte)0x6e,(byte)0x65,(byte)0x74,(byte)0x36,(byte)0x41,(byte)0x64,
|
||||
(byte)0x64,(byte)0x72,(byte)0x65,(byte)0x73,(byte)0x73,(byte)0x5f,
|
||||
(byte)0x7c,(byte)0x20,(byte)0x81,(byte)0x52,(byte)0x2c,(byte)0x80,
|
||||
(byte)0x21,(byte)0x03,(byte)0x00,(byte)0x05,(byte)0x49,(byte)0x00,
|
||||
(byte)0x08,(byte)0x73,(byte)0x63,(byte)0x6f,(byte)0x70,(byte)0x65,
|
||||
(byte)0x5f,(byte)0x69,(byte)0x64,(byte)0x5a,(byte)0x00,(byte)0x0c,
|
||||
(byte)0x73,(byte)0x63,(byte)0x6f,(byte)0x70,(byte)0x65,(byte)0x5f,
|
||||
(byte)0x69,(byte)0x64,(byte)0x5f,(byte)0x73,(byte)0x65,(byte)0x74,
|
||||
(byte)0x5a,(byte)0x00,(byte)0x10,(byte)0x73,(byte)0x63,(byte)0x6f,
|
||||
(byte)0x70,(byte)0x65,(byte)0x5f,(byte)0x69,(byte)0x66,(byte)0x6e,
|
||||
(byte)0x61,(byte)0x6d,(byte)0x65,(byte)0x5f,(byte)0x73,(byte)0x65,
|
||||
(byte)0x74,(byte)0x4c,(byte)0x00,(byte)0x06,(byte)0x69,(byte)0x66,
|
||||
(byte)0x6e,(byte)0x61,(byte)0x6d,(byte)0x65,(byte)0x74,(byte)0x00,
|
||||
(byte)0x12,(byte)0x4c,(byte)0x6a,(byte)0x61,(byte)0x76,(byte)0x61,
|
||||
(byte)0x2f,(byte)0x6c,(byte)0x61,(byte)0x6e,(byte)0x67,(byte)0x2f,
|
||||
(byte)0x53,(byte)0x74,(byte)0x72,(byte)0x69,(byte)0x6e,(byte)0x67,
|
||||
(byte)0x3b,(byte)0x5b,(byte)0x00,(byte)0x09,(byte)0x69,(byte)0x70,
|
||||
(byte)0x61,(byte)0x64,(byte)0x64,(byte)0x72,(byte)0x65,(byte)0x73,
|
||||
(byte)0x73,(byte)0x74,(byte)0x00,(byte)0x02,(byte)0x5b,(byte)0x42,
|
||||
(byte)0x78,(byte)0x72,(byte)0x00,(byte)0x14,(byte)0x6a,(byte)0x61,
|
||||
(byte)0x76,(byte)0x61,(byte)0x2e,(byte)0x6e,(byte)0x65,(byte)0x74,
|
||||
(byte)0x2e,(byte)0x49,(byte)0x6e,(byte)0x65,(byte)0x74,(byte)0x41,
|
||||
(byte)0x64,(byte)0x64,(byte)0x72,(byte)0x65,(byte)0x73,(byte)0x73,
|
||||
(byte)0x2d,(byte)0x9b,(byte)0x57,(byte)0xaf,(byte)0x9f,(byte)0xe3,
|
||||
(byte)0xeb,(byte)0xdb,(byte)0x02,(byte)0x00,(byte)0x03,(byte)0x49,
|
||||
(byte)0x00,(byte)0x07,(byte)0x61,(byte)0x64,(byte)0x64,(byte)0x72,
|
||||
(byte)0x65,(byte)0x73,(byte)0x73,(byte)0x49,(byte)0x00,(byte)0x06,
|
||||
(byte)0x66,(byte)0x61,(byte)0x6d,(byte)0x69,(byte)0x6c,(byte)0x79,
|
||||
(byte)0x4c,(byte)0x00,(byte)0x08,(byte)0x68,(byte)0x6f,(byte)0x73,
|
||||
(byte)0x74,(byte)0x4e,(byte)0x61,(byte)0x6d,(byte)0x65,(byte)0x71,
|
||||
(byte)0x00,(byte)0x7e,(byte)0x00,(byte)0x01,(byte)0x78,(byte)0x70,
|
||||
(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x00,
|
||||
(byte)0x00,(byte)0x02,(byte)0x74,(byte)0x00,(byte)0x09,(byte)0x78,
|
||||
(byte)0x2e,(byte)0x62,(byte)0x61,(byte)0x72,(byte)0x2e,(byte)0x63,
|
||||
(byte)0x6f,(byte)0x6d,(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x00,
|
||||
(byte)0x00,(byte)0x00,(byte)0x70,(byte)0x75,(byte)0x72,(byte)0x00,
|
||||
(byte)0x02,(byte)0x5b,(byte)0x42,(byte)0xac,(byte)0xf3,(byte)0x17,
|
||||
(byte)0xf8,(byte)0x06,(byte)0x08,(byte)0x54,(byte)0xe0,(byte)0x02,
|
||||
(byte)0x00,(byte)0x00,(byte)0x78,(byte)0x70,(byte)0x00,(byte)0x00,
|
||||
(byte)0x00,(byte)0x10,(byte)0xfe,(byte)0xc0,(byte)0x00,(byte)0x00,
|
||||
(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x00,
|
||||
(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x01,
|
||||
(byte)0x78
|
||||
};
|
||||
|
||||
static byte[] addr3 = {
|
||||
(byte)0xac,(byte)0xed,(byte)0x00,(byte)0x05,(byte)0x73,(byte)0x72,
|
||||
(byte)0x00,(byte)0x15,(byte)0x6a,(byte)0x61,(byte)0x76,(byte)0x61,
|
||||
(byte)0x2e,(byte)0x6e,(byte)0x65,(byte)0x74,(byte)0x2e,(byte)0x49,
|
||||
(byte)0x6e,(byte)0x65,(byte)0x74,(byte)0x36,(byte)0x41,(byte)0x64,
|
||||
(byte)0x64,(byte)0x72,(byte)0x65,(byte)0x73,(byte)0x73,(byte)0x5f,
|
||||
(byte)0x7c,(byte)0x20,(byte)0x81,(byte)0x52,(byte)0x2c,(byte)0x80,
|
||||
(byte)0x21,(byte)0x03,(byte)0x00,(byte)0x05,(byte)0x49,(byte)0x00,
|
||||
(byte)0x08,(byte)0x73,(byte)0x63,(byte)0x6f,(byte)0x70,(byte)0x65,
|
||||
(byte)0x5f,(byte)0x69,(byte)0x64,(byte)0x5a,(byte)0x00,(byte)0x0c,
|
||||
(byte)0x73,(byte)0x63,(byte)0x6f,(byte)0x70,(byte)0x65,(byte)0x5f,
|
||||
(byte)0x69,(byte)0x64,(byte)0x5f,(byte)0x73,(byte)0x65,(byte)0x74,
|
||||
(byte)0x5a,(byte)0x00,(byte)0x10,(byte)0x73,(byte)0x63,(byte)0x6f,
|
||||
(byte)0x70,(byte)0x65,(byte)0x5f,(byte)0x69,(byte)0x66,(byte)0x6e,
|
||||
(byte)0x61,(byte)0x6d,(byte)0x65,(byte)0x5f,(byte)0x73,(byte)0x65,
|
||||
(byte)0x74,(byte)0x4c,(byte)0x00,(byte)0x06,(byte)0x69,(byte)0x66,
|
||||
(byte)0x6e,(byte)0x61,(byte)0x6d,(byte)0x65,(byte)0x74,(byte)0x00,
|
||||
(byte)0x12,(byte)0x4c,(byte)0x6a,(byte)0x61,(byte)0x76,(byte)0x61,
|
||||
(byte)0x2f,(byte)0x6c,(byte)0x61,(byte)0x6e,(byte)0x67,(byte)0x2f,
|
||||
(byte)0x53,(byte)0x74,(byte)0x72,(byte)0x69,(byte)0x6e,(byte)0x67,
|
||||
(byte)0x3b,(byte)0x5b,(byte)0x00,(byte)0x09,(byte)0x69,(byte)0x70,
|
||||
(byte)0x61,(byte)0x64,(byte)0x64,(byte)0x72,(byte)0x65,(byte)0x73,
|
||||
(byte)0x73,(byte)0x74,(byte)0x00,(byte)0x02,(byte)0x5b,(byte)0x42,
|
||||
(byte)0x78,(byte)0x72,(byte)0x00,(byte)0x14,(byte)0x6a,(byte)0x61,
|
||||
(byte)0x76,(byte)0x61,(byte)0x2e,(byte)0x6e,(byte)0x65,(byte)0x74,
|
||||
(byte)0x2e,(byte)0x49,(byte)0x6e,(byte)0x65,(byte)0x74,(byte)0x41,
|
||||
(byte)0x64,(byte)0x64,(byte)0x72,(byte)0x65,(byte)0x73,(byte)0x73,
|
||||
(byte)0x2d,(byte)0x9b,(byte)0x57,(byte)0xaf,(byte)0x9f,(byte)0xe3,
|
||||
(byte)0xeb,(byte)0xdb,(byte)0x02,(byte)0x00,(byte)0x03,(byte)0x49,
|
||||
(byte)0x00,(byte)0x07,(byte)0x61,(byte)0x64,(byte)0x64,(byte)0x72,
|
||||
(byte)0x65,(byte)0x73,(byte)0x73,(byte)0x49,(byte)0x00,(byte)0x06,
|
||||
(byte)0x66,(byte)0x61,(byte)0x6d,(byte)0x69,(byte)0x6c,(byte)0x79,
|
||||
(byte)0x4c,(byte)0x00,(byte)0x08,(byte)0x68,(byte)0x6f,(byte)0x73,
|
||||
(byte)0x74,(byte)0x4e,(byte)0x61,(byte)0x6d,(byte)0x65,(byte)0x71,
|
||||
(byte)0x00,(byte)0x7e,(byte)0x00,(byte)0x01,(byte)0x78,(byte)0x70,
|
||||
(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x00,
|
||||
(byte)0x00,(byte)0x02,(byte)0x70,(byte)0x00,(byte)0x00,(byte)0x00,
|
||||
(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x70,(byte)0x75,(byte)0x72,
|
||||
(byte)0x00,(byte)0x02,(byte)0x5b,(byte)0x42,(byte)0xac,(byte)0xf3,
|
||||
(byte)0x17,(byte)0xf8,(byte)0x06,(byte)0x08,(byte)0x54,(byte)0xe0,
|
||||
(byte)0x02,(byte)0x00,(byte)0x00,(byte)0x78,(byte)0x70,(byte)0x00,
|
||||
(byte)0x00,(byte)0x00,(byte)0x10,(byte)0x00,(byte)0x00,(byte)0x00,
|
||||
(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x00,
|
||||
(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x00,
|
||||
(byte)0x01,(byte)0x78
|
||||
};
|
||||
}
|
||||
BIN
test/jdk/java/net/Inet6Address/serialize/serial-bge0.ser
Normal file
BIN
test/jdk/java/net/Inet6Address/serialize/serial-bge0.ser
Normal file
Binary file not shown.
BIN
test/jdk/java/net/Inet6Address/serialize/serial1.4.2.ser
Normal file
BIN
test/jdk/java/net/Inet6Address/serialize/serial1.4.2.ser
Normal file
Binary file not shown.
Loading…
Add table
Add a link
Reference in a new issue