net: use C library resolver on FreeBSD, Linux, OS X / amd64, 386

This CL makes it possible to resolve DNS names on OS X
without offending the Application-Level Firewall.

It also means that cross-compiling from one operating
system to another is no longer possible when using
package net, because cgo needs to be able to sniff around
the local C libraries.  We could special-case this one use
and check in generated files, but it seems more trouble
than it's worth.  Cross compiling is dead anyway.

It is still possible to use either GOARCH=amd64 or GOARCH=386
on typical Linux and OS X x86 systems.

It is also still possible to build GOOS=linux GOARCH=arm on
any system, because arm is for now excluded from this change
(there is no cgo for arm yet).

R=iant, r, mikioh
CC=golang-dev
https://golang.org/cl/4437053
This commit is contained in:
Russ Cox 2011-04-20 15:21:59 -04:00
parent 64787e3123
commit c9164a5d77
14 changed files with 279 additions and 34 deletions

View file

@ -108,12 +108,10 @@ func doTest(t *testing.T, network, listenaddr, dialaddr string) {
}
func TestTCPServer(t *testing.T) {
doTest(t, "tcp", "0.0.0.0", "127.0.0.1")
doTest(t, "tcp", "", "127.0.0.1")
doTest(t, "tcp", "127.0.0.1", "127.0.0.1")
if kernelSupportsIPv6() {
doTest(t, "tcp", "[::]", "[::ffff:127.0.0.1]")
doTest(t, "tcp", "[::]", "127.0.0.1")
doTest(t, "tcp", "0.0.0.0", "[::ffff:127.0.0.1]")
doTest(t, "tcp", "[::1]", "[::1]")
doTest(t, "tcp", "127.0.0.1", "[::ffff:127.0.0.1]")
}
}