add Transport field to Disco

For the same reason the disco tests need to override the http.Transport,
other test fixtures will need to as well. Provide a field to override
the default httpTransport.
This commit is contained in:
James Bardin 2017-10-25 10:47:36 -04:00
parent 1feb26f196
commit e7ecec6860
1 changed files with 11 additions and 1 deletions

View File

@ -39,6 +39,10 @@ var httpTransport = cleanhttp.DefaultPooledTransport() // overridden during test
type Disco struct { type Disco struct {
hostCache map[svchost.Hostname]Host hostCache map[svchost.Hostname]Host
credsSrc auth.CredentialsSource credsSrc auth.CredentialsSource
// Transport is a custom http.Transport to use.
// A package default is used if this is nil.
Transport *http.Transport
} }
func NewDisco() *Disco { func NewDisco() *Disco {
@ -92,8 +96,14 @@ func (d *Disco) discover(host svchost.Hostname) Host {
Host: string(host), Host: string(host),
Path: discoPath, Path: discoPath,
} }
t := d.Transport
if t == nil {
t = httpTransport
}
client := &http.Client{ client := &http.Client{
Transport: httpTransport, Transport: t,
Timeout: discoTimeout, Timeout: discoTimeout,
CheckRedirect: func(req *http.Request, via []*http.Request) error { CheckRedirect: func(req *http.Request, via []*http.Request) error {