From c727b9981b525bcf6fa77d93418c5a0849d6c55a Mon Sep 17 00:00:00 2001 From: Tolyar Date: Tue, 28 Dec 2021 14:26:04 +0300 Subject: [PATCH] Release UseHostHeader in ReleaseRequest() (#1185) * Fix UseHostHeader for DoTimeout + tests * Release UseHostHeader in ReleaseRequest() + tests --- http.go | 1 + http_test.go | 14 ++++++++++++++ 2 files changed, 15 insertions(+) diff --git a/http.go b/http.go index c17b22f758..d61eb622be 100644 --- a/http.go +++ b/http.go @@ -960,6 +960,7 @@ func (req *Request) Reset() { req.Header.Reset() req.resetSkipHeader() req.timeout = 0 + req.UseHostHeader = false } func (req *Request) resetSkipHeader() { diff --git a/http_test.go b/http_test.go index 8183d41e6c..426b70a532 100644 --- a/http_test.go +++ b/http_test.go @@ -757,6 +757,7 @@ func TestUseHostHeader(t *testing.T) { } func TestUseHostHeader2(t *testing.T) { + t.Parallel() testServer := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { if r.Host != "SomeHost" { http.Error(w, fmt.Sprintf("Expected Host header to be '%s', but got '%s'", "SomeHost", r.Host), http.StatusBadRequest) @@ -791,6 +792,19 @@ func TestUseHostHeader2(t *testing.T) { } } +func TestUseHostHeaderAfterRelease(t *testing.T) { + t.Parallel() + req := AcquireRequest() + req.UseHostHeader = true + ReleaseRequest(req) + + req = AcquireRequest() + defer ReleaseRequest(req) + if req.UseHostHeader { + t.Fatalf("UseHostHeader was not released in ReleaseRequest()") + } +} + func TestRequestBodyStreamMultipleBodyCalls(t *testing.T) { t.Parallel()