From e080eac204aa77c3cdc55d3b4cfa45c26bc8a635 Mon Sep 17 00:00:00 2001 From: Sergey Krashevich Date: Tue, 30 Apr 2024 01:49:01 +0300 Subject: [PATCH] refactor(mdns): consolidate platform-specific syscall files - Rename `syscall_linux.go` to `syscall.go` with build constraints for non-BSD and non-Windows platforms. - Merge `syscall_darwin.go` into `syscall_bsd.go` and adjust build constraints for BSD platforms (Darwin, FreeBSD, OpenBSD). - Remove redundant `syscall_freebsd.go`. - Add build constraints to `syscall_windows.go` for Windows platform. --- pkg/mdns/{syscall_linux.go => syscall.go} | 2 ++ .../{syscall_darwin.go => syscall_bsd.go} | 2 ++ pkg/mdns/syscall_freebsd.go | 24 ------------------- pkg/mdns/syscall_windows.go | 2 ++ 4 files changed, 6 insertions(+), 24 deletions(-) rename pkg/mdns/{syscall_linux.go => syscall.go} (78%) rename pkg/mdns/{syscall_darwin.go => syscall_bsd.go} (90%) delete mode 100644 pkg/mdns/syscall_freebsd.go diff --git a/pkg/mdns/syscall_linux.go b/pkg/mdns/syscall.go similarity index 78% rename from pkg/mdns/syscall_linux.go rename to pkg/mdns/syscall.go index fc0caeb0..0e50535a 100644 --- a/pkg/mdns/syscall_linux.go +++ b/pkg/mdns/syscall.go @@ -1,3 +1,5 @@ +//go:build !(darwin || ios || freebsd || openbsd || netbsd || dragonfly || windows) + package mdns import ( diff --git a/pkg/mdns/syscall_darwin.go b/pkg/mdns/syscall_bsd.go similarity index 90% rename from pkg/mdns/syscall_darwin.go rename to pkg/mdns/syscall_bsd.go index c1f1225b..6ebb0c93 100644 --- a/pkg/mdns/syscall_darwin.go +++ b/pkg/mdns/syscall_bsd.go @@ -1,3 +1,5 @@ +//go:build darwin || ios || freebsd || openbsd || netbsd || dragonfly + package mdns import ( diff --git a/pkg/mdns/syscall_freebsd.go b/pkg/mdns/syscall_freebsd.go deleted file mode 100644 index c1f1225b..00000000 --- a/pkg/mdns/syscall_freebsd.go +++ /dev/null @@ -1,24 +0,0 @@ -package mdns - -import ( - "syscall" -) - -func SetsockoptInt(fd uintptr, level, opt int, value int) (err error) { - // change SO_REUSEADDR and REUSEPORT flags simultaneously for BSD-like OS - // https://github.com/AlexxIT/go2rtc/issues/626 - // https://stackoverflow.com/questions/14388706/how-do-so-reuseaddr-and-so-reuseport-differ/14388707 - if opt == syscall.SO_REUSEADDR { - if err = syscall.SetsockoptInt(int(fd), level, opt, value); err != nil { - return - } - - opt = syscall.SO_REUSEPORT - } - - return syscall.SetsockoptInt(int(fd), level, opt, value) -} - -func SetsockoptIPMreq(fd uintptr, level, opt int, mreq *syscall.IPMreq) (err error) { - return syscall.SetsockoptIPMreq(int(fd), level, opt, mreq) -} diff --git a/pkg/mdns/syscall_windows.go b/pkg/mdns/syscall_windows.go index be283655..770510cf 100644 --- a/pkg/mdns/syscall_windows.go +++ b/pkg/mdns/syscall_windows.go @@ -1,3 +1,5 @@ +//go:build windows + package mdns import "syscall"