github.com/nilium/gitlab-runner@v12.5.0+incompatible/commands/helpers/cache_client.go (about) 1 package helpers 2 3 import ( 4 "net" 5 "net/http" 6 "time" 7 8 "gitlab.com/gitlab-org/gitlab-runner/common" 9 ) 10 11 type CacheClient struct { 12 http.Client 13 } 14 15 func (c *CacheClient) prepareClient(timeout int) { 16 if timeout > 0 { 17 c.Timeout = time.Duration(timeout) * time.Minute 18 } else { 19 c.Timeout = time.Duration(common.DefaultCacheRequestTimeout) * time.Minute 20 } 21 } 22 23 func (c *CacheClient) prepareTransport() { 24 c.Transport = &http.Transport{ 25 Proxy: http.ProxyFromEnvironment, 26 DialContext: (&net.Dialer{ 27 Timeout: 30 * time.Second, 28 KeepAlive: 30 * time.Second, 29 }).DialContext, 30 IdleConnTimeout: 90 * time.Second, 31 TLSHandshakeTimeout: 10 * time.Second, 32 ExpectContinueTimeout: 10 * time.Second, 33 ResponseHeaderTimeout: 30 * time.Second, 34 } 35 } 36 37 func NewCacheClient(timeout int) *CacheClient { 38 client := &CacheClient{} 39 client.prepareClient(timeout) 40 client.prepareTransport() 41 42 return client 43 }