package ipv4
import (
"net"
"unsafe"
"golang.org/x/net/internal/socket"
)
func (so *sockOpt ) setGroupReq (c *socket .Conn , ifi *net .Interface , grp net .IP ) error {
var gr groupReq
if ifi != nil {
gr .Interface = uint32 (ifi .Index )
}
gr .setGroup (grp )
var b []byte
if compatFreeBSD32 {
var d [sizeofGroupReq + 4 ]byte
s := (*[sizeofGroupReq ]byte )(unsafe .Pointer (&gr ))
copy (d [:4 ], s [:4 ])
copy (d [8 :], s [4 :])
b = d [:]
} else {
b = (*[sizeofGroupReq ]byte )(unsafe .Pointer (&gr ))[:sizeofGroupReq ]
}
return so .Set (c , b )
}
func (so *sockOpt ) setGroupSourceReq (c *socket .Conn , ifi *net .Interface , grp , src net .IP ) error {
var gsr groupSourceReq
if ifi != nil {
gsr .Interface = uint32 (ifi .Index )
}
gsr .setSourceGroup (grp , src )
var b []byte
if compatFreeBSD32 {
var d [sizeofGroupSourceReq + 4 ]byte
s := (*[sizeofGroupSourceReq ]byte )(unsafe .Pointer (&gsr ))
copy (d [:4 ], s [:4 ])
copy (d [8 :], s [4 :])
b = d [:]
} else {
b = (*[sizeofGroupSourceReq ]byte )(unsafe .Pointer (&gsr ))[:sizeofGroupSourceReq ]
}
return so .Set (c , b )
}
The pages are generated with Golds v0.8.2 . (GOOS=linux GOARCH=amd64)
Golds is a Go 101 project developed by Tapir Liu .
PR and bug reports are welcome and can be submitted to the issue list .
Please follow @zigo_101 (reachable from the left QR code) to get the latest news of Golds .