diff options
author | Josh Rickmar <jrick@companyzero.com> | 2021-03-26 13:17:36 +0000 |
---|---|---|
committer | Tobias Klauser <tobias.klauser@gmail.com> | 2021-04-12 21:26:59 +0000 |
commit | 5c9b6e8e63e012513b1cb1a4a08ff23dec4137a1 (patch) | |
tree | 3259e64a05fd3c5f0c7ac9579fe918ea01ced37a /src/net | |
parent | 3e8ba91275cdeb0af4c8b30f9cc788fd42cfbbd3 (diff) | |
download | go-5c9b6e8e63e012513b1cb1a4a08ff23dec4137a1.tar.gz go-5c9b6e8e63e012513b1cb1a4a08ff23dec4137a1.zip |
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: 7eb67189cd955fb12382a6f2a05f324d2747dcc3
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>
Diffstat (limited to 'src/net')
-rw-r--r-- | src/net/ipsock.go | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/net/ipsock.go b/src/net/ipsock.go index 7d0684d176..0f5da2577c 100644 --- a/src/net/ipsock.go +++ b/src/net/ipsock.go @@ -7,6 +7,7 @@ package net import ( "context" "internal/bytealg" + "runtime" "sync" ) @@ -44,6 +45,13 @@ func supportsIPv6() bool { // IPv4 address inside an IPv6 address at transport layer // protocols. See RFC 4291, RFC 4038 and RFC 3493. 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) return ipStackCaps.ipv4MappedIPv6Enabled } |