nghttpd: RST_STREAM if te header field contains value other than trailers

This commit is contained in:
Tatsuhiro Tsujikawa 2015-01-25 22:48:35 +09:00
parent 0b48448270
commit b99b83812b
1 changed files with 10 additions and 1 deletions

View File

@ -1046,11 +1046,20 @@ int on_header_callback(nghttp2_session *session, const nghttp2_frame *frame,
return NGHTTP2_ERR_TEMPORAL_CALLBACK_FAILURE;
}
if (token == http2::HD_CONTENT_LENGTH) {
switch (token) {
case http2::HD_CONTENT_LENGTH: {
auto upload_left = util::parse_uint(value, valuelen);
if (upload_left != -1) {
stream->upload_left = upload_left;
}
break;
}
case http2::HD_TE:
if (!util::strieq("trailers", value, valuelen)) {
hd->submit_rst_stream(stream, NGHTTP2_PROTOCOL_ERROR);
return NGHTTP2_ERR_TEMPORAL_CALLBACK_FAILURE;
}
break;
}
http2::index_header(stream->hdidx, token, stream->headers.size());