diff --git a/CHANGELOG.md b/CHANGELOG.md index c8bb0f72d..0b294f00a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,7 @@ - ADDED: flatbuffers output format support [#5513](https://github.com/Project-OSRM/osrm-backend/pull/5513) - ADDED: Global 'skip_waypoints' option [#5556](https://github.com/Project-OSRM/osrm-backend/pull/5556) - FIXED: Install the libosrm_guidance library correctly [#5604](https://github.com/Project-OSRM/osrm-backend/pull/5604) + - FIXED: Http Handler can now deal witch optional whitespace between header-key and -value [#5606](https://github.com/Project-OSRM/osrm-backend/issues/5606) - Routing: - CHANGED: allow routing past `barrier=arch` [#5352](https://github.com/Project-OSRM/osrm-backend/pull/5352) - CHANGED: default car weight was reduced to 2000 kg. [#5371](https://github.com/Project-OSRM/osrm-backend/pull/5371) diff --git a/include/server/request_parser.hpp b/include/server/request_parser.hpp index 3ac4c17a5..6d9093d7d 100644 --- a/include/server/request_parser.hpp +++ b/include/server/request_parser.hpp @@ -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 diff --git a/src/server/request_parser.cpp b/src/server/request_parser.cpp index 283425693..e39c0e40b 100644 --- a/src/server/request_parser.cpp +++ b/src/server/request_parser.cpp @@ -217,7 +217,7 @@ RequestParser::RequestStatus RequestParser::consume(http::request ¤t_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 ¤t_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;