basic_parser: apply header_limit_ to trailer headers

This commit is contained in:
Mohammad Nejati
2024-08-20 07:18:55 +00:00
committed by Mohammad Nejati
parent f181fbf6e4
commit a620d4175a
6 changed files with 86 additions and 138 deletions

View File

@@ -859,6 +859,26 @@ public:
BEAST_EXPECT(! p.is_done());
BEAST_EXPECTS(ec == error::header_limit, ec.message());
}
{
multi_buffer b;
ostream(b) <<
"POST / HTTP/1.1\r\n"
"Transfer-Encoding: chunked\r\n"
"\r\n"
"0\r\n";
error_code ec;
test_parser<true> p;
p.header_limit(47);
p.eager(true);
b.consume(p.put(b.data(), ec));
BEAST_EXPECTS(ec == error::need_more, ec.message());
ostream(b) <<
"field: value\r\n"
"\r\n";
b.consume(p.put(b.data(), ec));
BEAST_EXPECT(! p.is_done());
BEAST_EXPECTS(ec == error::header_limit, ec.message());
}
{
multi_buffer b;
ostream(b) <<

View File

@@ -470,7 +470,8 @@ public:
ostream(b) << "0\r\n"; // needs an extra CRLF
used = p.put(b.data(), ec);
BEAST_EXPECT(used == 0);
BEAST_EXPECT(used == 3);
b.consume(used);
BEAST_EXPECT(ec == error::need_more);
ostream(b) << "\r";
@@ -480,7 +481,7 @@ public:
ostream(b) << "\n";
used = p.put(b.data(), ec);
BEAST_EXPECT(used == 5);
BEAST_EXPECT(used == 2);
BEAST_EXPECT(!ec);
BEAST_EXPECT(p.is_done());
}