mirror of
https://github.com/AlexxIT/go2rtc.git
synced 2025-10-04 16:02:43 +08:00
25 lines
701 B
Go
25 lines
701 B
Go
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)
|
|
}
|