mirror of
https://github.com/golang/go.git
synced 2025-11-11 22:21:06 +00:00
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:
parent
deb6c5b920
commit
99f5f796d9
9 changed files with 213 additions and 18 deletions
|
|
@ -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
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue