src/java.base/share/classes/sun/nio/ch/Net.java
changeset 55375 96c7427456f9
parent 54246 f04e3492fd88
child 58679 9c3209ff7550
child 58801 119ac9128c1b
child 59000 612c58965775
--- 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);