aboutsummaryrefslogtreecommitdiff
path: root/src/net/http/httputil/reverseproxy.go
diff options
context:
space:
mode:
authorJulien Salleyron <julien.salleyron@gmail.com>2019-01-02 16:29:49 +0000
committerBrad Fitzpatrick <bradfitz@golang.org>2019-01-02 17:00:30 +0000
commit2175177497b74a1be52cc98a892e4197973c4ea6 (patch)
treee0c2546d80650ee63081dab03f3d450629de6642 /src/net/http/httputil/reverseproxy.go
parent8962b71c4947cdc915ae6dd837e644e03d2e7435 (diff)
downloadgo-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.go3
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))