Commit a4a5205f authored by Simon Kelley's avatar Simon Kelley

Fix ordering problem in multicast setup.

parent c5ad4e79
...@@ -101,13 +101,6 @@ static int join_multicast(struct in6_addr *local, int prefix, ...@@ -101,13 +101,6 @@ static int join_multicast(struct in6_addr *local, int prefix,
if (if_index == listenp->fd_or_iface) if (if_index == listenp->fd_or_iface)
return 1; return 1;
mreq.ipv6mr_interface = if_index;
inet_pton(AF_INET6, ALL_ROUTERS, &mreq.ipv6mr_multiaddr);
if (daemon->icmp6fd != -1 &&
setsockopt(daemon->icmp6fd, IPPROTO_IPV6, IPV6_JOIN_GROUP, &mreq, sizeof(mreq)) == -1)
return 0;
if (!indextoname(fd, if_index, ifrn_name)) if (!indextoname(fd, if_index, ifrn_name))
return 0; return 0;
...@@ -127,6 +120,8 @@ static int join_multicast(struct in6_addr *local, int prefix, ...@@ -127,6 +120,8 @@ static int join_multicast(struct in6_addr *local, int prefix,
if (!context) if (!context)
return 1; return 1;
mreq.ipv6mr_interface = if_index;
inet_pton(AF_INET6, ALL_RELAY_AGENTS_AND_SERVERS, &mreq.ipv6mr_multiaddr); inet_pton(AF_INET6, ALL_RELAY_AGENTS_AND_SERVERS, &mreq.ipv6mr_multiaddr);
if (setsockopt(fd, IPPROTO_IPV6, IPV6_JOIN_GROUP, &mreq, sizeof(mreq)) == -1) if (setsockopt(fd, IPPROTO_IPV6, IPV6_JOIN_GROUP, &mreq, sizeof(mreq)) == -1)
...@@ -137,6 +132,12 @@ static int join_multicast(struct in6_addr *local, int prefix, ...@@ -137,6 +132,12 @@ static int join_multicast(struct in6_addr *local, int prefix,
if (setsockopt(fd, IPPROTO_IPV6, IPV6_JOIN_GROUP, &mreq, sizeof(mreq)) == -1) if (setsockopt(fd, IPPROTO_IPV6, IPV6_JOIN_GROUP, &mreq, sizeof(mreq)) == -1)
return 0; return 0;
inet_pton(AF_INET6, ALL_ROUTERS, &mreq.ipv6mr_multiaddr);
if (daemon->icmp6fd != -1 &&
setsockopt(daemon->icmp6fd, IPPROTO_IPV6, IPV6_JOIN_GROUP, &mreq, sizeof(mreq)) == -1)
return 0;
listenp = whine_malloc(sizeof(struct listen_param)); listenp = whine_malloc(sizeof(struct listen_param));
listenp->fd_or_iface = if_index; listenp->fd_or_iface = if_index;
listenp->next = param->next; listenp->next = param->next;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment