33 IpMreq(
const char* ip_multiaddr,
unsigned int interface_index);
36 void*
Data() {
return &data_; }
39 const void*
Data()
const {
return &data_; }
48 int GetLeaveSocketOption()
const noexcept {
return (family_ == AF_INET ? IP_DROP_MEMBERSHIP : IPV6_LEAVE_GROUP); }
52 size_t
Size()
const noexcept {
return (family_ == AF_INET ?
sizeof(
struct ip_mreqn) :
sizeof(
struct ipv6_mreq)); }
56 struct ip_mreqn ip_req;
57 struct ipv6_mreq ipv6_req;