]> Cypherpunks repositories - gostls13.git/commitdiff
net/http/httputil: do not duplicate 'Connection: close' headers
authorMiguel Ángel Jimeno <miguelangel4b@gmail.com>
Tue, 23 Aug 2022 12:06:19 +0000 (14:06 +0200)
committerDavid Chase <drchase@google.com>
Tue, 23 Aug 2022 20:40:54 +0000 (20:40 +0000)
Fixes #54616.

Change-Id: I46f41bbccff7b49f26f60c1edf65acfd1701aed5
Reviewed-on: https://go-review.googlesource.com/c/go/+/425155
Reviewed-by: Damien Neil <dneil@google.com>
Reviewed-by: David Chase <drchase@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Run-TryBot: Damien Neil <dneil@google.com>

src/net/http/httputil/dump.go
src/net/http/httputil/dump_test.go

index d7baecd9c17b3d2d14a6faef879c045c774b11b4..6f5fa0d01d0d81f8dc74e0147d4f5bb8e50c2cb5 100644 (file)
@@ -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 {
index 5df2ee80752a5808f268cca695ab0807d39d8455..764750e2f7b42042ccb5482e5a5f8cb0b481a498 100644 (file)
@@ -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) {