HttpServer: Handling of multiple header fields with the same name and multiple values of "Connection".
BUG=370437
Review URL: https://codereview.chromium.org/274813002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@269619 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/net/server/http_server_request_info.cc b/net/server/http_server_request_info.cc
index 67965f2..8b65bee5 100644
--- a/net/server/http_server_request_info.cc
+++ b/net/server/http_server_request_info.cc
@@ -22,4 +22,21 @@
return std::string();
}
+bool HttpServerRequestInfo::HasHeaderValue(
+ const std::string& header_name,
+ const std::string& header_value) const {
+ DCHECK_EQ(StringToLowerASCII(header_value), header_value);
+ std::string complete_value = GetHeaderValue(header_name);
+ StringToLowerASCII(&complete_value);
+ std::vector<std::string> value_items;
+ Tokenize(complete_value, ",", &value_items);
+ for (std::vector<std::string>::iterator it = value_items.begin();
+ it != value_items.end(); ++it) {
+ base::TrimString(*it, " \t", &*it);
+ if (*it == header_value)
+ return true;
+ }
+ return false;
+}
+
} // namespace net