1ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// Copyright (c) 2011 The Chromium Authors. All rights reserved.
2c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott// Use of this source code is governed by a BSD-style license that can be
3c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott// found in the LICENSE file.
4c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott
5c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott#ifndef NET_BASE_NET_ERRORS_H__
6c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott#define NET_BASE_NET_ERRORS_H__
73345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick#pragma once
8c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott
9c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott#include "base/basictypes.h"
10c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott
11c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scottnamespace net {
12c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott
13c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott// Error domain of the net module's error codes.
14c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scottextern const char kErrorDomain[];
15c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott
16c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott// Error values are negative.
17c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scottenum Error {
18c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott  // No error.
19c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott  OK = 0,
20c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott
21c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott#define NET_ERROR(label, value) ERR_ ## label = value,
22c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott#include "net/base/net_error_list.h"
23c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott#undef NET_ERROR
24c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott
25c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott  // The value of the first certificate error code.
26c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott  ERR_CERT_BEGIN = ERR_CERT_COMMON_NAME_INVALID,
27c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott};
28c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott
29c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott// Returns a textual representation of the error code for logging purposes.
30c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scottconst char* ErrorToString(int error);
31c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott
32c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott// Returns true if |error| is a certificate error code.
33c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scottinline bool IsCertificateError(int error) {
34c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott  // Certificate errors are negative integers from net::ERR_CERT_BEGIN
35c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott  // (inclusive) to net::ERR_CERT_END (exclusive) in *decreasing* order.
36c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott  return error <= ERR_CERT_BEGIN && error > ERR_CERT_END;
37c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott}
38c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott
39ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// Map system error code to Error.
40ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian MonsenError MapSystemError(int os_error);
41ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen
42c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott}  // namespace net
43c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott
44c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott#endif  // NET_BASE_NET_ERRORS_H__
45