gtsocial-umbx

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

sys_bpf.go (611B)


      1 // Copyright 2017 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 //go:build linux
      6 // +build linux
      7 
      8 package ipv4
      9 
     10 import (
     11 	"unsafe"
     12 
     13 	"golang.org/x/net/bpf"
     14 	"golang.org/x/net/internal/socket"
     15 	"golang.org/x/sys/unix"
     16 )
     17 
     18 func (so *sockOpt) setAttachFilter(c *socket.Conn, f []bpf.RawInstruction) error {
     19 	prog := unix.SockFprog{
     20 		Len:    uint16(len(f)),
     21 		Filter: (*unix.SockFilter)(unsafe.Pointer(&f[0])),
     22 	}
     23 	b := (*[unix.SizeofSockFprog]byte)(unsafe.Pointer(&prog))[:unix.SizeofSockFprog]
     24 	return so.Set(c, b)
     25 }