package  syscallimport  (	"unsafe" )func  LsfStmt code , k  int ) *SockFilter  {	return  &SockFilter {Code : uint16 (code ), K : uint32 (k )}}func  LsfJump code , k , jt , jf  int ) *SockFilter  {	return  &SockFilter {Code : uint16 (code ), Jt : uint8 (jt ), Jf : uint8 (jf ), K : uint32 (k )}}func  LsfSocket ifindex , proto  int ) (int , error ) {	var  lsall  SockaddrLinklayer 		s , e  := Socket (AF_PACKET , SOCK_RAW , proto )	if  e  != nil  {		return  0 , e 	}	p  := (*[2 ]byte )(unsafe .Pointer (&lsall .Protocol ))	p [0 ] = byte (proto  >> 8 )	p [1 ] = byte (proto )	lsall .Ifindex  = ifindex 	e  = Bind (s , &lsall )	if  e  != nil  {		Close (s )		return  0 , e 	}	return  s , nil }type  iflags  struct  {	name   [IFNAMSIZ ]byte 	flags  uint16 }func  SetLsfPromisc name  string , m  bool ) error  {	s , e  := Socket (AF_INET , SOCK_DGRAM |SOCK_CLOEXEC , 0 )	if  e  != nil  {		return  e 	}	defer  Close (s )	var  ifl  iflags 	copy (ifl .name [:], []byte (name ))	_ , _ , ep  := Syscall (SYS_IOCTL , uintptr (s ), SIOCGIFFLAGS , uintptr (unsafe .Pointer (&ifl )))	if  ep  != 0  {		return  Errno (ep )	}	if  m  {		ifl .flags  |= uint16 (IFF_PROMISC )	} else  {		ifl .flags  &^= uint16 (IFF_PROMISC )	}	_, _, ep  = Syscall (SYS_IOCTL , uintptr (s ), SIOCSIFFLAGS , uintptr (unsafe .Pointer (&ifl )))	if  ep  != 0  {		return  Errno (ep )	}	return  nil }func  AttachLsf fd  int , i  []SockFilter ) error  {	var  p  SockFprog 	p .Len  = uint16 (len (i ))	p .Filter  = (*SockFilter )(unsafe .Pointer (&i [0 ]))	return  setsockopt (fd , SOL_SOCKET , SO_ATTACH_FILTER , unsafe .Pointer (&p ), unsafe .Sizeof (p ))}func  DetachLsf fd  int ) error  {	var  dummy  int 	return  setsockopt (fd , SOL_SOCKET , SO_DETACH_FILTER , unsafe .Pointer (&dummy ), unsafe .Sizeof (dummy ))} The pages are generated with Golds v0.7.6 . (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 .