On 11 Jan 2019, at 17:28, Volker Simonis <volker.simonis@gmail.com> wrote:
I think the difference is in setMulticastInterface() in PlainDatagramSocketImpl.c
#ifdef __linux__ mcast_set_if_by_if_v4(env, this, fd, value); if (ipv6_available()) { if ((*env)->ExceptionCheck(env)){ (*env)->ExceptionClear(env); } mcast_set_if_by_if_v6(env, this, fd, value); } #else /* __linux__ not defined */ if (ipv6_available()) { mcast_set_if_by_if_v6(env, this, fd, value); } else { mcast_set_if_by_if_v4(env, this, fd, value); } #endif /* __linux__ */
We should probably follow the Linux way for AIX as well.
I agree. -Chris.
On Fri, Jan 11, 2019 at 5:29 PM Chris Hegarty <chris.hegarty@oracle.com> wrote:
On 09/01/2019 15:20, Steve Groeger wrote: ...
I think I have an Linux system setup with a simarly configured interface (system has IPv6 configured but interface has no IPv6/INET6 address configured) but the test works fine when run on that system.
This is what I observe too. Confirmed by looking at the test output in the jtr file.
This was why I was asking the question on whether this should work on AIX, or whether it should fail on Linux!!!
I suspect that this is an issue with the native setsockopt on AIX. That said, if it cannot be resolved on AIX, then maybe the networking native code on AIX, should workaround it.
-Chris.