Honor header override in hostname verification

pull/268/head
zeeZ 2019-10-25 23:05:26 +02:00
parent 5469c01fff
commit 5bdc254bef
1 changed files with 4 additions and 1 deletions

View File

@ -286,12 +286,15 @@ func HttpRequest(url, method string, content interface{}, headers []string, body
if content != nil {
req.Header.Set("Content-Type", content.(string))
}
verifyHost := req.URL.Hostname()
for _, h := range headers {
keyVal := strings.Split(h, "=")
if len(keyVal) == 2 {
if keyVal[0] != "" && keyVal[1] != "" {
if strings.ToLower(keyVal[0]) == "host" {
req.Host = strings.TrimSpace(keyVal[1])
verifyHost = req.Host
} else {
req.Header.Set(keyVal[0], keyVal[1])
}
@ -308,7 +311,7 @@ func HttpRequest(url, method string, content interface{}, headers []string, body
transport := &http.Transport{
TLSClientConfig: &tls.Config{
InsecureSkipVerify: !verifySSL,
ServerName: req.URL.Hostname(),
ServerName: verifyHost,
},
DisableKeepAlives: true,
ResponseHeaderTimeout: timeout,