modified FSM so that the whitespace between header-key and value is optional

This commit is contained in:
marius 2019-11-19 18:30:21 +01:00
parent 48be5a5622
commit 6d8cf826d7
2 changed files with 2 additions and 5 deletions

View File

@ -61,7 +61,6 @@ class RequestParser
header_line_start,
header_lws,
header_name,
space_before_header_value,
header_value,
expecting_newline_2,
expecting_newline_3

View File

@ -217,7 +217,7 @@ RequestParser::RequestStatus RequestParser::consume(http::request &current_reque
case internal_state::header_name:
if (input == ':')
{
state = internal_state::space_before_header_value;
state = internal_state::header_value;
return RequestStatus::indeterminate;
}
if (!is_char(input) || is_CTL(input) || is_special(input))
@ -226,14 +226,12 @@ RequestParser::RequestStatus RequestParser::consume(http::request &current_reque
}
current_header.name.push_back(input);
return RequestStatus::indeterminate;
case internal_state::space_before_header_value:
case internal_state::header_value:
if (input == ' ')
{
state = internal_state::header_value;
return RequestStatus::indeterminate;
}
return RequestStatus::invalid;
case internal_state::header_value:
if (input == '\r')
{
state = internal_state::expecting_newline_2;