]> Cypherpunks repositories - gostls13.git/commit
net: add Resolver type, Dialer.Resolver, and DefaultResolver
authorBrad Fitzpatrick <bradfitz@golang.org>
Tue, 20 Sep 2016 19:45:37 +0000 (19:45 +0000)
committerBrad Fitzpatrick <bradfitz@golang.org>
Wed, 21 Sep 2016 18:35:40 +0000 (18:35 +0000)
commit2bc5f1258e049e1d59711046e5c865500eefa159
tree3311516d5c2543393d75ce8bb1dfb93ea742dc1e
parentea143c299040f8a270fb782c5efd3a3a5e6057a4
net: add Resolver type, Dialer.Resolver, and DefaultResolver

The new Resolver type (a struct) has 9 Lookup methods, all taking a
context.Context.

There's now a new DefaultResolver global, like http's
DefaultTransport and DefaultClient.

net.Dialer now has an optional Resolver field to set the Resolver.

This also does finishes some resolver cleanup internally, deleting
lookupIPMerge and renaming lookupIPContext into Resolver.LookupIPAddr.

The Resolver currently doesn't let you tweak much, but it's a struct
specifically so we can add knobs in the future. Currently I just added
a bool to force the pure Go resolver. In the future we could let
people provide an interface to implement the methods, or add a Timeout
time.Duration, which would wrap all provided contexts in a
context.WithTimeout.

Fixes #16672

Change-Id: I7ba1f886704f06def7b6b5c4da9809db51bc1495
Reviewed-on: https://go-review.googlesource.com/29440
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
src/net/dial.go
src/net/dnsclient_unix.go
src/net/iprawsock.go
src/net/ipsock.go
src/net/lookup.go
src/net/lookup_nacl.go
src/net/lookup_plan9.go
src/net/lookup_test.go
src/net/lookup_windows.go
src/net/tcpsock.go
src/net/udpsock.go