summaryrefslogtreecommitdiff
path: root/src/HttpHeader.cc
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2008-05-18 10:40:23 +0000
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2008-05-18 10:40:23 +0000
commit7235f2657fee344ebc0bbae539cc291b192bc37a (patch)
tree41ceae1914c9bba73fa911f2c83414f90e44f0f5 /src/HttpHeader.cc
parente1c1c010b877e3713743558a4abfb9854a0dabc3 (diff)
2008-05-18 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
* src/HttpHeader.cc (get): Rewritten.
Diffstat (limited to 'src/HttpHeader.cc')
-rw-r--r--src/HttpHeader.cc13
1 files changed, 10 insertions, 3 deletions
diff --git a/src/HttpHeader.cc b/src/HttpHeader.cc
index 16a70357..9194c808 100644
--- a/src/HttpHeader.cc
+++ b/src/HttpHeader.cc
@@ -94,10 +94,17 @@ const std::string& HttpHeader::getFirst(const std::string& name) const {
std::deque<std::string> HttpHeader::get(const std::string& name) const {
std::deque<std::string> v;
+
std::string n(Util::toLower(name));
- for(std::multimap<std::string, std::string>::const_iterator i = table.find(n);
- i != table.end() && (*i).first == n; ++i) {
- v.push_back((*i).second);
+
+ std::multimap<std::string, std::string>::const_iterator first =
+ table.lower_bound(n);
+ std::multimap<std::string, std::string>::const_iterator last =
+ table.upper_bound(n);
+
+ while(first != last) {
+ v.push_back((*first).second);
+ ++first;
}
return v;
}