瀏覽代碼

add SO_REUSEPORT for freebsd 11

lucifer9 5 年之前
父節點
當前提交
2bd5f2fe96
共有 1 個文件被更改,包括 4 次插入1 次删除
  1. 4 1
      transport/internet/sockopt_freebsd.go

+ 4 - 1
transport/internet/sockopt_freebsd.go

@@ -35,6 +35,7 @@ type pfiocNatlook struct {
 
 const (
 	sizeofPfiocNatlook = 0x4c
+	soReUsePort        = 0x00000200
 	soReUsePortLB      = 0x00010000
 )
 
@@ -192,7 +193,9 @@ func bindAddr(fd uintptr, ip []byte, port uint32) error {
 	}
 
 	if err := syscall.SetsockoptInt(int(fd), syscall.SOL_SOCKET, soReUsePortLB, 1); err != nil {
-		return newError("failed to set resuse_port").Base(err).AtWarning()
+		if err := syscall.SetsockoptInt(int(fd), syscall.SOL_SOCKET, soReUsePort, 1); err != nil {
+			return newError("failed to set resuse_port").Base(err).AtWarning()
+		}
 	}
 
 	var sockaddr syscall.Sockaddr