mirror of
https://github.com/slackhq/nebula.git
synced 2026-11-15 11:56:52 +01:00
19 lines
610 B
Go
19 lines
610 B
Go
package udp
|
|
|
|
import (
|
|
"errors"
|
|
|
|
"golang.org/x/sys/windows"
|
|
)
|
|
|
|
// IsUnreachable reports whether a send failed because this host has no way to reach the destination from where it
|
|
// is now, rather than for something transient. Moving from a dual stack network to one without IPv6 turns every send
|
|
// to an IPv6 remote into one of these.
|
|
func IsUnreachable(err error) bool {
|
|
return errors.Is(err, windows.WSAENETUNREACH) ||
|
|
errors.Is(err, windows.WSAEHOSTUNREACH) ||
|
|
errors.Is(err, windows.WSAEADDRNOTAVAIL) ||
|
|
errors.Is(err, windows.WSAEAFNOSUPPORT) ||
|
|
errors.Is(err, ErrInvalidIPv6RemoteForSocket)
|
|
}
|