Files
tun/control/mark_linux.go
Shiming Zhang b09240f34d First commit
2022-02-26 04:25:43 +08:00

22 lines
368 B
Go

package control
import (
"syscall"
"golang.org/x/sys/unix"
)
func ControlSocketMark(m int) ControlFunc {
return func(_, _ string, c syscall.RawConn) (err error) {
var innerErr error
err = c.Control(func(fd uintptr) {
innerErr = unix.SetsockoptInt(int(fd), unix.SOL_SOCKET, unix.SO_MARK, m)
})
if innerErr != nil {
err = innerErr
}
return
}
}