]> git.ipfire.org Git - thirdparty/squid.git/blob - src/err_detail_type.h
MemBuf implements Packable interface
[thirdparty/squid.git] / src / err_detail_type.h
1 /*
2 * Copyright (C) 1996-2015 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_DETAIL_H
10 #define _SQUID_ERR_DETAIL_H
11
12 typedef enum {
13 ERR_DETAIL_NONE,
14 ERR_DETAIL_START = 100000, // to avoid clashes with most OS error numbers
15 ERR_DETAIL_REDIRECTOR_TIMEDOUT = ERR_DETAIL_START, // External redirector request timed-out
16 ERR_DETAIL_CLT_REQMOD_ABORT, // client-facing code detected transaction abort
17 ERR_DETAIL_CLT_REQMOD_REQ_BODY, // client-facing code detected REQMOD request body adaptation failure
18 ERR_DETAIL_CLT_REQMOD_RESP_BODY, // client-facing code detected REQMOD satisfaction reply body failure
19 ERR_DETAIL_SRV_REQMOD_REQ_BODY, // server-facing code detected REQMOD request body abort
20 ERR_DETAIL_ICAP_RESPMOD_EARLY, // RESPMOD failed w/o store entry
21 ERR_DETAIL_ICAP_RESPMOD_LATE, // RESPMOD failed with a store entry
22 ERR_DETAIL_REQMOD_BLOCK, // REQMOD denied client access
23 ERR_DETAIL_RESPMOD_BLOCK_EARLY, // RESPMOD denied client access to HTTP response, before any part of the response was sent
24 ERR_DETAIL_RESPMOD_BLOCK_LATE, // RESPMOD denied client access to HTTP response, after [a part of] the response was sent
25 ERR_DETAIL_ICAP_XACT_START, // transaction start failure
26 ERR_DETAIL_ICAP_XACT_BODY_CONSUMER_ABORT, // transaction body consumer gone
27 ERR_DETAIL_ICAP_INIT_GONE, // initiator gone
28 ERR_DETAIL_ICAP_XACT_CLOSE, // ICAP connection closed unexpectedly
29 ERR_DETAIL_ICAP_XACT_OTHER, // other ICAP transaction errors
30 ERR_DETAIL_EXCEPTION_OTHER, //other errors ( eg std C++ lib errors)
31 ERR_DETAIL_MAX,
32 ERR_DETAIL_EXCEPTION_START = 110000 // offset for exception ID details
33 } err_detail_type;
34
35 extern const char *err_detail_type_str[];
36
37 inline
38 const char *errorDetailName(int errDetailId)
39 {
40 if (errDetailId < ERR_DETAIL_START)
41 return "SYSERR";
42
43 if (errDetailId < ERR_DETAIL_MAX)
44 return err_detail_type_str[errDetailId-ERR_DETAIL_START+2];
45
46 if (errDetailId >=ERR_DETAIL_EXCEPTION_START)
47 return "EXCEPTION";
48
49 return "UNKNOWN";
50 }
51
52 #endif
53