]> git.ipfire.org Git - thirdparty/squid.git/blob - src/err_type.h
Source Format Enforcement (#532)
[thirdparty/squid.git] / src / err_type.h
1 /*
2 * Copyright (C) 1996-2020 The Squid Software Foundation and contributors
3 *
4 * Squid software is distributed under GPLv2+ license and includes
5 * contributions from numerous individuals and organizations.
6 * Please see the COPYING and CONTRIBUTORS files for details.
7 */
8
9 #ifndef _SQUID_ERR_TYPE_H
10 #define _SQUID_ERR_TYPE_H
11
12 typedef enum {
13 ERR_NONE,
14
15 /* Access Permission Errors. Prefix new with ERR_ACCESS_ */
16 ERR_ACCESS_DENIED,
17 ERR_CACHE_ACCESS_DENIED,
18 ERR_CACHE_MGR_ACCESS_DENIED,
19 ERR_FORWARDING_DENIED,
20 ERR_NO_RELAY,
21 ERR_CANNOT_FORWARD,
22
23 /* TCP Errors. */
24 ERR_READ_TIMEOUT,
25 ERR_LIFETIME_EXP,
26 ERR_READ_ERROR,
27 ERR_WRITE_ERROR,
28 ERR_CONNECT_FAIL,
29 ERR_SECURE_CONNECT_FAIL,
30 ERR_SOCKET_FAILURE,
31
32 /* DNS Errors */
33 ERR_DNS_FAIL,
34 ERR_URN_RESOLVE,
35
36 /* HTTP Errors */
37 ERR_ONLY_IF_CACHED_MISS, /* failure to satisfy only-if-cached request */
38 ERR_TOO_BIG,
39 ERR_INVALID_RESP,
40 ERR_UNSUP_HTTPVERSION, /* HTTP version is not supported */
41 ERR_INVALID_REQ,
42 ERR_UNSUP_REQ,
43 ERR_INVALID_URL,
44 ERR_ZERO_SIZE_OBJECT,
45 ERR_PRECONDITION_FAILED,
46 ERR_CONFLICT_HOST,
47
48 /* FTP Errors */
49 ERR_FTP_DISABLED,
50 ERR_FTP_UNAVAILABLE,
51 ERR_FTP_FAILURE,
52 ERR_FTP_PUT_ERROR,
53 ERR_FTP_NOT_FOUND,
54 ERR_FTP_FORBIDDEN,
55 ERR_FTP_PUT_CREATED, /* !error,a note that the file was created */
56 ERR_FTP_PUT_MODIFIED, /* modified, !created */
57
58 /* ESI Errors */
59 ERR_ESI, /* Failure to perform ESI processing */
60
61 /* ICAP Errors */
62 ERR_ICAP_FAILURE,
63
64 /* Squid problem */
65 ERR_GATEWAY_FAILURE,
66
67 /* Special Cases */
68 ERR_DIR_LISTING, /* Display of remote directory (FTP, Gopher) */
69 ERR_SQUID_SIGNATURE, /* not really an error */
70 ERR_SHUTTING_DOWN,
71 ERR_PROTOCOL_UNKNOWN,
72
73 // NOTE: error types defined below TCP_RESET are optional and do not generate
74 // a log warning if the files are missing
75 TCP_RESET, // Send TCP RST packet instead of error page
76
77 ERR_SECURE_ACCEPT_FAIL, // Rejects the SSL connection intead of error page
78 ERR_REQUEST_START_TIMEOUT, // Aborts the connection instead of error page
79 ERR_REQUEST_PARSE_TIMEOUT, // Aborts the connection instead of error page
80 ERR_RELAY_REMOTE, // Sends server reply instead of error page
81
82 /* Cache Manager GUI can install a manager index/home page */
83 MGR_INDEX,
84
85 ERR_MAX
86 } err_type;
87
88 extern const char *err_type_str[];
89
90 inline
91 err_type
92 errorTypeByName(const char *name)
93 {
94 for (int i = 0; i < ERR_MAX; ++i)
95 if (strcmp(name, err_type_str[i]) == 0)
96 return (err_type)i;
97 return ERR_MAX;
98 }
99
100 inline
101 const char *
102 errorTypeName(err_type err)
103 {
104 if (err < ERR_NONE || err >= ERR_MAX)
105 return "UNKNOWN";
106 return err_type_str[err];
107 }
108
109 #endif /* _SQUID_ERR_TYPE_H */
110