1
0
Fork 0

HTTP: Fixed empty headers parsing.

This commit is contained in:
Mattes D 2016-08-24 08:28:44 +02:00
parent c94628959d
commit c45bd4b968
5 changed files with 25 additions and 2 deletions

View File

@ -118,7 +118,14 @@ bool cEnvelopeParser::ParseLine(const char * a_Data, size_t a_Size)
if (a_Data[i] == ':')
{
m_LastKey.assign(a_Data, i);
m_LastValue.assign(a_Data + i + 2, a_Size - i - 2);
if (a_Size > i + 1)
{
m_LastValue.assign(a_Data + i + 2, a_Size - i - 2);
}
else
{
m_LastValue.clear();
}
return true;
}
} // for i - a_Data[]

View File

@ -44,11 +44,22 @@ endif()
set (TEST_DATA_FILES
HTTPRequest1.data
HTTPRequest2.data
HTTPResponse1.data
HTTPResponse2.data
)
source_group("Data Files" FILES ${TEST_DATA_FILES})
# Define individual test executables:
# HTTPMessageParser_file: Feed file contents into a cHTTPResponseParser and print the callbacks as they're called:
add_executable(HTTPMessageParser_file-exe HTTPMessageParser_file.cpp)
add_executable(HTTPMessageParser_file-exe HTTPMessageParser_file.cpp ${TEST_DATA_FILES})
target_link_libraries(HTTPMessageParser_file-exe HTTP Network OSSupport)
# UrlClientTest: Tests the UrlClient class by requesting a few things off the internet:

View File

@ -1,5 +1,8 @@
GET /some/url HTTP/1.1
Note: This is a test of a regular request
Content-Length: 3
Empty-Header:
Almost-Empty-Header: a
Two-Char-Header: 12
bla

View File

@ -6,5 +6,6 @@ Note3: The data is 2 bytes longer than the actual request, parser should indicat
Header1: Value1
Header2: Value2
Content-Length: 3
Empty-Header:
bla

View File

@ -2,6 +2,7 @@ HTTP/1.0 200 OK
Note: This is a Chunked transfer encoding test
Header2: Value2
Transfer-Encoding: chunked
Empty-Header:
4
Wiki