aboutsummaryrefslogtreecommitdiffstats
path: root/libtransport/src/http/request.cc
diff options
context:
space:
mode:
Diffstat (limited to 'libtransport/src/http/request.cc')
-rw-r--r--libtransport/src/http/request.cc15
1 files changed, 12 insertions, 3 deletions
diff --git a/libtransport/src/http/request.cc b/libtransport/src/http/request.cc
index 87e499cc6..29118fd88 100644
--- a/libtransport/src/http/request.cc
+++ b/libtransport/src/http/request.cc
@@ -97,14 +97,15 @@ std::size_t HTTPRequest::parseHeaders(const uint8_t *buffer, std::size_t size,
if (_http_version.substr(0, separator) != "HTTP") {
return 0;
}
- http_version =
- line.substr(separator + 1, _http_version.length() - separator - 1);
+ http_version = _http_version.substr(
+ separator + 1, _http_version.length() - separator - 1);
} else {
return 0;
}
std::size_t param_end;
std::size_t value_start;
+ std::string header_key, header_value;
while (getline(ss, line)) {
if ((param_end = line.find(':')) != std::string::npos) {
value_start = param_end + 1;
@@ -113,8 +114,16 @@ std::size_t HTTPRequest::parseHeaders(const uint8_t *buffer, std::size_t size,
value_start++;
}
if (value_start < line.size()) {
- headers[line.substr(0, param_end)] =
+ header_key = line.substr(0, param_end);
+ header_value =
line.substr(value_start, line.size() - value_start - 1);
+ std::transform(header_key.begin(), header_key.end(),
+ header_key.begin(),
+ [](unsigned char c) { return std::tolower(c); });
+ std::transform(header_value.begin(), header_value.end(),
+ header_value.begin(),
+ [](unsigned char c) { return std::tolower(c); });
+ headers[header_key] = header_value;
}
}
} else {