roreuse_linux.go 439 B

123456789101112131415161718192021
  1. package websocket
  2. import (
  3. "golang.org/x/sys/unix"
  4. "syscall"
  5. )
  6. func Control(network, addr string, c syscall.RawConn) (err error) {
  7. ret := c.Control(func(fd uintptr) {
  8. if err = unix.SetsockoptInt(int(fd), unix.SOL_SOCKET, unix.SO_REUSEADDR, 1); err != nil {
  9. panic(err)
  10. }
  11. if err = unix.SetsockoptInt(int(fd), unix.SOL_SOCKET, unix.SO_REUSEPORT, 1); err != nil {
  12. panic(err)
  13. }
  14. })
  15. if ret != nil {
  16. return ret
  17. }
  18. return
  19. }