src/java.base/share/classes/sun/nio/ch/DatagramChannelImpl.java
changeset 55375 96c7427456f9
parent 55081 dd321e3596c0
child 58518 705c3f88a409
--- a/src/java.base/share/classes/sun/nio/ch/DatagramChannelImpl.java	Thu Jun 13 12:22:28 2019 +0530
+++ b/src/java.base/share/classes/sun/nio/ch/DatagramChannelImpl.java	Thu Jun 13 09:10:51 2019 +0100
@@ -57,6 +57,7 @@
 
 import sun.net.ResourceManager;
 import sun.net.ext.ExtendedSocketOptions;
+import sun.net.util.IPAddressUtil;
 
 /**
  * An implementation of DatagramChannels.
@@ -527,14 +528,16 @@
                 } else {
                     // not connected
                     SecurityManager sm = System.getSecurityManager();
+                    InetAddress ia = isa.getAddress();
                     if (sm != null) {
-                        InetAddress ia = isa.getAddress();
                         if (ia.isMulticastAddress()) {
                             sm.checkMulticast(ia);
                         } else {
                             sm.checkConnect(ia.getHostAddress(), isa.getPort());
                         }
                     }
+                    if (ia.isLinkLocalAddress())
+                        isa = IPAddressUtil.toScopedAddress(isa);
                     n = send(fd, src, isa);
                     if (blocking) {
                         while (IOStatus.okayToRetry(n) && isOpen()) {