mirror of
https://github.com/J3vb/OwnCord.git
synced 2026-09-03 03:50:00 +03:00
22 lines
729 B
Go
22 lines
729 B
Go
//go:build windows
|
|||
|
|
|
||
|
|
package main
|
||
|
|
|
||
|
|
import (
|
||
|
|
"errors"
|
||
|
|
"syscall"
|
||
|
|
)
|
||
|
|
|
||
|
|
// wsaeAddrInUse is WSAEADDRINUSE (10048), the errno a Windows bind conflict
|
||
|
|
// actually carries. The standard syscall package does not export it (it
|
||
|
|
// lives in golang.org/x/sys/windows, which this module does not depend on
|
||
|
|
// directly), and syscall.EADDRINUSE on Windows is Go's distinct
|
||
|
|
// APPLICATION_ERROR-block value that errors.Is does not map to WSA codes.
|
||
|
|
const wsaeAddrInUse = syscall.Errno(10048)
|
||
|
|
|
||
|
|
// errnoIsAddrInUse unwraps err (net.OpError → os.SyscallError → Errno) and
|
||
|
|
// compares against both Windows bind-conflict errnos.
|
||
|
|
func errnoIsAddrInUse(err error) bool {
|
||
|
|
return errors.Is(err, wsaeAddrInUse) || errors.Is(err, syscall.EADDRINUSE)
|
||
|
|
}
|