Files

25 lines
520 B
Go
Raw Permalink Normal View History

//go:build linux
// +build linux
package transport
import (
"net"
"syscall"
)
// bindToInterface returns a Control function that binds connections
// to the specified network interface using SO_BINDTODEVICE.
func bindToInterface(iface string) func(string, string, syscall.RawConn) error {
return func(network, address string, c syscall.RawConn) error {
var err error
c.Control(func(fd uintptr) {
err = syscall.BindToDevice(int(fd), iface)
})
return err
}
}
// Ensure net import is used
var _ net.Conn