reject connection-specific headers (#173)

- When receiving, return a PROTOCOL_ERROR.
- When sending, return a user error about malformed headers.

Closes #36
This commit is contained in:
Sean McArthur
2017-11-14 11:16:29 -08:00
committed by GitHub
parent 05abb686cf
commit 79003d0d45
6 changed files with 114 additions and 2 deletions

View File

@@ -635,7 +635,12 @@ impl HeaderBlock {
// Connection level header fields are not supported and must
// result in a protocol error.
if name == header::CONNECTION {
if name == header::CONNECTION
|| name == header::TRANSFER_ENCODING
|| name == header::UPGRADE
|| name == "keep-alive"
|| name == "proxy-connection"
{
trace!("load_hpack; connection level header");
malformed = true;
} else if name == header::TE && value != "trailers" {