| // Copyright (c) 2012 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/base/net_errors.h" |
| |
| namespace net { |
| |
| const char kErrorDomain[] = "net"; |
| |
| std::string ErrorToString(int error) { |
| return "net::" + ErrorToShortString(error); |
| } |
| |
| std::string ErrorToShortString(int error) { |
| if (error == 0) |
| return "OK"; |
| |
| const char* error_string; |
| switch (error) { |
| #define NET_ERROR(label, value) \ |
| case ERR_ ## label: \ |
| error_string = # label; \ |
| break; |
| #include "net/base/net_error_list.h" |
| #undef NET_ERROR |
| default: |
| NOTREACHED(); |
| error_string = "<unknown>"; |
| } |
| return std::string("ERR_") + error_string; |
| } |
| |
| bool IsCertificateError(int error) { |
| // Certificate errors are negative integers from net::ERR_CERT_BEGIN |
| // (inclusive) to net::ERR_CERT_END (exclusive) in *decreasing* order. |
| // ERR_SSL_PINNED_KEY_NOT_IN_CERT_CHAIN is currently an exception to this |
| // rule. |
| return (error <= ERR_CERT_BEGIN && error > ERR_CERT_END) || |
| (error == ERR_SSL_PINNED_KEY_NOT_IN_CERT_CHAIN); |
| } |
| |
| bool IsClientCertificateError(int error) { |
| switch (error) { |
| case ERR_BAD_SSL_CLIENT_AUTH_CERT: |
| case ERR_SSL_CLIENT_AUTH_PRIVATE_KEY_ACCESS_DENIED: |
| case ERR_SSL_CLIENT_AUTH_CERT_NO_PRIVATE_KEY: |
| case ERR_SSL_CLIENT_AUTH_SIGNATURE_FAILED: |
| return true; |
| default: |
| return false; |
| } |
| } |
| |
| Error FileErrorToNetError(base::File::Error file_error) { |
| switch (file_error) { |
| case base::File::FILE_OK: |
| return OK; |
| case base::File::FILE_ERROR_ACCESS_DENIED: |
| return ERR_ACCESS_DENIED; |
| case base::File::FILE_ERROR_INVALID_URL: |
| return ERR_INVALID_URL; |
| case base::File::FILE_ERROR_NOT_FOUND: |
| return ERR_FILE_NOT_FOUND; |
| default: |
| return ERR_FAILED; |
| } |
| } |
| |
| } // namespace net |