mirror of https://github.com/golang/go.git
net/http: send StatusOK on empty body with TimeoutHandler
Fixes #15948 Change-Id: Idd79859b3e98d61cd4e3ef9caa5d3b2524fd026a Reviewed-on: https://go-review.googlesource.com/23810 Reviewed-by: Ian Lance Taylor <iant@golang.org> Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
This commit is contained in:
parent
a71af25401
commit
3ba31558d1
|
|
@ -1996,6 +1996,26 @@ func TestTimeoutHandlerStartTimerWhenServing(t *testing.T) {
|
|||
}
|
||||
}
|
||||
|
||||
// https://golang.org/issue/15948
|
||||
func TestTimeoutHandlerEmptyResponse(t *testing.T) {
|
||||
defer afterTest(t)
|
||||
var handler HandlerFunc = func(w ResponseWriter, _ *Request) {
|
||||
// No response.
|
||||
}
|
||||
timeout := 300 * time.Millisecond
|
||||
ts := httptest.NewServer(TimeoutHandler(handler, timeout, ""))
|
||||
defer ts.Close()
|
||||
|
||||
res, err := Get(ts.URL)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
defer res.Body.Close()
|
||||
if res.StatusCode != StatusOK {
|
||||
t.Errorf("got res.StatusCode %d, want %v", res.StatusCode, StatusOK)
|
||||
}
|
||||
}
|
||||
|
||||
// Verifies we don't path.Clean() on the wrong parts in redirects.
|
||||
func TestRedirectMunging(t *testing.T) {
|
||||
req, _ := NewRequest("GET", "http://example.com/", nil)
|
||||
|
|
|
|||
|
|
@ -2464,6 +2464,9 @@ func (h *timeoutHandler) ServeHTTP(w ResponseWriter, r *Request) {
|
|||
for k, vv := range tw.h {
|
||||
dst[k] = vv
|
||||
}
|
||||
if !tw.wroteHeader {
|
||||
tw.code = StatusOK
|
||||
}
|
||||
w.WriteHeader(tw.code)
|
||||
w.Write(tw.wbuf.Bytes())
|
||||
if t != nil {
|
||||
|
|
|
|||
Loading…
Reference in New Issue