]> Cypherpunks repositories - gostls13.git/commitdiff
net: fix LookupCNAME on Plan 9
authorDavid du Colombier <0intro@gmail.com>
Tue, 20 Dec 2016 21:33:06 +0000 (22:33 +0100)
committerDavid du Colombier <0intro@gmail.com>
Tue, 20 Dec 2016 23:25:43 +0000 (23:25 +0000)
In CL 34650, LookupCNAME was changed so it always returns
the canonical DNS host, even when there is no CNAME record.

Consequently, TestLookupCNAME was failing on Plan 9,
because www.google.com doesn't have a CNAME record.

We changed the implementation of lookupCNAME on Plan 9, so it
returns the canonical DNS host after a CNAME lookup failure.

Fixes #18391.

Change-Id: I59f361bfb2c9de3953e998e8ac58c054979210bd
Reviewed-on: https://go-review.googlesource.com/34633
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Run-TryBot: David du Colombier <0intro@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>

src/net/lookup_plan9.go

index 11f2349afe6663bc2dd070810e11ec87aa5fc06a..f81e220fc8ce65ff4b262734c96f8cdfd4f3db43 100644 (file)
@@ -198,6 +198,10 @@ func (*Resolver) lookupPort(ctx context.Context, network, service string) (port
 func (*Resolver) lookupCNAME(ctx context.Context, name string) (cname string, err error) {
        lines, err := queryDNS(ctx, name, "cname")
        if err != nil {
+               if stringsHasSuffix(err.Error(), "dns failure") {
+                       cname = name + "."
+                       err = nil
+               }
                return
        }
        if len(lines) > 0 {