From 726e36cf7c1daf8b1ecb2d46e1d5eee07b52c7a1 Mon Sep 17 00:00:00 2001 From: Igor Zinkovsky Date: Sun, 22 Jan 2012 17:52:20 -0800 Subject: [PATCH] implement uv_udp_set_multicast_ttl and uv_udp_set_broadcast on windows --- src/win/udp.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/win/udp.c b/src/win/udp.c index 0299e775..14f937ac 100644 --- a/src/win/udp.c +++ b/src/win/udp.c @@ -578,3 +578,24 @@ void uv_process_udp_send_req(uv_loop_t* loop, uv_udp_t* handle, DECREASE_PENDING_REQ_COUNT(handle); } + +int uv_udp_set_multicast_ttl(uv_udp_t* handle, int ttl) { + if (setsockopt(handle->socket, IPPROTO_IP, IP_MULTICAST_TTL, + (const char*)&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->socket, SOL_SOCKET, SO_BROADCAST, (const char*)&on, + sizeof on) == -1) { + uv__set_sys_error(handle->loop, errno); + return -1; + } + + return 0; +}