aboutsummaryrefslogtreecommitdiff
path: root/src/net
diff options
context:
space:
mode:
Diffstat (limited to 'src/net')
-rw-r--r--src/net/cgo_stub.go2
-rw-r--r--src/net/cgo_unix.go8
-rw-r--r--src/net/cgo_unix_test.go10
-rw-r--r--src/net/lookup_unix.go4
4 files changed, 17 insertions, 7 deletions
diff --git a/src/net/cgo_stub.go b/src/net/cgo_stub.go
index a4f6b4b0e8..640f5a4fd6 100644
--- a/src/net/cgo_stub.go
+++ b/src/net/cgo_stub.go
@@ -31,7 +31,7 @@ func cgoLookupIP(ctx context.Context, network, name string) (addrs []IPAddr, err
panic("cgo stub: cgo not available")
}
-func cgoLookupCNAME(ctx context.Context, name string) (cname string, err error, completed bool) {
+func cgoLookupCNAME(ctx context.Context, name string) (cname string, err error) {
panic("cgo stub: cgo not available")
}
diff --git a/src/net/cgo_unix.go b/src/net/cgo_unix.go
index 1e170dbc0a..51efee6f87 100644
--- a/src/net/cgo_unix.go
+++ b/src/net/cgo_unix.go
@@ -297,16 +297,16 @@ func cgoSockaddr(ip IP, zone string) (*_C_struct_sockaddr, _C_socklen_t) {
return nil, 0
}
-func cgoLookupCNAME(ctx context.Context, name string) (cname string, err error, completed bool) {
+func cgoLookupCNAME(ctx context.Context, name string) (cname string, err error) {
resources, err := resSearch(ctx, name, int(dnsmessage.TypeCNAME), int(dnsmessage.ClassINET))
if err != nil {
- return
+ return "", err
}
cname, err = parseCNAMEFromResources(resources)
if err != nil {
- return "", err, false
+ return "", err
}
- return cname, nil, true
+ return cname, nil
}
// resSearch will make a call to the 'res_nsearch' routine in the C library
diff --git a/src/net/cgo_unix_test.go b/src/net/cgo_unix_test.go
index d8233dfaf2..9aaeccc5f0 100644
--- a/src/net/cgo_unix_test.go
+++ b/src/net/cgo_unix_test.go
@@ -8,6 +8,7 @@ package net
import (
"context"
+ "internal/testenv"
"testing"
)
@@ -67,3 +68,12 @@ func TestCgoLookupPTRWithCancel(t *testing.T) {
t.Error(err)
}
}
+
+func TestCgoLookupCNAME(t *testing.T) {
+ mustHaveExternalNetwork(t)
+ testenv.SkipFlakyNet(t)
+ defer dnsWaitGroup.Wait()
+ if _, err := cgoLookupCNAME(t.Context(), "www.iana.org."); err != nil {
+ t.Error(err)
+ }
+}
diff --git a/src/net/lookup_unix.go b/src/net/lookup_unix.go
index 7416cb01f8..86108939cd 100644
--- a/src/net/lookup_unix.go
+++ b/src/net/lookup_unix.go
@@ -87,8 +87,8 @@ func (r *Resolver) lookupPort(ctx context.Context, network, service string) (int
func (r *Resolver) lookupCNAME(ctx context.Context, name string) (string, error) {
order, conf := systemConf().hostLookupOrder(r, name)
if order == hostLookupCgo {
- if cname, err, ok := cgoLookupCNAME(ctx, name); ok {
- return cname, err
+ if cname, err := cgoLookupCNAME(ctx, name); err == nil {
+ return cname, nil
}
}
return r.goLookupCNAME(ctx, name, order, conf)