|  | // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 
|  | // Use of this source code is governed by a BSD-style license that can be | 
|  | // found in the LICENSE file. | 
|  |  | 
|  | #include "net/server/http_server_request_info.h" | 
|  |  | 
|  | #include "base/strings/string_split.h" | 
|  | #include "base/strings/string_util.h" | 
|  |  | 
|  | namespace net { | 
|  |  | 
|  | HttpServerRequestInfo::HttpServerRequestInfo() = default; | 
|  |  | 
|  | HttpServerRequestInfo::HttpServerRequestInfo( | 
|  | const HttpServerRequestInfo& other) = default; | 
|  |  | 
|  | HttpServerRequestInfo::~HttpServerRequestInfo() = default; | 
|  |  | 
|  | std::string HttpServerRequestInfo::GetHeaderValue( | 
|  | const std::string& header_name) const { | 
|  | DCHECK_EQ(base::ToLowerASCII(header_name), header_name); | 
|  | HttpServerRequestInfo::HeadersMap::const_iterator it = | 
|  | headers.find(header_name); | 
|  | if (it != headers.end()) | 
|  | return it->second; | 
|  | return std::string(); | 
|  | } | 
|  |  | 
|  | bool HttpServerRequestInfo::HasHeaderValue( | 
|  | const std::string& header_name, | 
|  | const std::string& header_value) const { | 
|  | DCHECK_EQ(base::ToLowerASCII(header_value), header_value); | 
|  | std::string complete_value = base::ToLowerASCII(GetHeaderValue(header_name)); | 
|  |  | 
|  | for (const base::StringPiece& cur : | 
|  | base::SplitString(complete_value, ",", base::KEEP_WHITESPACE, | 
|  | base::SPLIT_WANT_NONEMPTY)) { | 
|  | if (base::TrimString(cur, " \t", base::TRIM_ALL) == header_value) | 
|  | return true; | 
|  | } | 
|  | return false; | 
|  | } | 
|  |  | 
|  | }  // namespace net |