From c73e6ba3e27d3401fb7b7a0ae69ba158f9299348 Mon Sep 17 00:00:00 2001 From: Eric Lombrozo Date: Thu, 11 Jul 2013 18:36:40 +0200 Subject: [PATCH] Conventional capitalization when writing headers, leniency when reading. --- Subtrees/websocket/src/http/parser.hpp | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/Subtrees/websocket/src/http/parser.hpp b/Subtrees/websocket/src/http/parser.hpp index 2a4918b60..72fb0a65d 100644 --- a/Subtrees/websocket/src/http/parser.hpp +++ b/Subtrees/websocket/src/http/parser.hpp @@ -83,7 +83,12 @@ public: } std::string header(const std::string& key) const { - header_list::const_iterator h = m_headers.find(tolower(key)); + header_list::const_iterator h = m_headers.find(key); + if (h != m_headers.end()) { + return h->second; + } + + h = m_headers.find(tolower(key)); if (h == m_headers.end()) { return ""; @@ -97,18 +102,18 @@ public: void add_header(const std::string &key, const std::string &val) { // TODO: prevent use of reserved headers? if (this->header(key) == "") { - m_headers[tolower(key)] = val; + m_headers[key] = val; } else { - m_headers[tolower(key)] += ", " + val; + m_headers[key] += ", " + val; } } void replace_header(const std::string &key, const std::string &val) { - m_headers[tolower(key)] = val; + m_headers[key] = val; } void remove_header(const std::string &key) { - m_headers.erase(tolower(key)); + m_headers.erase(key); } protected: bool parse_headers(std::istream& s) {