]> git.ipfire.org Git - thirdparty/squid.git/blame - src/format/ByteCode.h
Cleanup transaction message size logging
[thirdparty/squid.git] / src / format / ByteCode.h
CommitLineData
31971e6a
AJ
1#ifndef _SQUID_FMT_BYTECODE_H
2#define _SQUID_FMT_BYTECODE_H
38e16f92 3
20efa1c2 4/*
38e16f92
AJ
5 * Squid configuration allows users to define custom formats in
6 * several components.
7 * - logging
8 * - external ACL input
9 * - deny page URL
20efa1c2 10 *
38e16f92
AJ
11 * These enumerations and classes define the API for parsing of
12 * format directives to define these patterns. Along with output
13 * functionality to produce formatted buffers.
20efa1c2 14 */
20efa1c2 15
38e16f92
AJ
16namespace Format
17{
20efa1c2 18
20efa1c2 19/*
38e16f92 20 * Bytecodes for the configureable format stuff
20efa1c2
AJ
21 */
22typedef enum {
23 LFT_NONE, /* dummy */
31971e6a
AJ
24
25 /* arbitrary string between tokens */
20efa1c2
AJ
26 LFT_STRING,
27
31971e6a 28 /* client TCP connection remote end details */
20efa1c2
AJ
29 LFT_CLIENT_IP_ADDRESS,
30 LFT_CLIENT_FQDN,
31 LFT_CLIENT_PORT,
20efa1c2 32 LFT_CLIENT_EUI,
20efa1c2 33
31971e6a 34 /* client TCP connection local end details */
8652f8e7 35 LFT_CLIENT_LOCAL_IP,
8652f8e7 36 LFT_CLIENT_LOCAL_PORT,
31971e6a 37 /*LFT_CLIENT_LOCAL_FQDN, (rDNS) */
f123f5e9
CT
38 LFT_CLIENT_LOCAL_TOS,
39 LFT_CLIENT_LOCAL_NFMARK,
31971e6a
AJ
40
41 /* client connection local squid.conf details */
42 LFT_LOCAL_LISTENING_IP,
28417506 43 LFT_LOCAL_LISTENING_PORT,
31971e6a
AJ
44 /*LFT_LOCAL_LISTENING_NAME, (myportname) */
45
46 /* server TCP connection remote end details */
47 LFT_SERVER_IP_ADDRESS,
48 LFT_SERVER_FQDN_OR_PEER_NAME,
49 LFT_SERVER_PORT,
8652f8e7 50
31971e6a 51 /* server TCP connection local end details */
8652f8e7
AJ
52 LFT_SERVER_LOCAL_IP,
53 LFT_SERVER_LOCAL_IP_OLD_27,
54 LFT_SERVER_LOCAL_PORT,
f123f5e9
CT
55 LFT_SERVER_LOCAL_TOS,
56 LFT_SERVER_LOCAL_NFMARK,
20efa1c2 57
31971e6a 58 /* original Request-Line details recieved from client */
f025622f
AJ
59 LFT_CLIENT_REQ_METHOD,
60 LFT_CLIENT_REQ_URI,
61 LFT_CLIENT_REQ_URLPATH,
62 /* LFT_CLIENT_REQ_QUERY, */
63 LFT_CLIENT_REQ_VERSION,
64
31971e6a 65 /* Request-Line details recieved from client (legacy, filtered) */
20efa1c2
AJ
66 LFT_REQUEST_METHOD,
67 LFT_REQUEST_URI,
f025622f
AJ
68 LFT_REQUEST_URLPATH_OLD_31,
69 /*LFT_REQUEST_QUERY, */
70 LFT_REQUEST_VERSION_OLD_2X,
20efa1c2
AJ
71 LFT_REQUEST_VERSION,
72
31971e6a
AJ
73 /* request header details pre-adaptation */
74 LFT_REQUEST_HEADER,
75 LFT_REQUEST_HEADER_ELEM,
76 LFT_REQUEST_ALL_HEADERS,
77
78 /* request header details post-adaptation */
79 LFT_ADAPTED_REQUEST_HEADER,
80 LFT_ADAPTED_REQUEST_HEADER_ELEM,
81 LFT_ADAPTED_REQUEST_ALL_HEADERS,
82
f025622f
AJ
83 /* Request-Line details sent to the server/peer */
84 LFT_SERVER_REQ_METHOD,
85 LFT_SERVER_REQ_URI,
86 LFT_SERVER_REQ_URLPATH,
87 /*LFT_SERVER_REQ_QUERY, */
88 LFT_SERVER_REQ_VERSION,
89
31971e6a 90 /* request meta details */
d6df21d2
AJ
91 LFT_CLIENT_REQUEST_SIZE_TOTAL,
92 LFT_CLIENT_REQUEST_SIZE_HEADERS,
20efa1c2
AJ
93 /*LFT_REQUEST_SIZE_BODY, */
94 /*LFT_REQUEST_SIZE_BODY_NO_TE, */
95
31971e6a
AJ
96 /* original Status-Line details recieved from server */
97 // XXX: todo
98
99 /* Status-Line details sent to the client */
100 // XXX: todo
101
102 /* response Status-Line details (legacy, filtered) */
103 LFT_HTTP_SENT_STATUS_CODE_OLD_30,
104 LFT_HTTP_SENT_STATUS_CODE,
105 LFT_HTTP_RECEIVED_STATUS_CODE,
106 /*LFT_HTTP_STATUS, */
107 LFT_HTTP_BODY_BYTES_READ,
108
109 /* response header details pre-adaptation */
110 LFT_REPLY_HEADER,
111 LFT_REPLY_HEADER_ELEM,
112 LFT_REPLY_ALL_HEADERS,
113
114 /* response header details post-adaptation */
115 /* LFT_ADAPTED_REPLY_HEADER, */
116 /* LFT_ADAPTED_REPLY_HEADER_ELEM, */
117 /* LFT_ADAPTED_REPLY_ALL_HEADERS, */
118
119 /* response meta details */
d6df21d2 120 LFT_ADAPTED_REPLY_SIZE_TOTAL,
20efa1c2
AJ
121 LFT_REPLY_HIGHOFFSET,
122 LFT_REPLY_OBJECTSIZE,
d6df21d2 123 LFT_ADAPTED_REPLY_SIZE_HEADERS,
20efa1c2
AJ
124 /*LFT_REPLY_SIZE_BODY, */
125 /*LFT_REPLY_SIZE_BODY_NO_TE, */
126
d6df21d2
AJ
127 LFT_CLIENT_IO_SIZE_TOTAL,
128
31971e6a
AJ
129 /* client credentials */
130 LFT_USER_NAME, /* any source will do */
131 LFT_USER_LOGIN,
132 LFT_USER_IDENT,
133 /*LFT_USER_REALM, */
134 /*LFT_USER_SCHEME, */
135 LFT_USER_EXTERNAL,
136 /* LFT_USER_SSL_CERT, */
137
138 /* global time details */
139 LFT_TIME_SECONDS_SINCE_EPOCH,
140 LFT_TIME_SUBSECOND,
141 LFT_TIME_LOCALTIME,
142 LFT_TIME_GMT,
143
144 /* processing time details */
145 LFT_TIME_TO_HANDLE_REQUEST,
146 LFT_PEER_RESPONSE_TIME,
147 LFT_TOTAL_SERVER_SIDE_RESPONSE_TIME,
148 LFT_DNS_WAIT_TIME,
149
150 /* Squid internal processing details */
151 LFT_SQUID_STATUS,
152 LFT_SQUID_ERROR,
153 LFT_SQUID_ERROR_DETAIL,
154 LFT_SQUID_HIERARCHY,
155
156 LFT_MIME_TYPE,
20efa1c2 157 LFT_TAG,
20efa1c2
AJ
158 LFT_EXT_LOG,
159
160 LFT_SEQUENCE_NUMBER,
161
162#if USE_ADAPTATION
31971e6a
AJ
163 LFT_ADAPTATION_SUM_XACT_TIMES,
164 LFT_ADAPTATION_ALL_XACT_TIMES,
ed231061
AR
165 LFT_ADAPTATION_LAST_HEADER,
166 LFT_ADAPTATION_LAST_HEADER_ELEM,
167 LFT_ADAPTATION_LAST_ALL_HEADERS,
20efa1c2
AJ
168#endif
169
170#if ICAP_CLIENT
171
172 LFT_ICAP_TOTAL_TIME,
20efa1c2
AJ
173
174 LFT_ICAP_ADDR,
175 LFT_ICAP_SERV_NAME,
176 LFT_ICAP_REQUEST_URI,
177 LFT_ICAP_REQUEST_METHOD,
178 LFT_ICAP_BYTES_SENT,
179 LFT_ICAP_BYTES_READ,
180 LFT_ICAP_BODY_BYTES_READ,
181
182 LFT_ICAP_REQ_HEADER,
183 LFT_ICAP_REQ_HEADER_ELEM,
184 LFT_ICAP_REQ_ALL_HEADERS,
185
186 LFT_ICAP_REP_HEADER,
187 LFT_ICAP_REP_HEADER_ELEM,
188 LFT_ICAP_REP_ALL_HEADERS,
189
190 LFT_ICAP_TR_RESPONSE_TIME,
191 LFT_ICAP_IO_TIME,
192 LFT_ICAP_OUTCOME,
193 LFT_ICAP_STATUS_CODE,
194#endif
195
08097970
AR
196#if USE_SSL
197 LFT_SSL_BUMP_MODE,
f4698e0b
CT
198 LFT_SSL_USER_CERT_SUBJECT,
199 LFT_SSL_USER_CERT_ISSUER,
08097970
AR
200#endif
201
d7f4a0b7 202 LFT_NOTE,
20efa1c2 203 LFT_PERCENT /* special string cases for escaped chars */
38e16f92 204} ByteCode_t;
20efa1c2 205
38e16f92
AJ
206/// Quoting style for a format output.
207enum Quoting {
20efa1c2
AJ
208 LOG_QUOTE_NONE = 0,
209 LOG_QUOTE_QUOTES,
210 LOG_QUOTE_MIMEBLOB,
211 LOG_QUOTE_URL,
212 LOG_QUOTE_RAW
213};
214
38e16f92 215} // namespace Format
20efa1c2 216
31971e6a 217#endif /* _SQUID_FMT_BYTECODE_H */