| 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 #ifndef NET_BASE_NET_UTIL_H_ | 5 #ifndef NET_BASE_NET_UTIL_H_ |
| 6 #define NET_BASE_NET_UTIL_H_ | 6 #define NET_BASE_NET_UTIL_H_ |
| 7 #pragma once | 7 #pragma once |
| 8 | 8 |
| 9 #include "build/build_config.h" | 9 #include "build/build_config.h" |
| 10 | 10 |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 64 extern const FormatUrlType kFormatUrlOmitHTTP; | 64 extern const FormatUrlType kFormatUrlOmitHTTP; |
| 65 | 65 |
| 66 // Omits the path if it is just a slash and there is no query or ref. This is | 66 // Omits the path if it is just a slash and there is no query or ref. This is |
| 67 // meaningful for non-file "standard" URLs. | 67 // meaningful for non-file "standard" URLs. |
| 68 extern const FormatUrlType kFormatUrlOmitTrailingSlashOnBareHostname; | 68 extern const FormatUrlType kFormatUrlOmitTrailingSlashOnBareHostname; |
| 69 | 69 |
| 70 // Convenience for omitting all unecessary types. | 70 // Convenience for omitting all unecessary types. |
| 71 extern const FormatUrlType kFormatUrlOmitAll; | 71 extern const FormatUrlType kFormatUrlOmitAll; |
| 72 | 72 |
| 73 // Holds a list of ports that should be accepted despite bans. | 73 // Holds a list of ports that should be accepted despite bans. |
| 74 extern std::set<int> explicitly_allowed_ports; | 74 extern std::multiset<int> explicitly_allowed_ports; |
| 75 | 75 |
| 76 // Given the full path to a file name, creates a file: URL. The returned URL | 76 // Given the full path to a file name, creates a file: URL. The returned URL |
| 77 // may not be valid if the input is malformed. | 77 // may not be valid if the input is malformed. |
| 78 GURL FilePathToFileURL(const FilePath& path); | 78 GURL FilePathToFileURL(const FilePath& path); |
| 79 | 79 |
| 80 // Converts a file: URL back to a filename that can be passed to the OS. The | 80 // Converts a file: URL back to a filename that can be passed to the OS. The |
| 81 // file URL must be well-formed (GURL::is_valid() must return true); we don't | 81 // file URL must be well-formed (GURL::is_valid() must return true); we don't |
| 82 // handle degenerate cases here. Returns true on success, false if it isn't a | 82 // handle degenerate cases here. Returns true on success, false if it isn't a |
| 83 // valid file URL. On failure, *file_path will be empty. | 83 // valid file URL. On failure, *file_path will be empty. |
| 84 bool FileURLToFilePath(const GURL& url, FilePath* file_path); | 84 bool FileURLToFilePath(const GURL& url, FilePath* file_path); |
| (...skipping 246 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 331 // format flag including kFormatUrlOmitTrailingSlashOnBareHostname. | 331 // format flag including kFormatUrlOmitTrailingSlashOnBareHostname. |
| 332 bool CanStripTrailingSlash(const GURL& url); | 332 bool CanStripTrailingSlash(const GURL& url); |
| 333 | 333 |
| 334 // Strip the portions of |url| that aren't core to the network request. | 334 // Strip the portions of |url| that aren't core to the network request. |
| 335 // - user name / password | 335 // - user name / password |
| 336 // - reference section | 336 // - reference section |
| 337 GURL SimplifyUrlForRequest(const GURL& url); | 337 GURL SimplifyUrlForRequest(const GURL& url); |
| 338 | 338 |
| 339 void SetExplicitlyAllowedPorts(const std::string& allowed_ports); | 339 void SetExplicitlyAllowedPorts(const std::string& allowed_ports); |
| 340 | 340 |
| 341 class ScopedPortException { |
| 342 public: |
| 343 ScopedPortException(int port); |
| 344 ~ScopedPortException(); |
| 345 |
| 346 private: |
| 347 int port_; |
| 348 |
| 349 DISALLOW_COPY_AND_ASSIGN(ScopedPortException); |
| 350 }; |
| 351 |
| 341 // Perform a simplistic test to see if IPv6 is supported by trying to create an | 352 // Perform a simplistic test to see if IPv6 is supported by trying to create an |
| 342 // IPv6 socket. | 353 // IPv6 socket. |
| 343 // TODO(jar): Make test more in-depth as needed. | 354 // TODO(jar): Make test more in-depth as needed. |
| 344 bool IPv6Supported(); | 355 bool IPv6Supported(); |
| 345 | 356 |
| 346 // Returns true if it can determine that only loopback addresses are configured. | 357 // Returns true if it can determine that only loopback addresses are configured. |
| 347 // i.e. if only 127.0.0.1 and ::1 are routable. | 358 // i.e. if only 127.0.0.1 and ::1 are routable. |
| 348 bool HaveOnlyLoopbackAddresses(); | 359 bool HaveOnlyLoopbackAddresses(); |
| 349 | 360 |
| 350 // IPAddressNumber is used to represent an IP address's numeric value as an | 361 // IPAddressNumber is used to represent an IP address's numeric value as an |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 394 | 405 |
| 395 // Returns the port field of the sockaddr in |info|. | 406 // Returns the port field of the sockaddr in |info|. |
| 396 uint16* GetPortFieldFromAddrinfo(const struct addrinfo* info); | 407 uint16* GetPortFieldFromAddrinfo(const struct addrinfo* info); |
| 397 | 408 |
| 398 // Returns the value of |info's| port (in host byte ordering). | 409 // Returns the value of |info's| port (in host byte ordering). |
| 399 int GetPortFromAddrinfo(const struct addrinfo* info); | 410 int GetPortFromAddrinfo(const struct addrinfo* info); |
| 400 | 411 |
| 401 } // namespace net | 412 } // namespace net |
| 402 | 413 |
| 403 #endif // NET_BASE_NET_UTIL_H_ | 414 #endif // NET_BASE_NET_UTIL_H_ |
| OLD | NEW |