1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "net/server/http_server_request_info.h" 6 7 #include "base/strings/string_util.h" 8 9 namespace net { 10 HttpServerRequestInfo()11HttpServerRequestInfo::HttpServerRequestInfo() {} 12 ~HttpServerRequestInfo()13HttpServerRequestInfo::~HttpServerRequestInfo() {} 14 GetHeaderValue(const std::string & header_name) const15std::string HttpServerRequestInfo::GetHeaderValue( 16 const std::string& header_name) const { 17 DCHECK_EQ(base::StringToLowerASCII(header_name), header_name); 18 HttpServerRequestInfo::HeadersMap::const_iterator it = 19 headers.find(header_name); 20 if (it != headers.end()) 21 return it->second; 22 return std::string(); 23 } 24 HasHeaderValue(const std::string & header_name,const std::string & header_value) const25bool HttpServerRequestInfo::HasHeaderValue( 26 const std::string& header_name, 27 const std::string& header_value) const { 28 DCHECK_EQ(base::StringToLowerASCII(header_value), header_value); 29 std::string complete_value = GetHeaderValue(header_name); 30 base::StringToLowerASCII(&complete_value); 31 std::vector<std::string> value_items; 32 Tokenize(complete_value, ",", &value_items); 33 for (std::vector<std::string>::iterator it = value_items.begin(); 34 it != value_items.end(); ++it) { 35 base::TrimString(*it, " \t", &*it); 36 if (*it == header_value) 37 return true; 38 } 39 return false; 40 } 41 42 } // namespace net 43