Commit ef0e0803 authored by Adam Burgess's avatar Adam Burgess

Make raw headers case-insensitive

parent e18ed9ba
......@@ -109,7 +109,7 @@ public:
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;
}
......@@ -126,7 +126,12 @@ private:
LowercaseHash,
LowercaseEqual
> headers;
std::unordered_map<std::string, Raw> rawHeaders;
std::unordered_map<
std::string,
Raw,
LowercaseHash,
LowercaseEqual
> rawHeaders;
};
class Registry {
......
......@@ -700,3 +700,16 @@ TEST(headers_test, registered_header_in_raw_list)
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