mirror of
https://github.com/golang/go
synced 2024-11-17 13:04:54 -07:00
net: never probe IPv4 map support on DragonFly BSD, OpenBSD
DragonFly BSD and OpenBSD do not implement mapping IPv4 addresses to
the IPv6 address space, and a runtime check can be avoided.
As the IP stack capabilities probe was only being called from
supportsIPv4map to check for this support, the OS-specific handling
can be added to this function rather than continuing to run the probe.
Change-Id: I5800c197b1be502a6efa79e3edd6356bde8637fb
GitHub-Last-Rev: 7eb67189cd
GitHub-Pull-Request: golang/go#45243
Reviewed-on: https://go-review.googlesource.com/c/go/+/304870
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Trust: Tobias Klauser <tobias.klauser@gmail.com>
This commit is contained in:
parent
3e8ba91275
commit
5c9b6e8e63
@ -7,6 +7,7 @@ package net
|
|||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"internal/bytealg"
|
"internal/bytealg"
|
||||||
|
"runtime"
|
||||||
"sync"
|
"sync"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -44,6 +45,13 @@ func supportsIPv6() bool {
|
|||||||
// IPv4 address inside an IPv6 address at transport layer
|
// IPv4 address inside an IPv6 address at transport layer
|
||||||
// protocols. See RFC 4291, RFC 4038 and RFC 3493.
|
// protocols. See RFC 4291, RFC 4038 and RFC 3493.
|
||||||
func supportsIPv4map() bool {
|
func supportsIPv4map() bool {
|
||||||
|
// Some operating systems provide no support for mapping IPv4
|
||||||
|
// addresses to IPv6, and a runtime check is unnecessary.
|
||||||
|
switch runtime.GOOS {
|
||||||
|
case "dragonfly", "openbsd":
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
ipStackCaps.Once.Do(ipStackCaps.probe)
|
ipStackCaps.Once.Do(ipStackCaps.probe)
|
||||||
return ipStackCaps.ipv4MappedIPv6Enabled
|
return ipStackCaps.ipv4MappedIPv6Enabled
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user