|
@@ -44,6 +44,7 @@
|
|
#include <net/sock.h>
|
|
#include <net/sock.h>
|
|
#include <net/ip.h>
|
|
#include <net/ip.h>
|
|
#include <net/udp_tunnel.h>
|
|
#include <net/udp_tunnel.h>
|
|
|
|
+#include <net/addrconf.h>
|
|
#include <linux/tipc_netlink.h>
|
|
#include <linux/tipc_netlink.h>
|
|
#include "core.h"
|
|
#include "core.h"
|
|
#include "bearer.h"
|
|
#include "bearer.h"
|
|
@@ -247,10 +248,13 @@ static int enable_mcast(struct udp_bearer *ub, struct udp_media_addr *remote)
|
|
mreqn.imr_multiaddr = remote->ipv4;
|
|
mreqn.imr_multiaddr = remote->ipv4;
|
|
mreqn.imr_ifindex = ub->ifindex;
|
|
mreqn.imr_ifindex = ub->ifindex;
|
|
err = ip_mc_join_group(sk, &mreqn);
|
|
err = ip_mc_join_group(sk, &mreqn);
|
|
|
|
+#if IS_ENABLED(CONFIG_IPV6)
|
|
} else {
|
|
} else {
|
|
if (!ipv6_addr_is_multicast(&remote->ipv6))
|
|
if (!ipv6_addr_is_multicast(&remote->ipv6))
|
|
return 0;
|
|
return 0;
|
|
- err = ipv6_sock_mc_join(sk, ub->ifindex, &remote->ipv6);
|
|
|
|
|
|
+ err = ipv6_stub->ipv6_sock_mc_join(sk, ub->ifindex,
|
|
|
|
+ &remote->ipv6);
|
|
|
|
+#endif
|
|
}
|
|
}
|
|
return err;
|
|
return err;
|
|
}
|
|
}
|