From c60cffbfa3be31b610f83fb7f4358c8463cedb09 Mon Sep 17 00:00:00 2001 From: wanyaoqi Date: Sun, 24 Feb 2019 12:35:19 +0800 Subject: [PATCH] set http connect timeout --- pkg/mcclient/mcclient.go | 15 ++++++++++++--- pkg/util/httputils/httputils.go | 9 +++++++-- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/pkg/mcclient/mcclient.go b/pkg/mcclient/mcclient.go index eeec2ccb1a..cc8fdc4e87 100644 --- a/pkg/mcclient/mcclient.go +++ b/pkg/mcclient/mcclient.go @@ -5,8 +5,10 @@ import ( "crypto/tls" "fmt" "io" + "net" "net/http" "strings" + "time" "yunion.io/x/jsonutils" "yunion.io/x/log" @@ -42,12 +44,19 @@ func NewClient(authUrl string, timeout int, debug bool, insecure bool, certFile, tr := &http.Transport{ TLSClientConfig: tlsConf, + DialContext: (&net.Dialer{ + Timeout: 5 * time.Second, + }).DialContext, + TLSHandshakeTimeout: 10 * time.Second, } client := Client{authUrl: authUrl, - timeout: timeout, - debug: debug, - httpconn: &http.Client{Transport: tr}} + timeout: timeout, + debug: debug, + httpconn: &http.Client{ + Transport: tr, + }, + } return &client } diff --git a/pkg/util/httputils/httputils.go b/pkg/util/httputils/httputils.go index 7529abaadc..8e62b50116 100644 --- a/pkg/util/httputils/httputils.go +++ b/pkg/util/httputils/httputils.go @@ -6,6 +6,7 @@ import ( "fmt" "io" "io/ioutil" + "net" "net/http" "net/url" "os" @@ -102,7 +103,11 @@ func GetAddrPort(urlStr string) (string, int, error) { func GetClient(insecure bool) *http.Client { tr := &http.Transport{ - TLSClientConfig: &tls.Config{InsecureSkipVerify: insecure}, + DialContext: (&net.Dialer{ + Timeout: 5 * time.Second, + }).DialContext, + TLSHandshakeTimeout: 10 * time.Second, + TLSClientConfig: &tls.Config{InsecureSkipVerify: insecure}, } return &http.Client{Transport: tr} } @@ -116,7 +121,7 @@ func GetTimeoutClient(timeout time.Duration) *http.Client { var defaultHttpClient *http.Client func init() { - defaultHttpClient = GetTimeoutClient(time.Second * 10) + defaultHttpClient = GetClient(true) } func GetDefaultClient() *http.Client {