summaryrefslogtreecommitdiff
path: root/src/HttpHeader.cc
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2012-04-08 19:00:07 +0900
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2012-04-08 19:00:07 +0900
commit1e0068e4d4ce79d10a2ea4f6462242bee3708dc8 (patch)
treed6c66da3c986b2b51455d0400b7a7033f75454ac /src/HttpHeader.cc
parentc648ca0c5c328827327f0973ec4f8a06bacf912f (diff)
WebSocket: Check keyword string in comma separeted values in HTTP
header field.
Diffstat (limited to 'src/HttpHeader.cc')
-rw-r--r--src/HttpHeader.cc24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/HttpHeader.cc b/src/HttpHeader.cc
index 8513cb56..1bba0ad2 100644
--- a/src/HttpHeader.cc
+++ b/src/HttpHeader.cc
@@ -293,4 +293,28 @@ const std::string& HttpHeader::getRequestPath() const
return requestPath_;
}
+bool HttpHeader::fieldContains(const std::string& name,
+ const std::string& value)
+{
+ std::pair<std::multimap<std::string, std::string>::const_iterator,
+ std::multimap<std::string, std::string>::const_iterator> range =
+ equalRange(name);
+ for(std::multimap<std::string, std::string>::const_iterator i = range.first;
+ i != range.second; ++i) {
+ std::vector<Scip> values;
+ util::splitIter((*i).second.begin(), (*i).second.end(),
+ std::back_inserter(values),
+ ',',
+ true // doStrip
+ );
+ for(std::vector<Scip>::const_iterator j = values.begin(),
+ eoj = values.end(); j != eoj; ++j) {
+ if(util::strieq((*j).first, (*j).second, value.begin(), value.end())) {
+ return true;
+ }
+ }
+ }
+ return false;
+}
+
} // namespace aria2