diff options
author | Julien Salleyron <julien.salleyron@gmail.com> | 2019-01-02 16:29:49 +0000 |
---|---|---|
committer | Brad Fitzpatrick <bradfitz@golang.org> | 2019-01-02 17:00:30 +0000 |
commit | 2175177497b74a1be52cc98a892e4197973c4ea6 (patch) | |
tree | e0c2546d80650ee63081dab03f3d450629de6642 /src/net/http/httputil/reverseproxy.go | |
parent | 8962b71c4947cdc915ae6dd837e644e03d2e7435 (diff) | |
download | go-2175177497b74a1be52cc98a892e4197973c4ea6.tar.gz go-2175177497b74a1be52cc98a892e4197973c4ea6.zip |
net/http/httputil: fix missing previous headers in response when switching protocol in ReverseProxy
When using switching protocol, previous headers set before the reverse proxy are lost.
Fixes #29407
Change-Id: Ia2b9784022d9bccef8625519ccbabbe8a276dfc0
GitHub-Last-Rev: 79bb493dcbb9b76d9d2ff9cd0854b29d634f8b73
GitHub-Pull-Request: golang/go#29408
Reviewed-on: https://go-review.googlesource.com/c/155741
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Diffstat (limited to 'src/net/http/httputil/reverseproxy.go')
-rw-r--r-- | src/net/http/httputil/reverseproxy.go | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/net/http/httputil/reverseproxy.go b/src/net/http/httputil/reverseproxy.go index 5d07ba3d36..c13b99ff72 100644 --- a/src/net/http/httputil/reverseproxy.go +++ b/src/net/http/httputil/reverseproxy.go @@ -497,6 +497,9 @@ func (p *ReverseProxy) handleUpgradeResponse(rw http.ResponseWriter, req *http.R p.getErrorHandler()(rw, req, fmt.Errorf("backend tried to switch protocol %q when %q was requested", resUpType, reqUpType)) return } + + copyHeader(res.Header, rw.Header()) + hj, ok := rw.(http.Hijacker) if !ok { p.getErrorHandler()(rw, req, fmt.Errorf("can't switch protocols using non-Hijacker ResponseWriter type %T", rw)) |