net: allow LookupAddr to use getnameinfo when cgo is enabled

This change allows LookupAddr to use getnameinfo through cgo for working
together with various name services other than DNS.

Fixes #7855.

Change-Id: I5b3b4aefe3d1b904541c3350865734d8cbb1c1c4
Reviewed-on: https://go-review.googlesource.com/3420
Reviewed-by: Ian Lance Taylor <iant@golang.org>
This commit is contained in:
Mikio Hara 2015-01-28 20:08:41 +09:00
parent deb6c5b920
commit 99f5f796d9
9 changed files with 213 additions and 18 deletions

View file

@ -148,21 +148,9 @@ func lookupTXT(name string) ([]string, error) {
}
func lookupAddr(addr string) ([]string, error) {
names := lookupStaticAddr(addr)
if len(names) > 0 {
return names, nil
ptrs, err, ok := cgoLookupPTR(addr)
if !ok {
ptrs, err = goLookupPTR(addr)
}
arpa, err := reverseaddr(addr)
if err != nil {
return nil, err
}
_, rrs, err := lookup(arpa, dnsTypePTR)
if err != nil {
return nil, err
}
ptrs := make([]string, len(rrs))
for i, rr := range rrs {
ptrs[i] = rr.(*dnsRR_PTR).Ptr
}
return ptrs, nil
return ptrs, err
}