| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 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 | 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 <iterator> | 8 #include <iterator> |
| 9 #include <map> | 9 #include <map> |
| 10 | 10 |
| (...skipping 191 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 202 } else { | 202 } else { |
| 203 return false; | 203 return false; |
| 204 } | 204 } |
| 205 ++it; | 205 ++it; |
| 206 } | 206 } |
| 207 output->swap(temp); | 207 output->swap(temp); |
| 208 return true; | 208 return true; |
| 209 } | 209 } |
| 210 | 210 |
| 211 enum RFC2047EncodingType {Q_ENCODING, B_ENCODING}; | 211 enum RFC2047EncodingType {Q_ENCODING, B_ENCODING}; |
| 212 bool DecodeBQEncoding(const std::string& part, RFC2047EncodingType enc_type, | 212 bool DecodeBQEncoding(const std::string& part, |
| 213 const std::string& charset, std::string* output) { | 213 RFC2047EncodingType enc_type, |
| 214 const std::string& charset, |
| 215 std::string* output) { |
| 216 DCHECK(!part.empty()); // TODO(pkasting): Not sure about this. |
| 214 std::string decoded; | 217 std::string decoded; |
| 215 if (enc_type == B_ENCODING) { | 218 if (enc_type == B_ENCODING) { |
| 216 if (!base::Base64Decode(part, &decoded)) { | 219 if (!base::Base64Decode(part, &decoded)) { |
| 217 return false; | 220 return false; |
| 218 } | 221 } |
| 219 } else { | 222 } else { |
| 220 if (!QPDecode(part, &decoded)) { | 223 if (!QPDecode(part, &decoded)) { |
| 221 return false; | 224 return false; |
| 222 } | 225 } |
| 223 } | 226 } |
| 227 DCHECK(!decoded.empty()); |
| 224 | 228 |
| 225 UErrorCode err = U_ZERO_ERROR; | 229 UErrorCode err = U_ZERO_ERROR; |
| 226 UConverter* converter(ucnv_open(charset.c_str(), &err)); | 230 UConverter* converter(ucnv_open(charset.c_str(), &err)); |
| 227 if (U_FAILURE(err)) { | 231 if (U_FAILURE(err)) { |
| 228 return false; | 232 return false; |
| 229 } | 233 } |
| 230 | 234 |
| 231 // A single byte in a legacy encoding can be expanded to 3 bytes in UTF-8. | 235 // A single byte in a legacy encoding can be expanded to 3 bytes in UTF-8. |
| 232 // A 'two-byte character' in a legacy encoding can be expanded to 4 bytes | 236 // A 'two-byte character' in a legacy encoding can be expanded to 4 bytes |
| 233 // in UTF-8. Therefore, the expansion ratio is 3 at most. | 237 // in UTF-8. Therefore, the expansion ratio is 3 at most. |
| (...skipping 2217 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2451 | 2455 |
| 2452 NetworkInterface::NetworkInterface(const std::string& name, | 2456 NetworkInterface::NetworkInterface(const std::string& name, |
| 2453 const IPAddressNumber& address) | 2457 const IPAddressNumber& address) |
| 2454 : name(name), address(address) { | 2458 : name(name), address(address) { |
| 2455 } | 2459 } |
| 2456 | 2460 |
| 2457 NetworkInterface::~NetworkInterface() { | 2461 NetworkInterface::~NetworkInterface() { |
| 2458 } | 2462 } |
| 2459 | 2463 |
| 2460 } // namespace net | 2464 } // namespace net |
| OLD | NEW |