Allow scoped addresses to be used for IPv6 multicast socket.

This commit is contained in:
Guus Sliepen 2012-03-25 13:42:10 +01:00
parent 2512040632
commit e2d1b0b899

View file

@ -119,7 +119,7 @@ static bool setup_device(void) {
struct sockaddr_in6 in6;
memcpy(&in6, ai->ai_addr, sizeof in6);
memcpy(&mreq.ipv6mr_multiaddr, &in6.sin6_addr, sizeof mreq.ipv6mr_multiaddr);
mreq.ipv6mr_interface = 0;
mreq.ipv6mr_interface = in6.sin6_scope_id;
if(setsockopt(device_fd, IPPROTO_IPV6, IPV6_JOIN_GROUP, &mreq, sizeof mreq)) {
logger(LOG_ERR, "Cannot join multicast group %s %s: %s", host, port, sockstrerror(sockerrno));
closesocket(device_fd);