diff options
| author | Brad Fitzpatrick <bradfitz@golang.org> | 2019-04-24 14:59:18 +0000 |
|---|---|---|
| committer | Benny Siegert <bsiegert@gmail.com> | 2019-04-24 18:43:11 +0000 |
| commit | 13d0af4e704bee164f873701e326048bdaf23933 (patch) | |
| tree | b17ff70eae9526b1a8b8a6bdfda88e885057531f /src/net/http/httputil | |
| parent | 2417b0d0067b192e7cca05c00d9874617607fa81 (diff) | |
| download | go-13d0af4e704bee164f873701e326048bdaf23933.tar.xz | |
net/http: export Header.Clone, reduce its allocations, use it everywhere
Fixes #29915
Change-Id: I6e6edf4f9a0e062211f74d120ae1a242bce1b274
Reviewed-on: https://go-review.googlesource.com/c/go/+/173658
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Ingo Oeser <nightlyone@googlemail.com>
Reviewed-by: Benny Siegert <bsiegert@gmail.com>
Diffstat (limited to 'src/net/http/httputil')
| -rw-r--r-- | src/net/http/httputil/reverseproxy.go | 12 |
1 files changed, 1 insertions, 11 deletions
diff --git a/src/net/http/httputil/reverseproxy.go b/src/net/http/httputil/reverseproxy.go index 0e0731b08f..3c522b2af4 100644 --- a/src/net/http/httputil/reverseproxy.go +++ b/src/net/http/httputil/reverseproxy.go @@ -132,16 +132,6 @@ func copyHeader(dst, src http.Header) { } } -func cloneHeader(h http.Header) http.Header { - h2 := make(http.Header, len(h)) - for k, vv := range h { - vv2 := make([]string, len(vv)) - copy(vv2, vv) - h2[k] = vv2 - } - return h2 -} - // Hop-by-hop headers. These are removed when sent to the backend. // As of RFC 7230, hop-by-hop headers are required to appear in the // Connection header field. These are the headers defined by the @@ -211,7 +201,7 @@ func (p *ReverseProxy) ServeHTTP(rw http.ResponseWriter, req *http.Request) { outreq.Body = nil // Issue 16036: nil Body for http.Transport retries } - outreq.Header = cloneHeader(req.Header) + outreq.Header = req.Header.Clone() p.Director(outreq) outreq.Close = false |
