16                          const std::string & mcast) {
 
   18    struct ipv6_mreq mreq;
 
   19    memset(&mreq, 0, 
sizeof(ipv6_mreq));
 
   22    if (inet_pton(AF_INET6, mcast.c_str(), &mreq.ipv6mr_multiaddr) <= 0) {
 
   26    mreq.ipv6mr_interface = if_nametoindex(ifname.c_str());
 
   28    if (setsockopt(sock, IPPROTO_IPV6, IPV6_JOIN_GROUP,
 
   29                   &mreq, 
sizeof(mreq)) < 0) {