Skip to content

Commit 15f0ca8

Browse files
authored
Merge pull request #5608 from mariusre/http_parsing_fix
made whitespace between Header-key and value otional
2 parents 404ebb1 + d59ecb3 commit 15f0ca8

File tree

3 files changed

+3
-5
lines changed

3 files changed

+3
-5
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
- ADDED: flatbuffers output format support [#5513](https://github.com/Project-OSRM/osrm-backend/pull/5513)
1212
- ADDED: Global 'skip_waypoints' option [#5556](https://github.com/Project-OSRM/osrm-backend/pull/5556)
1313
- FIXED: Install the libosrm_guidance library correctly [#5604](https://github.com/Project-OSRM/osrm-backend/pull/5604)
14+
- FIXED: Http Handler can now deal witch optional whitespace between header-key and -value [#5606](https://github.com/Project-OSRM/osrm-backend/issues/5606)
1415
- Routing:
1516
- CHANGED: allow routing past `barrier=arch` [#5352](https://github.com/Project-OSRM/osrm-backend/pull/5352)
1617
- CHANGED: default car weight was reduced to 2000 kg. [#5371](https://github.com/Project-OSRM/osrm-backend/pull/5371)

include/server/request_parser.hpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,6 @@ class RequestParser
6161
header_line_start,
6262
header_lws,
6363
header_name,
64-
space_before_header_value,
6564
header_value,
6665
expecting_newline_2,
6766
expecting_newline_3

src/server/request_parser.cpp

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -217,7 +217,7 @@ RequestParser::RequestStatus RequestParser::consume(http::request &current_reque
217217
case internal_state::header_name:
218218
if (input == ':')
219219
{
220-
state = internal_state::space_before_header_value;
220+
state = internal_state::header_value;
221221
return RequestStatus::indeterminate;
222222
}
223223
if (!is_char(input) || is_CTL(input) || is_special(input))
@@ -226,14 +226,12 @@ RequestParser::RequestStatus RequestParser::consume(http::request &current_reque
226226
}
227227
current_header.name.push_back(input);
228228
return RequestStatus::indeterminate;
229-
case internal_state::space_before_header_value:
229+
case internal_state::header_value:
230230
if (input == ' ')
231231
{
232232
state = internal_state::header_value;
233233
return RequestStatus::indeterminate;
234234
}
235-
return RequestStatus::invalid;
236-
case internal_state::header_value:
237235
if (input == '\r')
238236
{
239237
state = internal_state::expecting_newline_2;

0 commit comments

Comments
 (0)