diff options
author | Jason Jeremy Iman <jasongustaman@google.com> | 2020-03-13 16:44:45 +0900 |
---|---|---|
committer | Jason Jeremy Iman <jasongustaman@google.com> | 2020-03-16 10:17:18 +0900 |
commit | 5472924eb4b7d78c07786fe60d5f1fff0ef3b6f2 (patch) | |
tree | 24a2ec4882d097570db4fe51494be63af0395277 /annotations/generate_annotated_java_files.py | |
parent | 79a219edf2d6cd697059cf5bf7310de9c68a89e5 (diff) |
Fix DatagramChannelImpl.setOption(IP_MULTICAST_IF, value) for dual-stack.
When setting multicast interface on IPv6 enabled interface, instead
of just setting IPv6 (IPV6_MULTICAST_IF), we are also setting IPv4
(IP_MULTICAST_IF).
This is done by changing the implementation of setInterface4 using
"struct ip_mreqn" following:
https://android.googlesource.com/platform/libcore/+/master/luni/src/main/native/libcore_io_Linux.cpp#2288
Bug: 144222142
Test: DatagramChannel dc = DatagramChannel.open();
dc.setOption(StandardSocketOptions.IP_MULTICAST_IF, iface);
dc.send(...);
sends datagram with the correct interface even if it is not
a default interface.
Tested on blueline and ARC++ atlas.
Test: dc.setOption(StandardSocketOptions.IP_MULTICAST_IF, iface);
will work on IPv4 and IPv6 only network interface;
Tested on blueline and ARC++ atlas.
Merged-Id: I696aae69c342f9a555fa87a59d170f35eb6ce2b4
Change-Id: I696aae69c342f9a555fa87a59d170f35eb6ce2b4
(cherry picked from commit 3984fafd3b8cefe9ed91dbe682bd0498a8714622)
Diffstat (limited to 'annotations/generate_annotated_java_files.py')
0 files changed, 0 insertions, 0 deletions