summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--listen_unix.go2
-rw-r--r--listen_unix_setopt.go7
-rw-r--r--listen_unix_setopt_freebsd.go7
3 files changed, 15 insertions, 1 deletions
diff --git a/listen_unix.go b/listen_unix.go
index 50d9a66..7011a1e 100644
--- a/listen_unix.go
+++ b/listen_unix.go
@@ -119,7 +119,7 @@ func reusePort(network, address string, conn syscall.RawConn) error {
return nil
}
return conn.Control(func(descriptor uintptr) {
- if err := unix.SetsockoptInt(int(descriptor), unix.SOL_SOCKET, unix.SO_REUSEPORT, 1); err != nil {
+ if err := unix.SetsockoptInt(int(descriptor), unix.SOL_SOCKET, unixSOREUSEPORT, 1); err != nil {
Log().Error("setting SO_REUSEPORT",
zap.String("network", network),
zap.String("address", address),
diff --git a/listen_unix_setopt.go b/listen_unix_setopt.go
new file mode 100644
index 0000000..c9675f9
--- /dev/null
+++ b/listen_unix_setopt.go
@@ -0,0 +1,7 @@
+//go:build unix && !freebsd
+
+package caddy
+
+import "golang.org/x/sys/unix"
+
+const unixSOREUSEPORT = unix.SO_REUSEPORT
diff --git a/listen_unix_setopt_freebsd.go b/listen_unix_setopt_freebsd.go
new file mode 100644
index 0000000..0652054
--- /dev/null
+++ b/listen_unix_setopt_freebsd.go
@@ -0,0 +1,7 @@
+//go:build freebsd
+
+package caddy
+
+import "golang.org/x/sys/unix"
+
+const unixSOREUSEPORT = unix.SO_REUSEPORT_LB