diff options
author | Ian Lance Taylor <iant@golang.org> | 2017-06-16 11:48:09 -0700 |
---|---|---|
committer | Ian Lance Taylor <iant@golang.org> | 2017-06-16 20:23:42 +0000 |
commit | ec7c6c16e14a46d907c7dc95662093f0ed846143 (patch) | |
tree | 61143257d268d26e4eba8964d2390585887fdbaa /src/net/lookup.go | |
parent | 5ee4858a4c03148056bb7751e5ed21455b3eaf10 (diff) | |
download | go-ec7c6c16e14a46d907c7dc95662093f0ed846143.tar.gz go-ec7c6c16e14a46d907c7dc95662093f0ed846143.zip |
net: don't forget about ongoing DNS lookup if context canceled
Only forget about it if the context timed out, as the comment says.
Fixes #20703.
Change-Id: Ie6234f1a32f85e6bfd052dc24a33aa63b8883c37
Reviewed-on: https://go-review.googlesource.com/45999
Run-TryBot: Ian Lance Taylor <iant@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Diffstat (limited to 'src/net/lookup.go')
-rw-r--r-- | src/net/lookup.go | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/net/lookup.go b/src/net/lookup.go index abc56de533..4490784236 100644 --- a/src/net/lookup.go +++ b/src/net/lookup.go @@ -185,12 +185,15 @@ func (r *Resolver) LookupIPAddr(ctx context.Context, host string) ([]IPAddr, err select { case <-ctx.Done(): - // The DNS lookup timed out for some reason. Force + // If the DNS lookup timed out for some reason, force // future requests to start the DNS lookup again // rather than waiting for the current lookup to // complete. See issue 8602. - err := mapErr(ctx.Err()) - lookupGroup.Forget(host) + ctxErr := ctx.Err() + if ctxErr == context.DeadlineExceeded { + lookupGroup.Forget(host) + } + err := mapErr(ctxErr) if trace != nil && trace.DNSDone != nil { trace.DNSDone(nil, false, err) } |