]> Cypherpunks repositories - gostls13.git/commitdiff
net: fix lookupHost to return DNSError on Plan 9
authorDavid du Colombier <0intro@gmail.com>
Thu, 25 Apr 2019 07:01:11 +0000 (09:01 +0200)
committerDavid du Colombier <0intro@gmail.com>
Thu, 25 Apr 2019 14:25:10 +0000 (14:25 +0000)
CL 168597 added IsNotFound field to DNSError.
However, this change broke TestLookupNonLDH on Plan 9
because LookupHost is expected to return a DNSError,
while on Plan 9, it returned an error string.

This change fixes the implementation of lookupHost on
Plan 9 to return a DNSError instead of an error string.

Fixes #31672.

Change-Id: Ia805c8965af63ddee7ccfdebb9462a5502b0269d
Reviewed-on: https://go-review.googlesource.com/c/go/+/173857
Run-TryBot: David du Colombier <0intro@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
src/net/lookup_plan9.go

index 70805ddf4cd05a2db388532ea2022b86fce3318c..6a2d48eedace46d23e2a40c4f10ab38466a39900 100644 (file)
@@ -147,10 +147,12 @@ func (*Resolver) lookupHost(ctx context.Context, host string) (addrs []string, e
        // host names in local network (e.g. from /lib/ndb/local)
        lines, err := queryCS(ctx, "net", host, "1")
        if err != nil {
+               dnsError := &DNSError{Err: err.Error(), Name: host}
                if stringsHasSuffix(err.Error(), "dns failure") {
-                       err = errNoSuchHost
+                       dnsError.Err = errNoSuchHost.Error()
+                       dnsError.IsNotFound = true
                }
-               return
+               return nil, dnsError
        }
 loop:
        for _, line := range lines {