| OLD | NEW |
| 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "net/base/net_util.h" | 5 #include "net/base/net_util.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <map> | 8 #include <map> |
| 9 #include <unicode/regex.h> | 9 #include <unicode/regex.h> |
| 10 #include <unicode/ucnv.h> | 10 #include <unicode/ucnv.h> |
| (...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 169 if (headers.empty()) | 169 if (headers.empty()) |
| 170 return STR(); | 170 return STR(); |
| 171 | 171 |
| 172 STR match; | 172 STR match; |
| 173 match.push_back('\n'); | 173 match.push_back('\n'); |
| 174 match.append(name); | 174 match.append(name); |
| 175 match.push_back(':'); | 175 match.push_back(':'); |
| 176 | 176 |
| 177 typename STR::const_iterator begin = | 177 typename STR::const_iterator begin = |
| 178 search(headers.begin(), headers.end(), match.begin(), match.end(), | 178 search(headers.begin(), headers.end(), match.begin(), match.end(), |
| 179 CaseInsensitiveCompareASCII<typename STR::value_type>()); | 179 base::CaseInsensitiveCompareASCII<typename STR::value_type>()); |
| 180 | 180 |
| 181 if (begin == headers.end()) | 181 if (begin == headers.end()) |
| 182 return STR(); | 182 return STR(); |
| 183 | 183 |
| 184 begin += match.length(); | 184 begin += match.length(); |
| 185 | 185 |
| 186 typename STR::const_iterator end = find(begin, headers.end(), '\n'); | 186 typename STR::const_iterator end = find(begin, headers.end(), '\n'); |
| 187 | 187 |
| 188 STR ret; | 188 STR ret; |
| 189 TrimWhitespace(STR(begin, end), TRIM_ALL, &ret); | 189 TrimWhitespace(STR(begin, end), TRIM_ALL, &ret); |
| (...skipping 227 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 417 return true; | 417 return true; |
| 418 } | 418 } |
| 419 | 419 |
| 420 // TODO(mpcomplete): This is a quick and dirty implementation for now. I'm | 420 // TODO(mpcomplete): This is a quick and dirty implementation for now. I'm |
| 421 // sure this doesn't properly handle all (most?) cases. | 421 // sure this doesn't properly handle all (most?) cases. |
| 422 template<typename STR> | 422 template<typename STR> |
| 423 STR GetHeaderParamValueT(const STR& header, const STR& param_name) { | 423 STR GetHeaderParamValueT(const STR& header, const STR& param_name) { |
| 424 // This assumes args are formatted exactly like "bla; arg1=value; arg2=value". | 424 // This assumes args are formatted exactly like "bla; arg1=value; arg2=value". |
| 425 typename STR::const_iterator param_begin = | 425 typename STR::const_iterator param_begin = |
| 426 search(header.begin(), header.end(), param_name.begin(), param_name.end(), | 426 search(header.begin(), header.end(), param_name.begin(), param_name.end(), |
| 427 CaseInsensitiveCompareASCII<typename STR::value_type>()); | 427 base::CaseInsensitiveCompareASCII<typename STR::value_type>()); |
| 428 | 428 |
| 429 if (param_begin == header.end()) | 429 if (param_begin == header.end()) |
| 430 return STR(); | 430 return STR(); |
| 431 param_begin += param_name.length(); | 431 param_begin += param_name.length(); |
| 432 | 432 |
| 433 STR whitespace; | 433 STR whitespace; |
| 434 whitespace.push_back(' '); | 434 whitespace.push_back(' '); |
| 435 whitespace.push_back('\t'); | 435 whitespace.push_back('\t'); |
| 436 const typename STR::size_type equals_offset = | 436 const typename STR::size_type equals_offset = |
| 437 header.find_first_not_of(whitespace, param_begin - header.begin()); | 437 header.find_first_not_of(whitespace, param_begin - header.begin()); |
| (...skipping 1552 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1990 } | 1990 } |
| 1991 | 1991 |
| 1992 int GetPortFromAddrinfo(const struct addrinfo* info) { | 1992 int GetPortFromAddrinfo(const struct addrinfo* info) { |
| 1993 uint16* port_field = GetPortFieldFromAddrinfo(info); | 1993 uint16* port_field = GetPortFieldFromAddrinfo(info); |
| 1994 if (!port_field) | 1994 if (!port_field) |
| 1995 return -1; | 1995 return -1; |
| 1996 return ntohs(*port_field); | 1996 return ntohs(*port_field); |
| 1997 } | 1997 } |
| 1998 | 1998 |
| 1999 } // namespace net | 1999 } // namespace net |
| OLD | NEW |