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  }