diff options
author | Mauro Sardara <msardara@cisco.com> | 2020-05-27 19:16:27 +0200 |
---|---|---|
committer | Mauro Sardara <msardara@cisco.com> | 2020-05-29 20:25:19 +0200 |
commit | f54ae4ed4fd2f22525492e2525d0f24a314e65b2 (patch) | |
tree | fa0ac2ced671ccffd24a885e930834b8e2ecba48 /libtransport/src/http/request.cc | |
parent | 4214534b001c27f1923bbb2a8e69fd7372ba5947 (diff) |
[HICH-618] HTTP proxy automatic configuration.
Change-Id: I6a76b31b743f155a2d9f7b88e84b838265aab6c8
Signed-off-by: Mauro Sardara <msardara@cisco.com>
Diffstat (limited to 'libtransport/src/http/request.cc')
-rw-r--r-- | libtransport/src/http/request.cc | 15 |
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 { |