1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
|
// +build openbsd
package raw
import (
"syscall"
"unsafe"
)
// setBPFDirection enables filtering traffic traveling in a specific direction
// using BPF, so that traffic sent by this package is not captured when reading
// using this package.
func setBPFDirection(fd int, direction int) error {
var dirfilt uint
switch direction {
case 0:
// filter outbound
dirfilt = syscall.BPF_DIRECTION_OUT
default:
// no filter
}
_, _, err := syscall.Syscall(
syscall.SYS_IOCTL,
uintptr(fd),
syscall.BIOCSDIRFILT,
uintptr(unsafe.Pointer(&dirfilt)),
)
if err != 0 {
return syscall.Errno(err)
}
return nil
}
|