From 7165c9b30e36959dcf8d0a038c803b4d2d8be445 Mon Sep 17 00:00:00 2001 From: Brad Fitzpatrick Date: Wed, 6 May 2015 09:32:11 -0700 Subject: [PATCH] net: always use cgo for DNS on Android Android has (had?) its own local DNS resolver daemon, also my fault: https://android.googlesource.com/platform/system/netd/+/007e987fee7e815e0c4bc820f434a632b7a69a9d And you access that via libc, not DNS. Fixes #10714 Change-Id: Iaff752872ce19bb5c7771ab048fd50e3f72cb73c Reviewed-on: https://go-review.googlesource.com/9793 Reviewed-by: David Crawshaw Run-TryBot: Brad Fitzpatrick --- src/net/conf.go | 2 +- src/net/conf_test.go | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/net/conf.go b/src/net/conf.go index 010131c4892b53..ca7fa8708fab6c 100644 --- a/src/net/conf.go +++ b/src/net/conf.go @@ -85,7 +85,7 @@ func initConfVal() { // hostLookupOrder determines which strategy to use to resolve hostname. func (c *conf) hostLookupOrder(hostname string) hostLookupOrder { - if c.forceCgoLookupHost || c.resolv.unknownOpt { + if c.forceCgoLookupHost || c.resolv.unknownOpt || c.goos == "android" { return hostLookupCgo } if byteIndex(hostname, '\\') != -1 || byteIndex(hostname, '%') != -1 { diff --git a/src/net/conf_test.go b/src/net/conf_test.go index 01de0de794dac9..003c615eb841a4 100644 --- a/src/net/conf_test.go +++ b/src/net/conf_test.go @@ -272,6 +272,18 @@ func TestConfHostLookupOrder(t *testing.T) { }, hostTests: []nssHostTest{{"google.com", hostLookupCgo}}, }, + // Android should always use cgo. + { + name: "android", + c: &conf{ + goos: "android", + nss: nssStr(""), + resolv: defaultResolvConf, + }, + hostTests: []nssHostTest{ + {"x.com", hostLookupCgo}, + }, + }, } for _, tt := range tests { for _, ht := range tt.hostTests {