From bd37eda0764ab8ef4c652346095e0bb06800f8c3 Mon Sep 17 00:00:00 2001 From: Radek Simko Date: Mon, 28 Jan 2019 08:37:41 +0000 Subject: [PATCH] disco: Set transport early (during initialization) --- svchost/disco/disco.go | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) diff --git a/svchost/disco/disco.go b/svchost/disco/disco.go index 5de5b7174..1963cbd18 100644 --- a/svchost/disco/disco.go +++ b/svchost/disco/disco.go @@ -48,7 +48,6 @@ type Disco struct { credsSrc auth.CredentialsSource // Transport is a custom http.RoundTripper to use. - // A package default is used if this is nil. Transport http.RoundTripper } @@ -63,6 +62,7 @@ func NewWithCredentialsSource(credsSrc auth.CredentialsSource) *Disco { return &Disco{ hostCache: make(map[svchost.Hostname]*Host), credsSrc: credsSrc, + Transport: httpTransport, } } @@ -98,10 +98,7 @@ func (d *Disco) ForceHostServices(hostname svchost.Hostname, services map[string if services == nil { services = map[string]interface{}{} } - transport := d.Transport - if transport == nil { - transport = httpTransport - } + d.hostCache[hostname] = &Host{ discoURL: &url.URL{ Scheme: "https", @@ -110,7 +107,7 @@ func (d *Disco) ForceHostServices(hostname svchost.Hostname, services map[string }, hostname: hostname.ForDisplay(), services: services, - transport: transport, + transport: d.Transport, } } @@ -157,13 +154,8 @@ func (d *Disco) discover(hostname svchost.Hostname) (*Host, error) { Path: discoPath, } - transport := d.Transport - if transport == nil { - transport = httpTransport - } - client := &http.Client{ - Transport: transport, + Transport: d.Transport, Timeout: discoTimeout, CheckRedirect: func(req *http.Request, via []*http.Request) error { @@ -205,7 +197,7 @@ func (d *Disco) discover(hostname svchost.Hostname) (*Host, error) { // case the client followed any redirects. discoURL: resp.Request.URL, hostname: hostname.ForDisplay(), - transport: transport, + transport: d.Transport, } // Return the host without any services.