package net
import (
)
func ( *netFD, *Interface, IP) error {
:= &syscall.IPMreq{Multiaddr: [4]byte{[0], [1], [2], [3]}}
if := setIPv4MreqToInterface(, ); != nil {
return
}
:= .pfd.SetsockoptIPMreq(syscall.IPPROTO_IP, syscall.IP_ADD_MEMBERSHIP, )
runtime.KeepAlive()
return wrapSyscallError("setsockopt", )
}
func ( *netFD, *Interface) error {
var int
if != nil {
= .Index
}
:= .pfd.SetsockoptInt(syscall.IPPROTO_IPV6, syscall.IPV6_MULTICAST_IF, )
runtime.KeepAlive()
return wrapSyscallError("setsockopt", )
}
func ( *netFD, bool) error {
:= .pfd.SetsockoptInt(syscall.IPPROTO_IPV6, syscall.IPV6_MULTICAST_LOOP, boolint())
runtime.KeepAlive()
return wrapSyscallError("setsockopt", )
}
func ( *netFD, *Interface, IP) error {
:= &syscall.IPv6Mreq{}
copy(.Multiaddr[:], )
if != nil {
.Interface = uint32(.Index)
}
:= .pfd.SetsockoptIPv6Mreq(syscall.IPPROTO_IPV6, syscall.IPV6_JOIN_GROUP, )
runtime.KeepAlive()
return wrapSyscallError("setsockopt", )
}