diff --git a/src/unix/udp.c b/src/unix/udp.c index 74d613b6..7ebf0942 100644 --- a/src/unix/udp.c +++ b/src/unix/udp.c @@ -567,10 +567,6 @@ static int uv__udp_set_membership6(uv_udp_t* handle, optname, &mreq, sizeof(mreq))) { -#if defined(__MVS__) - if (errno == ENXIO) - return UV_ENODEV; -#endif return UV__ERR(errno); } diff --git a/test/test-udp-multicast-interface6.c b/test/test-udp-multicast-interface6.c index 40b05536..df10f3d0 100644 --- a/test/test-udp-multicast-interface6.c +++ b/test/test-udp-multicast-interface6.c @@ -74,9 +74,19 @@ TEST_IMPL(udp_multicast_interface6) { #if defined(__APPLE__) || defined(__FreeBSD__) || defined(__FreeBSD_kernel__) r = uv_udp_set_multicast_interface(&server, "::1%lo0"); +#elif defined(__MVS__) + r = uv_udp_set_multicast_interface(&server, "::1%LOOPBACK6"); #else r = uv_udp_set_multicast_interface(&server, NULL); #endif + +#if defined(__MVS__) + if (r == UV_EADDRNOTAVAIL) { + MAKE_VALGRIND_HAPPY(); + RETURN_SKIP("No ipv6 multicast route"); + } +#endif + ASSERT(r == 0); /* server sends "PING" */ diff --git a/test/test-udp-multicast-join6.c b/test/test-udp-multicast-join6.c index 8814b5ad..ac73e12f 100644 --- a/test/test-udp-multicast-join6.c +++ b/test/test-udp-multicast-join6.c @@ -121,14 +121,20 @@ TEST_IMPL(udp_multicast_join6) { /* join the multicast channel */ #if defined(__APPLE__) || \ defined(_AIX) || \ - defined(__MVS__) || \ defined(__FreeBSD_kernel__) || \ defined(__NetBSD__) r = uv_udp_set_membership(&client, "ff02::1", "::1%lo0", UV_JOIN_GROUP); +#elif defined(__MVS__) + r = uv_udp_set_membership(&client, "ff02::1", "::1%LOOPBACK6", UV_JOIN_GROUP); #else r = uv_udp_set_membership(&client, "ff02::1", NULL, UV_JOIN_GROUP); #endif + +#if defined(__MVS__) + if (r == UV_EADDRNOTAVAIL) { +#else if (r == UV_ENODEV) { +#endif MAKE_VALGRIND_HAPPY(); RETURN_SKIP("No ipv6 multicast route"); }