github.com/graybobo/golang.org-package-offline-cache@v0.0.0-20200626051047-6608995c132f/x/net/ipv6/sockopt_asmreq_unix.go (about) 1 // Copyright 2013 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. 4 5 // +build darwin dragonfly freebsd linux netbsd openbsd 6 7 package ipv6 8 9 import ( 10 "net" 11 "os" 12 "unsafe" 13 ) 14 15 func setsockoptIPMreq(fd int, opt *sockOpt, ifi *net.Interface, grp net.IP) error { 16 var mreq sysIPv6Mreq 17 copy(mreq.Multiaddr[:], grp) 18 if ifi != nil { 19 mreq.setIfindex(ifi.Index) 20 } 21 return os.NewSyscallError("setsockopt", setsockopt(fd, opt.level, opt.name, unsafe.Pointer(&mreq), sysSizeofIPv6Mreq)) 22 }