summaryrefslogtreecommitdiff
path: root/deps/uv/src/unix/udp.c
diff options
context:
space:
mode:
authorTimothy J Fontaine <tjfontaine@gmail.com>2014-02-26 18:08:30 -0800
committerTimothy J Fontaine <tjfontaine@gmail.com>2014-02-26 18:08:30 -0800
commitcd08c8a0e5e99ed4933b87fc5e188afcd4299f73 (patch)
treec05e93d47f89df1f7a782ee9c70bb2c97d557cd4 /deps/uv/src/unix/udp.c
parentf3189ace6b5e31a874df421ac2f74da0e77cb14d (diff)
downloadandroid-node-v8-cd08c8a0e5e99ed4933b87fc5e188afcd4299f73.tar.gz
android-node-v8-cd08c8a0e5e99ed4933b87fc5e188afcd4299f73.tar.bz2
android-node-v8-cd08c8a0e5e99ed4933b87fc5e188afcd4299f73.zip
uv: Upgrade to v0.11.21
Diffstat (limited to 'deps/uv/src/unix/udp.c')
-rw-r--r--deps/uv/src/unix/udp.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/deps/uv/src/unix/udp.c b/deps/uv/src/unix/udp.c
index a2b3dc3298..ae3cc8dc65 100644
--- a/deps/uv/src/unix/udp.c
+++ b/deps/uv/src/unix/udp.c
@@ -539,6 +539,31 @@ int uv_udp_set_multicast_loop(uv_udp_t* handle, int on) {
return uv__setsockopt_maybe_char(handle, IP_MULTICAST_LOOP, on);
}
+int uv_udp_set_multicast_interface(uv_udp_t* handle, const char* interface_addr) {
+ struct in_addr addr;
+ int err;
+
+ memset(&addr, 0, sizeof addr);
+
+ if (interface_addr) {
+ err = uv_inet_pton(AF_INET, interface_addr, &addr.s_addr);
+ if (err)
+ return err;
+ } else {
+ addr.s_addr = htonl(INADDR_ANY);
+ }
+
+ if (setsockopt(handle->io_watcher.fd,
+ IPPROTO_IP,
+ IP_MULTICAST_IF,
+ (void*) &addr,
+ sizeof addr) == -1) {
+ return -errno;
+ }
+
+ return 0;
+}
+
int uv_udp_getsockname(uv_udp_t* handle, struct sockaddr* name, int* namelen) {
socklen_t socklen;