diff --git a/src/unix/udp.c b/src/unix/udp.c index f79b09cd..8388ba6c 100644 --- a/src/unix/udp.c +++ b/src/unix/udp.c @@ -542,8 +542,7 @@ int uv_udp_set_membership(uv_udp_t* handle, const char* multicast_addr, optname = IP_DROP_MEMBERSHIP; break; default: - uv__set_sys_error(handle->loop, EFAULT); - return -1; + return uv__set_artificial_error(handle->loop, UV_EINVAL); } if (setsockopt(handle->io_watcher.fd, IPPROTO_IP, optname, (void*) &mreq, sizeof mreq) == -1) { diff --git a/src/win/udp.c b/src/win/udp.c index 56b46239..6d2cde30 100644 --- a/src/win/udp.c +++ b/src/win/udp.c @@ -615,8 +615,7 @@ int uv_udp_set_membership(uv_udp_t* handle, const char* multicast_addr, optname = IP_DROP_MEMBERSHIP; break; default: - uv__set_artificial_error(handle->loop, UV_EFAULT); - return -1; + return uv__set_artificial_error(handle->loop, UV_EINVAL); } if (setsockopt(handle->socket,