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.
13 func setIPv4MulticastInterface(fd
*netFD
, ifi
*Interface
) error
{
14 ip
, err
:= interfaceToIPv4Addr(ifi
)
16 return os
.NewSyscallError("setsockopt", err
)
20 if err
:= fd
.incref(false); err
!= nil {
24 err
= syscall
.Setsockopt(fd
.sysfd
, int32(syscall
.IPPROTO_IP
), int32(syscall
.IP_MULTICAST_IF
), (*byte)(unsafe
.Pointer(&a
[0])), 4)
26 return os
.NewSyscallError("setsockopt", err
)
31 func setIPv4MulticastLoopback(fd
*netFD
, v
bool) error
{
32 if err
:= fd
.incref(false); err
!= nil {
36 vv
:= int32(boolint(v
))
37 err
:= syscall
.Setsockopt(fd
.sysfd
, int32(syscall
.IPPROTO_IP
), int32(syscall
.IP_MULTICAST_LOOP
), (*byte)(unsafe
.Pointer(&vv
)), 4)
39 return os
.NewSyscallError("setsockopt", err
)