diff --git a/client.go b/client.go index 7023e11..30864c0 100644 --- a/client.go +++ b/client.go @@ -187,6 +187,10 @@ func (d *Dialer) DialContext(ctx context.Context, urlStr string, requestHeader h return nil, nil, errMalformedURL } + host := requestHeader.Get("Host") + if host == "" { + host = u.Host + } req := &http.Request{ Method: http.MethodGet, URL: u, @@ -194,7 +198,7 @@ func (d *Dialer) DialContext(ctx context.Context, urlStr string, requestHeader h ProtoMajor: 1, ProtoMinor: 1, Header: make(http.Header), - Host: u.Host, + Host: host, } req = req.WithContext(ctx) @@ -340,7 +344,11 @@ func (d *Dialer) DialContext(ctx context.Context, urlStr string, requestHeader h cfg := cloneTLSConfig(d.TLSClientConfig) if cfg.ServerName == "" { - cfg.ServerName = hostNoPort + if host != "" { + cfg.ServerName = host + } else { + cfg.ServerName = hostNoPort + } } tlsConn := tls.Client(netConn, cfg) netConn = tlsConn