From 8b7117a63b4140a52744ccc60f32ddd13d9f5895 Mon Sep 17 00:00:00 2001 From: GoEdgeLab Date: Sun, 21 Apr 2024 15:13:45 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8DHTTP=20Client=E7=9B=B8?= =?UTF-8?q?=E5=85=B3=E6=B5=8B=E8=AF=95=E7=94=A8=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/nodes/http_client_pool.go | 2 +- internal/nodes/http_client_pool_test.go | 16 ++++++++++++---- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/internal/nodes/http_client_pool.go b/internal/nodes/http_client_pool.go index b64c7e9..4b19eca 100644 --- a/internal/nodes/http_client_pool.go +++ b/internal/nodes/http_client_pool.go @@ -59,7 +59,7 @@ func (this *HTTPClientPool) Client(req *HTTPRequest, return nil, errors.New("origin addr should not be empty (originId:" + strconv.FormatInt(origin.Id, 10) + ")") } - if req.RawReq.URL == nil { + if req == nil || req.RawReq == nil || req.RawReq.URL == nil { err = errors.New("invalid request url") return } diff --git a/internal/nodes/http_client_pool_test.go b/internal/nodes/http_client_pool_test.go index ebb7fbc..919dca5 100644 --- a/internal/nodes/http_client_pool_test.go +++ b/internal/nodes/http_client_pool_test.go @@ -4,6 +4,7 @@ import ( "context" "github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs" "github.com/TeaOSLab/EdgeNode/internal/utils/testutils" + "net/http" "runtime" "testing" "time" @@ -12,6 +13,13 @@ import ( func TestHTTPClientPool_Client(t *testing.T) { var pool = NewHTTPClientPool() + rawReq, err := http.NewRequest(http.MethodGet, "https://example.com/", nil) + if err != nil { + t.Fatal(err) + } + + var req = &HTTPRequest{RawReq: rawReq} + { var origin = &serverconfigs.OriginConfig{ Id: 1, @@ -23,14 +31,14 @@ func TestHTTPClientPool_Client(t *testing.T) { t.Fatal(err) } { - client, err := pool.Client(nil, origin, origin.Addr.PickAddress(), nil, false, "example.com") + client, err := pool.Client(req, origin, origin.Addr.PickAddress(), nil, false) if err != nil { t.Fatal(err) } t.Log("client:", client) } for i := 0; i < 10; i++ { - client, err := pool.Client(nil, origin, origin.Addr.PickAddress(), nil, false, "example.com") + client, err := pool.Client(req, origin, origin.Addr.PickAddress(), nil, false) if err != nil { t.Fatal(err) } @@ -54,7 +62,7 @@ func TestHTTPClientPool_cleanClients(t *testing.T) { for i := 0; i < 10; i++ { t.Log("get", i) - _, _ = pool.Client(nil, origin, origin.Addr.PickAddress(), nil, false, "example.com") + _, _ = pool.Client(nil, origin, origin.Addr.PickAddress(), nil, false) if testutils.IsSingleTesting() { time.Sleep(1 * time.Second) @@ -79,6 +87,6 @@ func BenchmarkHTTPClientPool_Client(b *testing.B) { var pool = NewHTTPClientPool() for i := 0; i < b.N; i++ { - _, _ = pool.Client(nil, origin, origin.Addr.PickAddress(), nil, false, "example.com") + _, _ = pool.Client(nil, origin, origin.Addr.PickAddress(), nil, false) } }