//go:build !windows && !wasm package torrent import ( "syscall" "golang.org/x/sys/unix" ) func setReusePortSockOpts(fd uintptr) (err error) { // I would use libp2p/go-reuseport to do this here, but no surprise it's // implemented incorrectly. // Looks like we can get away with just REUSEPORT at least on Darwin, and probably by // extension BSDs and Linux. if false { err = syscall.SetsockoptInt(int(fd), syscall.SOL_SOCKET, syscall.SO_REUSEADDR, 1) if err != nil { return } } err = syscall.SetsockoptInt(int(fd), syscall.SOL_SOCKET, unix.SO_REUSEPORT, 1) return } func setSockNoLinger(fd uintptr) (err error) { return syscall.SetsockoptLinger(int(fd), syscall.SOL_SOCKET, syscall.SO_LINGER, &lingerOffVal) }