vitess.io/vitess@v0.16.2/go/vt/vttablet/tabletserver/throttle/base/http.go (about) 1 /* 2 Copyright 2017 GitHub Inc. 3 4 Licensed under MIT License. See https://github.com/github/freno/blob/master/LICENSE 5 */ 6 7 package base 8 9 import ( 10 "crypto/tls" 11 "net" 12 "net/http" 13 "time" 14 ) 15 16 var defaultTimeout = time.Second 17 18 // SetupHTTPClient creates a simple HTTP client with timeout 19 func SetupHTTPClient(httpTimeout time.Duration) *http.Client { 20 if httpTimeout == 0 { 21 httpTimeout = defaultTimeout 22 } 23 httpTransport := &http.Transport{ 24 TLSClientConfig: &tls.Config{InsecureSkipVerify: false}, 25 DialContext: (&net.Dialer{ 26 Timeout: httpTimeout, 27 KeepAlive: httpTimeout, 28 DualStack: true, 29 }).DialContext, 30 ResponseHeaderTimeout: httpTimeout, 31 } 32 httpClient := &http.Client{Transport: httpTransport} 33 34 return httpClient 35 }