--- a/src/java.base/share/classes/sun/nio/ch/Net.java Thu Jun 13 12:22:28 2019 +0530
+++ b/src/java.base/share/classes/sun/nio/ch/Net.java Thu Jun 13 09:10:51 2019 +0100
@@ -50,6 +50,7 @@
import java.util.Enumeration;
import sun.net.ext.ExtendedSocketOptions;
+import sun.net.util.IPAddressUtil;
import sun.security.action.GetPropertyAction;
public class Net {
@@ -462,6 +463,9 @@
{
boolean preferIPv6 = isIPv6Available() &&
(family != StandardProtocolFamily.INET);
+ if (addr.isLinkLocalAddress()) {
+ addr = IPAddressUtil.toScopedAddress(addr);
+ }
bind0(fd, preferIPv6, exclusiveBind, addr, port);
}
@@ -481,6 +485,9 @@
static int connect(ProtocolFamily family, FileDescriptor fd, InetAddress remote, int remotePort)
throws IOException
{
+ if (remote.isLinkLocalAddress()) {
+ remote = IPAddressUtil.toScopedAddress(remote);
+ }
boolean preferIPv6 = isIPv6Available() &&
(family != StandardProtocolFamily.INET);
return connect0(preferIPv6, fd, remote, remotePort);