From: Miguel Ángel Jimeno Date: Tue, 23 Aug 2022 12:06:19 +0000 (+0200) Subject: net/http/httputil: do not duplicate 'Connection: close' headers X-Git-Tag: go1.20rc1~1444 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=44d057d5818e11982b679a83d54e9a4eac4f823f;p=gostls13.git net/http/httputil: do not duplicate 'Connection: close' headers Fixes #54616. Change-Id: I46f41bbccff7b49f26f60c1edf65acfd1701aed5 Reviewed-on: https://go-review.googlesource.com/c/go/+/425155 Reviewed-by: Damien Neil Reviewed-by: David Chase TryBot-Result: Gopher Robot Run-TryBot: Damien Neil --- diff --git a/src/net/http/httputil/dump.go b/src/net/http/httputil/dump.go index d7baecd9c1..6f5fa0d01d 100644 --- a/src/net/http/httputil/dump.go +++ b/src/net/http/httputil/dump.go @@ -258,9 +258,6 @@ func DumpRequest(req *http.Request, body bool) ([]byte, error) { if len(req.TransferEncoding) > 0 { fmt.Fprintf(&b, "Transfer-Encoding: %s\r\n", strings.Join(req.TransferEncoding, ",")) } - if req.Close { - fmt.Fprintf(&b, "Connection: close\r\n") - } err = req.Header.WriteSubset(&b, reqWriteExcludeHeaderDump) if err != nil { diff --git a/src/net/http/httputil/dump_test.go b/src/net/http/httputil/dump_test.go index 5df2ee8075..764750e2f7 100644 --- a/src/net/http/httputil/dump_test.go +++ b/src/net/http/httputil/dump_test.go @@ -236,6 +236,19 @@ var dumpTests = []dumpTest{ "Transfer-Encoding: chunked\r\n" + "Accept-Encoding: gzip\r\n\r\n", }, + + // Issue 54616: request with Connection header doesn't result in duplicate header. + { + GetReq: func() *http.Request { + return mustReadRequest("GET / HTTP/1.1\r\n" + + "Host: example.com\r\n" + + "Connection: close\r\n\r\n") + }, + NoBody: true, + WantDump: "GET / HTTP/1.1\r\n" + + "Host: example.com\r\n" + + "Connection: close\r\n\r\n", + }, } func TestDumpRequest(t *testing.T) {