]> git.ipfire.org Git - thirdparty/squid.git/blob - src/err_type.h
SourceFormat Enforcement
[thirdparty/squid.git] / src / err_type.h
1 /*
2 * Copyright (C) 1996-2017 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
80 /* Cache Manager GUI can install a manager index/home page */
81 MGR_INDEX,
82
83 ERR_MAX
84 } err_type;
85
86 extern const char *err_type_str[];
87
88 inline
89 err_type
90 errorTypeByName(const char *name)
91 {
92 for (int i = 0; i < ERR_MAX; ++i)
93 if (strcmp(name, err_type_str[i]) == 0)
94 return (err_type)i;
95 return ERR_MAX;
96 }
97
98 inline
99 const char *
100 errorTypeName(err_type err)
101 {
102 if (err < ERR_NONE || err >= ERR_MAX)
103 return "UNKNOWN";
104 return err_type_str[err];
105 }
106
107 #endif /* _SQUID_ERR_TYPE_H */
108