Commit ef0e0803 authored by Adam Burgess's avatar Adam Burgess

Make raw headers case-insensitive

parent e18ed9ba
...@@ -109,7 +109,7 @@ public: ...@@ -109,7 +109,7 @@ public:
std::vector<std::shared_ptr<Header>> list() const; std::vector<std::shared_ptr<Header>> list() const;
const std::unordered_map<std::string, Raw>& rawList() const { const std::unordered_map<std::string,Raw,LowercaseHash,LowercaseEqual>& rawList() const {
return rawHeaders; return rawHeaders;
} }
...@@ -126,7 +126,12 @@ private: ...@@ -126,7 +126,12 @@ private:
LowercaseHash, LowercaseHash,
LowercaseEqual LowercaseEqual
> headers; > headers;
std::unordered_map<std::string, Raw> rawHeaders; std::unordered_map<
std::string,
Raw,
LowercaseHash,
LowercaseEqual
> rawHeaders;
}; };
class Registry { class Registry {
......
...@@ -700,3 +700,16 @@ TEST(headers_test, registered_header_in_raw_list) ...@@ -700,3 +700,16 @@ TEST(headers_test, registered_header_in_raw_list)
ASSERT_TRUE(foundRawHeader->second.value() == "some data"); ASSERT_TRUE(foundRawHeader->second.value() == "some data");
} }
TEST(headers_test, raw_headers_are_case_insensitive)
{
std::string line = "Custom-Header: x\r\n";
Pistache::RawStreamBuf<> buf(&line[0], line.size());
Pistache::StreamCursor cursor(&buf);
Pistache::Http::Request request;
Pistache::Http::Private::HeadersStep step(&request);
step.apply(cursor);
ASSERT_FALSE(request.headers().tryGetRaw("Custom-Header").isEmpty());
ASSERT_FALSE(request.headers().tryGetRaw("custom-header").isEmpty());
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment