]> Cypherpunks repositories - gostls13.git/commitdiff
net/http/httputil: don't use DisableKeepAlives in DumpRequestOut, fix build
authorBrad Fitzpatrick <bradfitz@golang.org>
Tue, 16 Dec 2014 06:47:55 +0000 (17:47 +1100)
committerBrad Fitzpatrick <bradfitz@golang.org>
Tue, 16 Dec 2014 06:58:43 +0000 (06:58 +0000)
I broke the build in https://golang.org/change/207950a when I made
http.Transport send "Connection: close" request headers when
DisableKeepAlives was set true because I didn't run all the tests
before submitting.

httputil.DumpRequestOut used Transport to get its output, and used it
with DisableKeepAlives, so this changed the output.

Rather than updating golden data in our tests (because surely others
depend on the exact bytes from these in their tests), switch to not
using DisableKeepAlives in DumpRequestOut instead, so the output is
the same as before.

Change-Id: I9fad190be8032e55872e6947802055a6d65244df
Reviewed-on: https://go-review.googlesource.com/1632
Reviewed-by: Andrew Gerrand <adg@golang.org>
src/net/http/httputil/dump.go

index ac8f103f9b98c3dacd60c382129882725303fcf1..ca2d1cde924224d9d19bf0d4419c298501f10de9 100644 (file)
@@ -98,6 +98,14 @@ func DumpRequestOut(req *http.Request, body bool) ([]byte, error) {
        defer pr.Close()
        defer pw.Close()
        dr := &delegateReader{c: make(chan io.Reader)}
+
+       t := &http.Transport{
+               Dial: func(net, addr string) (net.Conn, error) {
+                       return &dumpConn{io.MultiWriter(&buf, pw), dr}, nil
+               },
+       }
+       defer t.CloseIdleConnections()
+
        // Wait for the request before replying with a dummy response:
        go func() {
                req, err := http.ReadRequest(bufio.NewReader(pr))
@@ -107,16 +115,9 @@ func DumpRequestOut(req *http.Request, body bool) ([]byte, error) {
                        io.Copy(ioutil.Discard, req.Body)
                        req.Body.Close()
                }
-               dr.c <- strings.NewReader("HTTP/1.1 204 No Content\r\n\r\n")
+               dr.c <- strings.NewReader("HTTP/1.1 204 No Content\r\nConnection: close\r\n\r\n")
        }()
 
-       t := &http.Transport{
-               DisableKeepAlives: true,
-               Dial: func(net, addr string) (net.Conn, error) {
-                       return &dumpConn{io.MultiWriter(&buf, pw), dr}, nil
-               },
-       }
-
        _, err := t.RoundTrip(reqSend)
 
        req.Body = save