]> Cypherpunks repositories - gostls13.git/commit
net: Make Listen(":port") use IPv6 when IPv4 is not supported.
authorPaul Marks <pmarks@google.com>
Sat, 5 Sep 2015 01:33:35 +0000 (18:33 -0700)
committerPaul Marks <pmarks@google.com>
Sat, 5 Sep 2015 02:31:22 +0000 (02:31 +0000)
commit5a3ff6c8955a5df81f6dd83e143a47bd51266b61
tree6d429d94c6b84dcd067c06e006c1d0150ee0ae25
parent703bd8362350a0c1742d6eb9017ebbf13fcbbbdd
net: Make Listen(":port") use IPv6 when IPv4 is not supported.

When running an experimental kernel with IPv4 disabled, Listen(":port")
currently tries to create an AF_INET socket, and fails.  Instead, it
should see !supportsIPv4, and use an AF_INET6 socket.

This sort of environment is quite esoteric at the moment, but I can
force the tests to fail on regular Linux using the following tweaks:

- net/net.go: supportsIPv4, supportsIPv6, supportsIPv4map = false, true, false
- net/sockopt_linux.go: ipv6only=true
- net/ipsock_posix.go: Revert this fix
- ./make.bash && ../bin/go test net

Also, make the arrows in server_test.go point to the left, because
server<-client is easier to read.

Fixes #12510

Change-Id: I0cc3b6b08d5e6908d2fbf8594f652ba19815aa4b
Reviewed-on: https://go-review.googlesource.com/14334
Run-TryBot: Paul Marks <pmarks@google.com>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
src/net/ipsock_posix.go
src/net/platform_test.go
src/net/server_test.go