]>
Commit | Line | Data |
---|---|---|
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 |
16 | namespace Format |
17 | { | |
20efa1c2 | 18 | |
20efa1c2 | 19 | /* |
38e16f92 | 20 | * Bytecodes for the configureable format stuff |
20efa1c2 AJ |
21 | */ |
22 | typedef 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. |
207 | enum 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 */ |