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 <crawshaw@golang.org>
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
// 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 {
},
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 {