diff options
Diffstat (limited to 'deps/uv/src/unix/udp.c')
-rw-r--r-- | deps/uv/src/unix/udp.c | 30 |
1 files changed, 14 insertions, 16 deletions
diff --git a/deps/uv/src/unix/udp.c b/deps/uv/src/unix/udp.c index 0ebfe7079c..3e5de92948 100644 --- a/deps/uv/src/unix/udp.c +++ b/deps/uv/src/unix/udp.c @@ -509,27 +509,25 @@ int uv_udp_set_membership(uv_udp_t* handle, const char* multicast_addr, return 0; } -int uv_udp_set_multicast_ttl(uv_udp_t* handle, int ttl) { - if (setsockopt(handle->fd, IPPROTO_IP, IP_MULTICAST_TTL, &ttl, sizeof ttl) == -1) { - uv__set_sys_error(handle->loop, errno); - return -1; - } - - return 0; -} -int uv_udp_set_broadcast(uv_udp_t* handle, int on) { - if (setsockopt(handle->fd, SOL_SOCKET, SO_BROADCAST, &on, sizeof on) == -1) { - uv__set_sys_error(handle->loop, errno); - return -1; +#define X(name, level, option) \ + int uv_udp_set_##name(uv_udp_t* handle, int flag) { \ + if (setsockopt(handle->fd, level, option, &flag, sizeof(flag))) { \ + uv__set_sys_error(handle->loop, errno); \ + return -1; \ + } \ + return 0; \ } - return 0; -} +X(multicast_loop, IPPROTO_IP, IP_MULTICAST_LOOP) +X(multicast_ttl, IPPROTO_IP, IP_MULTICAST_TTL) +X(broadcast, SOL_SOCKET, SO_BROADCAST) +X(ttl, IPPROTO_IP, IP_TTL) + +#undef X -int uv_udp_getsockname(uv_udp_t* handle, struct sockaddr* name, - int* namelen) { +int uv_udp_getsockname(uv_udp_t* handle, struct sockaddr* name, int* namelen) { socklen_t socklen; int saved_errno; int rv = 0; |