1 // Copyright 2011 The Go Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style
3 // license that can be found in the LICENSE file.
12 func setIPv4MulticastInterface(fd
*netFD
, ifi
*Interface
) error
{
17 mreq
:= &syscall
.IPMreqn
{Ifindex
: v
}
18 if err
:= fd
.incref(false); err
!= nil {
22 err
:= syscall
.SetsockoptIPMreqn(fd
.sysfd
, syscall
.IPPROTO_IP
, syscall
.IP_MULTICAST_IF
, mreq
)
24 return os
.NewSyscallError("setsockopt", err
)
29 func setIPv4MulticastLoopback(fd
*netFD
, v
bool) error
{
30 if err
:= fd
.incref(false); err
!= nil {
34 err
:= syscall
.SetsockoptInt(fd
.sysfd
, syscall
.IPPROTO_IP
, syscall
.IP_MULTICAST_LOOP
, boolint(v
))
36 return os
.NewSyscallError("setsockopt", err
)