From f7d7d7f103c512c4a838ae277ae5c337ad703985 Mon Sep 17 00:00:00 2001 From: Martin Polden Date: Sun, 6 Mar 2022 16:15:55 +0100 Subject: Restore custom User-Agent --- client/go/util/http.go | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) (limited to 'client') diff --git a/client/go/util/http.go b/client/go/util/http.go index 40b9a8fbe00..ffdd3d1599b 100644 --- a/client/go/util/http.go +++ b/client/go/util/http.go @@ -3,8 +3,11 @@ package util import ( "crypto/tls" + "fmt" "net/http" "time" + + "github.com/vespa-engine/vespa/client/go/build" ) type HTTPClient interface { @@ -12,23 +15,27 @@ type HTTPClient interface { UseCertificate(certificate []tls.Certificate) } -type defaultHttpClient struct { +type defaultHTTPClient struct { client *http.Client } -func (c *defaultHttpClient) Do(request *http.Request, timeout time.Duration) (response *http.Response, error error) { +func (c *defaultHTTPClient) Do(request *http.Request, timeout time.Duration) (response *http.Response, error error) { if c.client.Timeout != timeout { // Set wanted timeout c.client.Timeout = timeout } + if request.Header == nil { + request.Header = make(http.Header) + } + request.Header.Set("User-Agent", fmt.Sprintf("Vespa CLI/%s", build.Version)) return c.client.Do(request) } -func (c *defaultHttpClient) UseCertificate(certificates []tls.Certificate) { +func (c *defaultHTTPClient) UseCertificate(certificates []tls.Certificate) { c.client.Transport = &http.Transport{TLSClientConfig: &tls.Config{ Certificates: certificates, }} } func CreateClient(timeout time.Duration) HTTPClient { - return &defaultHttpClient{client: &http.Client{Timeout: timeout}} + return &defaultHTTPClient{client: &http.Client{Timeout: timeout}} } -- cgit v1.2.3