Files

22 lines
729 B
Go
Raw Permalink Normal View History

//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)
}