diff --git a/gitmediaclient/client.go b/gitmediaclient/client.go index 5c2a97ad..832ca406 100644 --- a/gitmediaclient/client.go +++ b/gitmediaclient/client.go @@ -1,6 +1,7 @@ package gitmediaclient import ( + "crypto/tls" "encoding/base64" "encoding/json" "errors" @@ -150,8 +151,25 @@ func validateMediaHeader(contentType string, reader io.Reader) (bool, *gitmedia. return true, nil } +var httpClient *http.Client + +func getHttpClient() *http.Client { + if httpClient == nil { + if len(os.Getenv("GIT_SSL_NO_VERIFY")) > 0 { + tr := &http.Transport{ + TLSClientConfig: &tls.Config{InsecureSkipVerify: true}, + } + httpClient = &http.Client{Transport: tr} + } else { + httpClient = http.DefaultClient + } + } + + return httpClient +} + func doRequest(req *http.Request, creds Creds) (*http.Response, *gitmedia.WrappedError) { - res, err := http.DefaultClient.Do(req) + res, err := getHttpClient().Do(req) var wErr *gitmedia.WrappedError