From b487e3da1507eab6b61cb1c7945b168f9498a427 Mon Sep 17 00:00:00 2001 From: M09Ic Date: Sun, 3 Mar 2024 01:59:56 +0800 Subject: [PATCH] fix standard client null proxy bug --- internal/ihttp/client.go | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/internal/ihttp/client.go b/internal/ihttp/client.go index 82355f9..974f95a 100644 --- a/internal/ihttp/client.go +++ b/internal/ihttp/client.go @@ -26,8 +26,9 @@ const ( ) func NewClient(config *ClientConfig) *Client { + var client *Client if config.Type == FAST { - return &Client{ + client = &Client{ fastClient: &fasthttp.Client{ TLSConfig: &tls.Config{ Renegotiation: tls.RenegotiateOnceAsClient, @@ -48,7 +49,7 @@ func NewClient(config *ClientConfig) *Client { Config: config, } } else { - return &Client{ + client = &Client{ standardClient: &http.Client{ Transport: &http.Transport{ //Proxy: Proxy, @@ -60,9 +61,6 @@ func NewClient(config *ClientConfig) *Client { MaxConnsPerHost: config.Thread * 3 / 2, IdleConnTimeout: config.Timeout, ReadBufferSize: 16384, // 16k - Proxy: func(_ *http.Request) (*url.URL, error) { - return url.Parse(config.ProxyAddr) - }, }, Timeout: config.Timeout, CheckRedirect: func(req *http.Request, via []*http.Request) error { @@ -71,7 +69,13 @@ func NewClient(config *ClientConfig) *Client { }, Config: config, } + if config.ProxyAddr != "" { + client.standardClient.Transport.(*http.Transport).Proxy = func(_ *http.Request) (*url.URL, error) { + return url.Parse(config.ProxyAddr) + } + } } + return client } type ClientConfig struct {