Merge branch 'nghttpx-fix-204-handling'
This commit is contained in:
commit
32ce0ce5d9
|
@ -1548,6 +1548,26 @@ func TestH2H1HTTPSRedirectPort(t *testing.T) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TestH2H1Code204 tests that 204 response without content-length, and
|
||||||
|
// transfer-encoding is valid.
|
||||||
|
func TestH2H1Code204(t *testing.T) {
|
||||||
|
st := newServerTester(nil, t, func(w http.ResponseWriter, r *http.Request) {
|
||||||
|
w.WriteHeader(http.StatusNoContent)
|
||||||
|
})
|
||||||
|
defer st.Close()
|
||||||
|
|
||||||
|
res, err := st.http2(requestParam{
|
||||||
|
name: "TestH2H1Code204",
|
||||||
|
})
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("Error st.http2() = %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if got, want := res.status, 204; got != want {
|
||||||
|
t.Errorf("status = %v; want %v", got, want)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// TestH2H1GracefulShutdown tests graceful shutdown.
|
// TestH2H1GracefulShutdown tests graceful shutdown.
|
||||||
func TestH2H1GracefulShutdown(t *testing.T) {
|
func TestH2H1GracefulShutdown(t *testing.T) {
|
||||||
st := newServerTester(nil, t, noopHandler)
|
st := newServerTester(nil, t, noopHandler)
|
||||||
|
@ -2159,6 +2179,26 @@ func TestH2H2DNS(t *testing.T) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TestH2H2Code204 tests that 204 response without content-length, and
|
||||||
|
// transfer-encoding is valid.
|
||||||
|
func TestH2H2Code204(t *testing.T) {
|
||||||
|
st := newServerTester([]string{"--http2-bridge"}, t, func(w http.ResponseWriter, r *http.Request) {
|
||||||
|
w.WriteHeader(http.StatusNoContent)
|
||||||
|
})
|
||||||
|
defer st.Close()
|
||||||
|
|
||||||
|
res, err := st.http2(requestParam{
|
||||||
|
name: "TestH2H2Code204",
|
||||||
|
})
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("Error st.http2() = %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if got, want := res.status, 204; got != want {
|
||||||
|
t.Errorf("status = %v; want %v", got, want)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// TestH2APIBackendconfig exercise backendconfig API endpoint routine
|
// TestH2APIBackendconfig exercise backendconfig API endpoint routine
|
||||||
// for successful case.
|
// for successful case.
|
||||||
func TestH2APIBackendconfig(t *testing.T) {
|
func TestH2APIBackendconfig(t *testing.T) {
|
||||||
|
|
|
@ -892,13 +892,12 @@ int htp_hdrs_completecb(http_parser *htp) {
|
||||||
if (resp.fs.parse_content_length() != 0) {
|
if (resp.fs.parse_content_length() != 0) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
if (resp.fs.content_length != 0) {
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
if (resp.fs.content_length == 0) {
|
if (resp.fs.content_length == 0) {
|
||||||
auto cl = resp.fs.header(http2::HD_CONTENT_LENGTH);
|
auto cl = resp.fs.header(http2::HD_CONTENT_LENGTH);
|
||||||
assert(cl);
|
assert(cl);
|
||||||
http2::erase_header(cl);
|
http2::erase_header(cl);
|
||||||
|
} else if (resp.fs.content_length != -1) {
|
||||||
|
return -1;
|
||||||
}
|
}
|
||||||
} else if (resp.http_status / 100 == 1 ||
|
} else if (resp.http_status / 100 == 1 ||
|
||||||
(resp.http_status == 200 && req.method == HTTP_CONNECT)) {
|
(resp.http_status == 200 && req.method == HTTP_CONNECT)) {
|
||||||
|
|
Loading…
Reference in New Issue