aboutsummaryrefslogtreecommitdiff
path: root/src/net
diff options
context:
space:
mode:
authorJosh Rickmar <jrick@companyzero.com>2021-03-26 13:17:36 +0000
committerTobias Klauser <tobias.klauser@gmail.com>2021-04-12 21:26:59 +0000
commit5c9b6e8e63e012513b1cb1a4a08ff23dec4137a1 (patch)
tree3259e64a05fd3c5f0c7ac9579fe918ea01ced37a /src/net
parent3e8ba91275cdeb0af4c8b30f9cc788fd42cfbbd3 (diff)
downloadgo-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.go8
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
}