1*6777b538SAndroid Build Coastguard Worker // Copyright 2012 The Chromium Authors 2*6777b538SAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be 3*6777b538SAndroid Build Coastguard Worker // found in the LICENSE file. 4*6777b538SAndroid Build Coastguard Worker 5*6777b538SAndroid Build Coastguard Worker #ifndef NET_BASE_NET_ERRORS_H__ 6*6777b538SAndroid Build Coastguard Worker #define NET_BASE_NET_ERRORS_H__ 7*6777b538SAndroid Build Coastguard Worker 8*6777b538SAndroid Build Coastguard Worker #include <string> 9*6777b538SAndroid Build Coastguard Worker 10*6777b538SAndroid Build Coastguard Worker #include "base/files/file.h" 11*6777b538SAndroid Build Coastguard Worker #include "base/logging.h" 12*6777b538SAndroid Build Coastguard Worker #include "net/base/net_export.h" 13*6777b538SAndroid Build Coastguard Worker 14*6777b538SAndroid Build Coastguard Worker namespace net { 15*6777b538SAndroid Build Coastguard Worker 16*6777b538SAndroid Build Coastguard Worker // Error values are negative. 17*6777b538SAndroid Build Coastguard Worker enum Error { 18*6777b538SAndroid Build Coastguard Worker // No error. Change NetError.template after changing value. 19*6777b538SAndroid Build Coastguard Worker OK = 0, 20*6777b538SAndroid Build Coastguard Worker 21*6777b538SAndroid Build Coastguard Worker #define NET_ERROR(label, value) ERR_ ## label = value, 22*6777b538SAndroid Build Coastguard Worker #include "net/base/net_error_list.h" 23*6777b538SAndroid Build Coastguard Worker #undef NET_ERROR 24*6777b538SAndroid Build Coastguard Worker 25*6777b538SAndroid Build Coastguard Worker // The value of the first certificate error code. 26*6777b538SAndroid Build Coastguard Worker ERR_CERT_BEGIN = ERR_CERT_COMMON_NAME_INVALID, 27*6777b538SAndroid Build Coastguard Worker }; 28*6777b538SAndroid Build Coastguard Worker 29*6777b538SAndroid Build Coastguard Worker // Returns a textual representation of the error code for logging purposes. 30*6777b538SAndroid Build Coastguard Worker NET_EXPORT std::string ErrorToString(int error); 31*6777b538SAndroid Build Coastguard Worker 32*6777b538SAndroid Build Coastguard Worker // Same as above, but leaves off the leading "net::". 33*6777b538SAndroid Build Coastguard Worker NET_EXPORT std::string ErrorToShortString(int error); 34*6777b538SAndroid Build Coastguard Worker 35*6777b538SAndroid Build Coastguard Worker // Returns a textual representation of the error code and the extended eror 36*6777b538SAndroid Build Coastguard Worker // code. 37*6777b538SAndroid Build Coastguard Worker NET_EXPORT std::string ExtendedErrorToString(int error, 38*6777b538SAndroid Build Coastguard Worker int extended_error_code); 39*6777b538SAndroid Build Coastguard Worker 40*6777b538SAndroid Build Coastguard Worker // Returns true if |error| is a certificate error code. Note this does not 41*6777b538SAndroid Build Coastguard Worker // include errors for client certificates. 42*6777b538SAndroid Build Coastguard Worker NET_EXPORT bool IsCertificateError(int error); 43*6777b538SAndroid Build Coastguard Worker 44*6777b538SAndroid Build Coastguard Worker // Returns true if |error| is a client certificate authentication error. This 45*6777b538SAndroid Build Coastguard Worker // does not include ERR_SSL_PROTOCOL_ERROR which may also signal a bad client 46*6777b538SAndroid Build Coastguard Worker // certificate. 47*6777b538SAndroid Build Coastguard Worker NET_EXPORT bool IsClientCertificateError(int error); 48*6777b538SAndroid Build Coastguard Worker 49*6777b538SAndroid Build Coastguard Worker // Returns true if |error| is an error from hostname resolution. 50*6777b538SAndroid Build Coastguard Worker NET_EXPORT bool IsHostnameResolutionError(int error); 51*6777b538SAndroid Build Coastguard Worker 52*6777b538SAndroid Build Coastguard Worker // Returns true if |error| means that the request has been blocked. 53*6777b538SAndroid Build Coastguard Worker NET_EXPORT bool IsRequestBlockedError(int error); 54*6777b538SAndroid Build Coastguard Worker 55*6777b538SAndroid Build Coastguard Worker // Map system error code to Error. 56*6777b538SAndroid Build Coastguard Worker NET_EXPORT Error MapSystemError(logging::SystemErrorCode os_error); 57*6777b538SAndroid Build Coastguard Worker 58*6777b538SAndroid Build Coastguard Worker // A convenient function to translate file error to net error code. 59*6777b538SAndroid Build Coastguard Worker NET_EXPORT Error FileErrorToNetError(base::File::Error file_error); 60*6777b538SAndroid Build Coastguard Worker 61*6777b538SAndroid Build Coastguard Worker } // namespace net 62*6777b538SAndroid Build Coastguard Worker 63*6777b538SAndroid Build Coastguard Worker #endif // NET_BASE_NET_ERRORS_H__ 64