| 1234567891011121314151617181920212223242526272829303132333435 |
- // +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
- }
|