On 25/09/2019 21:03, Kurt Miller wrote:
:
Your welcome. It is something simple. Roughly speaking:
- set flag when bind on dgram socket sets IP addr
- when disconnecting (connect(2) called w/AF_UNSPEC) if flag
is set, don't reset it to INADDR_ANY
Thanks. One other issue that was found by the same combo test is
JDK-8231258 [1] and it may be of interest. It's a somewhat nonsensical
scenario but appears to demonstrates an issue on macOS where getsockname
returns an expected local address. I don't know if it arises with
OpenBSD or other BSDs.
The scenario is an IPv6 UDP socket. IPV6_V6ONLY is disabled so dual
stack. The socket is bound to a local IPv4 address (using an IPv4-mapped
IPv6 address). The socket is connected to an IPv6 address. At this
point, getsockname returns an IPv4 compatible IPv6 address (as in
::<ip4address>) rather than an IPv4-mapped IPv6 address (as in
::ffff:<ip4address>). It would be surprising if anything real world
would create this same scenario, instead it's something that a test
exercise all combinations of bind/connect finds.
-Alan
[1] https://bugs.openjdk.java.net/browse/JDK-8231258