aboutsummaryrefslogtreecommitdiff
path: root/src/net/http/httputil/reverseproxy.go
diff options
context:
space:
mode:
authorBrad Fitzpatrick <bradfitz@golang.org>2018-01-05 21:35:51 +0000
committerBrad Fitzpatrick <bradfitz@golang.org>2018-01-06 01:14:49 +0000
commit24df1d06bc1544f096c484b30d50914f9d1d7c81 (patch)
tree443799feecfe29ae75228d462ac6c4479f411094 /src/net/http/httputil/reverseproxy.go
parent91f99852f638c249007a5a80277f75aa7cc9e0e8 (diff)
downloadgo-24df1d06bc1544f096c484b30d50914f9d1d7c81.tar.gz
go-24df1d06bc1544f096c484b30d50914f9d1d7c81.zip
Revert "net/http/httputil: allow ReverseProxy to call ModifyResponse on failed requests"
This reverts commit https://golang.org/cl/54030 Reason for revert: to not paint ourselves into a corner. See https://github.com/golang/go/issues/23009 Fixes #23009 Updates #21255 Change-Id: I68caab078839b9d2bf645a7bbed8405a5a30cd22 Reviewed-on: https://go-review.googlesource.com/86435 Reviewed-by: Ian Lance Taylor <iant@golang.org>
Diffstat (limited to 'src/net/http/httputil/reverseproxy.go')
-rw-r--r--src/net/http/httputil/reverseproxy.go21
1 files changed, 8 insertions, 13 deletions
diff --git a/src/net/http/httputil/reverseproxy.go b/src/net/http/httputil/reverseproxy.go
index aa22d5a2fd..b96bb21019 100644
--- a/src/net/http/httputil/reverseproxy.go
+++ b/src/net/http/httputil/reverseproxy.go
@@ -191,11 +191,10 @@ func (p *ReverseProxy) ServeHTTP(rw http.ResponseWriter, req *http.Request) {
}
res, err := transport.RoundTrip(outreq)
- if res == nil {
- res = &http.Response{
- StatusCode: http.StatusBadGateway,
- Body: http.NoBody,
- }
+ if err != nil {
+ p.logf("http: proxy error: %v", err)
+ rw.WriteHeader(http.StatusBadGateway)
+ return
}
removeConnectionHeaders(res.Header)
@@ -205,16 +204,12 @@ func (p *ReverseProxy) ServeHTTP(rw http.ResponseWriter, req *http.Request) {
}
if p.ModifyResponse != nil {
- if err != nil {
+ if err := p.ModifyResponse(res); err != nil {
p.logf("http: proxy error: %v", err)
+ rw.WriteHeader(http.StatusBadGateway)
+ res.Body.Close()
+ return
}
- err = p.ModifyResponse(res)
- }
- if err != nil {
- p.logf("http: proxy error: %v", err)
- rw.WriteHeader(http.StatusBadGateway)
- res.Body.Close()
- return
}
copyHeader(rw.Header(), res.Header)