Commit 823bb6c3 authored by Tatsuhiro Tsujikawa's avatar Tatsuhiro Tsujikawa

nghttpx: Require content-length in SPDY upstream if FIN flag is not set

parent 591f73e0
......@@ -161,6 +161,7 @@ void on_ctrl_recv_callback
const char *scheme = 0;
const char *host = 0;
const char *method = 0;
const char *content_length = 0;
for(size_t i = 0; nv[i]; i += 2) {
if(strcmp(nv[i], ":path") == 0) {
path = nv[i+1];
......@@ -172,6 +173,9 @@ void on_ctrl_recv_callback
} else if(strcmp(nv[i], ":host") == 0) {
host = nv[i+1];
} else if(nv[i][0] != ':') {
if(strcmp(nv[i], "content-length") == 0) {
content_length = nv[i+1];
}
downstream->add_request_header(nv[i], nv[i+1]);
}
}
......@@ -179,6 +183,12 @@ void on_ctrl_recv_callback
upstream->rst_stream(downstream, SPDYLAY_INTERNAL_ERROR);
return;
}
// Require content-length if FIN flag is not set.
if((frame->syn_stream.hd.flags & SPDYLAY_CTRL_FLAG_FIN) == 0 &&
!content_length) {
upstream->rst_stream(downstream, SPDYLAY_PROTOCOL_ERROR);
return;
}
// SpdyDownstreamConnection examines request path to find
// scheme. We construct abs URI for spdy_bridge mode as well as
// spdy_proxy mode.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment