]> git.ipfire.org Git - thirdparty/squid.git/blame - src/enums.h
buffer error pages
[thirdparty/squid.git] / src / enums.h
CommitLineData
f892c2bf 1
2
3typedef enum {
79a15e0a 4 LOG_TAG_NONE,
5 LOG_TCP_HIT,
6 LOG_TCP_MISS,
7 LOG_TCP_REFRESH_HIT,
8 LOG_TCP_REFRESH_FAIL_HIT,
9 LOG_TCP_REFRESH_MISS,
ee1679df 10 LOG_TCP_CLIENT_REFRESH_MISS,
79a15e0a 11 LOG_TCP_IMS_HIT,
12 LOG_TCP_IMS_MISS,
13 LOG_TCP_SWAPFAIL_MISS,
14 LOG_TCP_NEGATIVE_HIT,
15 LOG_TCP_MEM_HIT,
16 LOG_TCP_DENIED,
17 LOG_UDP_HIT,
79a15e0a 18 LOG_UDP_MISS,
19 LOG_UDP_DENIED,
20 LOG_UDP_INVALID,
21 LOG_UDP_MISS_NOFETCH,
071a3ae7 22 LOG_ICP_QUERY,
79a15e0a 23 LOG_TYPE_MAX
f892c2bf 24} log_type;
25
9b312a19 26typedef enum {
27 ERR_NONE,
28 ERR_READ_TIMEOUT,
29 ERR_LIFETIME_EXP,
9b312a19 30 ERR_READ_ERROR,
31 ERR_WRITE_ERROR,
32 ERR_CLIENT_ABORT,
33 ERR_CONNECT_FAIL,
34 ERR_INVALID_REQ,
35 ERR_UNSUP_REQ,
36 ERR_INVALID_URL,
37 ERR_SOCKET_FAILURE,
38 ERR_DNS_FAIL,
9b312a19 39 ERR_CANNOT_FORWARD,
bdb3c273 40 ERR_FORWARDING_DENIED,
9b312a19 41 ERR_NO_RELAY,
9b312a19 42 ERR_ZERO_SIZE_OBJECT,
43 ERR_FTP_DISABLED,
b9916917 44 ERR_FTP_FAILURE,
23d92c64 45 ERR_URN_RESOLVE,
9b312a19 46 ERR_ACCESS_DENIED,
cb69b4c7 47 ERR_CACHE_ACCESS_DENIED,
63259c34 48 ERR_CACHE_MGR_ACCESS_DENIED,
2ac76861 49 ERR_SQUID_SIGNATURE, /* not really an error */
ec878047 50 ERR_FTP_PUT_CREATED, /* !error,a note that the file was created */
59c4d35b 51 ERR_FTP_PUT_MODIFIED, /* modified, !created */
52 ERR_FTP_PUT_ERROR,
ec878047 53 ERR_ONLY_IF_CACHED_MISS, /* failure to satisfy only-if-cached request */
9b312a19 54 ERR_MAX
55} err_type;
56
f892c2bf 57typedef enum {
58 ACL_NONE,
59 ACL_SRC_IP,
60 ACL_DST_IP,
61 ACL_SRC_DOMAIN,
62 ACL_DST_DOMAIN,
d0d41f07 63 ACL_SRC_DOM_REGEX,
64 ACL_DST_DOM_REGEX,
f892c2bf 65 ACL_TIME,
66 ACL_URLPATH_REGEX,
67 ACL_URL_REGEX,
68 ACL_URL_PORT,
69 ACL_USER,
70 ACL_PROTO,
71 ACL_METHOD,
72 ACL_BROWSER,
afe95a7e 73 ACL_PROXY_AUTH,
5d6c7aad 74 ACL_SRC_ASN,
75 ACL_DST_ASN,
6b6347d5 76 ACL_SRC_ARP,
43d4303e 77 ACL_SNMP_COMM,
bd05e3e3 78 ACL_NETDB_SRC_RTT,
f892c2bf 79 ACL_ENUM_MAX
80} squid_acl;
81
82typedef enum {
83 ACL_LOOKUP_NONE,
84 ACL_LOOKUP_NEEDED,
85 ACL_LOOKUP_PENDING,
86 ACL_LOOKUP_DONE
87} acl_lookup_state;
88
89typedef enum {
90 IP_ALLOW,
91 IP_DENY
92} ip_access_type;
93
94enum {
95 FD_NONE,
96 FD_LOG,
97 FD_FILE,
98 FD_SOCKET,
99 FD_PIPE,
100 FD_UNKNOWN
101};
102
103enum {
104 FD_READ,
105 FD_WRITE
106};
107
108enum {
109 FD_CLOSE,
110 FD_OPEN
111};
112
113enum {
114 FQDN_CACHED,
115 FQDN_NEGATIVE_CACHED,
116 FQDN_PENDING, /* waiting to be dispatched */
117 FQDN_DISPATCHED /* waiting for reply from dnsserver */
118};
119typedef unsigned int fqdncache_status_t;
120
121enum {
122 IP_CACHED,
123 IP_NEGATIVE_CACHED,
124 IP_PENDING, /* waiting to be dispatched */
125 IP_DISPATCHED /* waiting for reply from dnsserver */
126};
127typedef unsigned int ipcache_status_t;
128
129typedef enum {
130 PEER_NONE,
131 PEER_SIBLING,
132 PEER_PARENT,
133 PEER_MULTICAST
134} peer_t;
135
9fdfc93e 136typedef enum {
137 PEER_SA_NONE,
138 PEER_SA_DIGEST,
139 PEER_SA_ICP
140} peer_select_alg_t;
141
142typedef enum {
143 LOOKUP_NONE,
144 LOOKUP_HIT,
4b4cd312 145 LOOKUP_MISS
9fdfc93e 146} lookup_t;
147
f892c2bf 148typedef enum {
149 MGR_NONE,
150 MGR_CLIENT_LIST,
f53b06f9 151 MGR_CONFIGURATION,
f892c2bf 152 MGR_DNSSERVERS,
153 MGR_FILEDESCRIPTORS,
154 MGR_FQDNCACHE,
155 MGR_INFO,
156 MGR_IO,
157 MGR_IPCACHE,
158 MGR_LOG_CLEAR,
159 MGR_LOG_DISABLE,
160 MGR_LOG_ENABLE,
161 MGR_LOG_STATUS,
162 MGR_LOG_VIEW,
163 MGR_NETDB,
164 MGR_OBJECTS,
165 MGR_REDIRECTORS,
166 MGR_REFRESH,
167 MGR_REMOVE,
cb69b4c7 168 MGR_REQUEST_HDRS,
f892c2bf 169 MGR_REPLY_HDRS,
cb69b4c7 170 MGR_MSG_HDRS,
f892c2bf 171 MGR_SERVER_LIST,
e102ebda 172 MGR_NON_PEERS,
f892c2bf 173 MGR_SHUTDOWN,
174 MGR_UTILIZATION,
175 MGR_VM_OBJECTS,
176 MGR_STOREDIR,
177 MGR_CBDATA,
6605655c 178 MGR_PCONN,
0f5607d9 179 MGR_COUNTERS,
20903cac 180 MGR_5MIN,
a7c05555 181 MGR_60MIN,
3f6c0fb2 182 MGR_MEM,
f892c2bf 183 MGR_MAX
184} objcache_op;
185
4f087419 186/* recognized or "known" header fields; @?@ add more! */
187typedef enum {
188 HDR_ACCEPT,
d8b249ef 189 HDR_ACCEPT_CHARSET,
190 HDR_ACCEPT_ENCODING,
191 HDR_ACCEPT_LANGUAGE,
de336bbe 192 HDR_ACCEPT_RANGES,
4f087419 193 HDR_AGE,
194 HDR_CACHE_CONTROL,
195 HDR_CONNECTION,
196 HDR_CONTENT_ENCODING,
197 HDR_CONTENT_LENGTH,
198 HDR_CONTENT_MD5,
d76fcfa7 199 HDR_CONTENT_RANGE,
4f087419 200 HDR_CONTENT_TYPE,
201 HDR_DATE,
202 HDR_ETAG,
203 HDR_EXPIRES,
204 HDR_HOST,
205 HDR_IMS,
206 HDR_LAST_MODIFIED,
207 HDR_LOCATION,
208 HDR_MAX_FORWARDS,
d8b249ef 209 HDR_MIME_VERSION,
4f087419 210 HDR_PROXY_AUTHENTICATE,
211 HDR_PUBLIC,
02922e76 212 HDR_RANGE,
4f087419 213 HDR_RETRY_AFTER,
de336bbe 214 HDR_SERVER,
4f087419 215 HDR_SET_COOKIE,
216 HDR_UPGRADE,
217 HDR_WARNING,
218 HDR_WWW_AUTHENTICATE,
de336bbe 219 HDR_X_CACHE,
4b4cd312 220 HDR_X_CACHE_LOOKUP, /* tmp hack, remove later */
d8b249ef 221 HDR_PROXY_CONNECTION,
4f087419 222 HDR_OTHER,
223 HDR_ENUM_END
224} http_hdr_type;
225
226/* server cache-control */
227typedef enum {
7faf2bdb 228 CC_PUBLIC,
229 CC_PRIVATE,
230 CC_NO_CACHE,
231 CC_NO_STORE,
232 CC_NO_TRANSFORM,
233 CC_MUST_REVALIDATE,
234 CC_PROXY_REVALIDATE,
235 CC_MAX_AGE,
d8b249ef 236 CC_ONLY_IF_CACHED,
237 CC_OTHER,
7faf2bdb 238 CC_ENUM_END
239} http_hdr_cc_type;
240
241/* possible types for http header fields */
242typedef enum {
399e85ea 243 ftInvalid = HDR_ENUM_END, /* to catch nasty errors with hdr_id<->fld_type clashes */
7faf2bdb 244 ftInt,
4f7e9dbb 245 ftStr,
7faf2bdb 246 ftDate_1123,
02922e76 247 ftPCc,
248 ftPRange,
e17bd982 249 ftPContRange
7faf2bdb 250} field_type;
4f087419 251
f892c2bf 252typedef enum {
253 HIER_NONE,
254 DIRECT,
255 SIBLING_HIT,
256 PARENT_HIT,
257 DEFAULT_PARENT,
258 SINGLE_PARENT,
259 FIRSTUP_PARENT,
260 NO_PARENT_DIRECT,
261 FIRST_PARENT_MISS,
262 CLOSEST_PARENT_MISS,
263 CLOSEST_DIRECT,
264 NO_DIRECT_FAIL,
265 SOURCE_FASTEST,
f892c2bf 266 ROUNDROBIN_PARENT,
6cfa8966 267#if USE_CACHE_DIGESTS
c127134a 268 CACHE_DIGEST_HIT,
285f75ea 269 NO_CACHE_DIGEST_DIRECT,
c127134a 270#endif
f892c2bf 271 HIER_MAX
272} hier_code;
273
274typedef enum {
27cd7235 275 ICP_INVALID,
276 ICP_QUERY,
277 ICP_HIT,
278 ICP_MISS,
279 ICP_ERR,
280 ICP_SEND,
281 ICP_SENDA,
282 ICP_DATABEG,
283 ICP_DATA,
284 ICP_DATAEND,
285 ICP_SECHO,
286 ICP_DECHO,
287 ICP_UNUSED12,
288 ICP_UNUSED13,
289 ICP_UNUSED14,
290 ICP_UNUSED15,
291 ICP_UNUSED16,
292 ICP_UNUSED17,
293 ICP_UNUSED18,
294 ICP_UNUSED19,
295 ICP_UNUSED20,
296 ICP_MISS_NOFETCH,
da2d50d1 297 ICP_DENIED,
27cd7235 298 ICP_HIT_OBJ,
299 ICP_END
f892c2bf 300} icp_opcode;
301
302enum {
303 NOT_IN_MEMORY,
f892c2bf 304 IN_MEMORY
305};
306
307enum {
308 PING_NONE,
309 PING_WAITING,
310 PING_TIMEOUT,
311 PING_DONE
312};
313
314enum {
315 STORE_OK,
316 STORE_PENDING,
317 STORE_ABORTED
318};
319
320enum {
8350fe9b 321 SWAPOUT_NONE,
322 SWAPOUT_OPENING,
323 SWAPOUT_WRITING,
324 SWAPOUT_DONE
f892c2bf 325};
326
74ac2ecb 327enum {
5d86029a 328 STORE_NON_CLIENT,
329 STORE_MEM_CLIENT,
330 STORE_DISK_CLIENT
74ac2ecb 331};
332
f892c2bf 333enum {
334 METHOD_NONE, /* 000 */
335 METHOD_GET, /* 001 */
336 METHOD_POST, /* 010 */
337 METHOD_PUT, /* 011 */
338 METHOD_HEAD, /* 100 */
339 METHOD_CONNECT, /* 101 */
340 METHOD_TRACE, /* 110 */
710bd872 341 METHOD_PURGE, /* 111 */
342 METHOD_ENUM_END
f892c2bf 343};
344typedef unsigned int method_t;
345
346typedef enum {
347 PROTO_NONE,
348 PROTO_HTTP,
349 PROTO_FTP,
350 PROTO_GOPHER,
351 PROTO_WAIS,
352 PROTO_CACHEOBJ,
353 PROTO_ICP,
23d92c64 354 PROTO_URN,
53ad48e6 355 PROTO_WHOIS,
f892c2bf 356 PROTO_MAX
357} protocol_t;
9b312a19 358
359typedef enum {
360 HTTP_CONTINUE = 100,
361 HTTP_SWITCHING_PROTOCOLS = 101,
362 HTTP_OK = 200,
363 HTTP_CREATED = 201,
364 HTTP_ACCEPTED = 202,
365 HTTP_NON_AUTHORITATIVE_INFORMATION = 203,
366 HTTP_NO_CONTENT = 204,
367 HTTP_RESET_CONTENT = 205,
368 HTTP_PARTIAL_CONTENT = 206,
369 HTTP_MULTIPLE_CHOICES = 300,
370 HTTP_MOVED_PERMANENTLY = 301,
371 HTTP_MOVED_TEMPORARILY = 302,
372 HTTP_SEE_OTHER = 303,
373 HTTP_NOT_MODIFIED = 304,
374 HTTP_USE_PROXY = 305,
375 HTTP_BAD_REQUEST = 400,
376 HTTP_UNAUTHORIZED = 401,
377 HTTP_PAYMENT_REQUIRED = 402,
378 HTTP_FORBIDDEN = 403,
379 HTTP_NOT_FOUND = 404,
380 HTTP_METHOD_NOT_ALLOWED = 405,
381 HTTP_NOT_ACCEPTABLE = 406,
382 HTTP_PROXY_AUTHENTICATION_REQUIRED = 407,
383 HTTP_REQUEST_TIMEOUT = 408,
384 HTTP_CONFLICT = 409,
385 HTTP_GONE = 410,
386 HTTP_LENGTH_REQUIRED = 411,
387 HTTP_PRECONDITION_FAILED = 412,
388 HTTP_REQUEST_ENTITY_TOO_LARGE = 413,
389 HTTP_REQUEST_URI_TOO_LARGE = 414,
390 HTTP_UNSUPPORTED_MEDIA_TYPE = 415,
391 HTTP_INTERNAL_SERVER_ERROR = 500,
392 HTTP_NOT_IMPLEMENTED = 501,
393 HTTP_BAD_GATEWAY = 502,
394 HTTP_SERVICE_UNAVAILABLE = 503,
395 HTTP_GATEWAY_TIMEOUT = 504,
cb69b4c7 396 HTTP_HTTP_VERSION_NOT_SUPPORTED = 505,
ee1679df 397 HTTP_INVALID_HEADER = 600 /* Squid header parsing error */
9b312a19 398} http_status;
79a15e0a 399
9fdfc93e 400enum {
4b4cd312 401 PD_INITED, /* initialized */
402 PD_USABLE, /* ready to use */
403 PD_REQUESTED, /* we are in the process of receiving a [fresh] digest */
404 PD_DISABLED /* do not use/validate the digest */
9fdfc93e 405} peer_cd_t;
406
754b687d 407/* These are for StoreEntry->flag, which is defined as a SHORT */
79a15e0a 408enum {
409 ENTRY_SPECIAL,
79a15e0a 410 ENTRY_REVALIDATE,
411 DELAY_SENDING,
79a15e0a 412 RELEASE_REQUEST,
413 REFRESH_REQUEST,
414 ENTRY_CACHABLE,
79a15e0a 415 ENTRY_DISPATCHED,
416 KEY_PRIVATE,
417 HIERARCHICAL,
418 ENTRY_NEGCACHED,
b34ed725 419 ENTRY_VALIDATED,
420 ENTRY_BAD_LENGTH
79a15e0a 421};
422
79a15e0a 423enum {
fc5d6f7f 424 HTTP_PROXYING,
425 HTTP_KEEPALIVE
79a15e0a 426};
427
428enum {
fc5d6f7f 429 ERR_FLAG_CBDATA
79a15e0a 430};
431
77ed547a 432/*
433 * These are request_t->flags
434 */
79a15e0a 435enum {
436 REQ_RANGE,
437 REQ_NOCACHE,
438 REQ_IMS,
439 REQ_AUTH,
440 REQ_CACHABLE,
79a15e0a 441 REQ_HIERARCHICAL,
442 REQ_LOOPDETECT,
443 REQ_PROXY_KEEPALIVE,
444 REQ_PROXYING,
445 REQ_REFRESH,
4e41e277 446 REQ_USED_PROXY_AUTH,
77ed547a 447 REQ_CC_ONLY_IF_CACHED,
448 REQ_REDIRECTED
79a15e0a 449};
450
451enum {
452 FD_CLOSE_REQUEST,
453 FD_WRITE_DAEMON,
79a15e0a 454 FD_CLOSING,
455 FD_SOCKET_EOF
456};
457
458enum {
459 HELPER_ALIVE,
460 HELPER_BUSY,
e144eae4 461 HELPER_CLOSING,
462 HELPER_SHUTDOWN
79a15e0a 463};
464
465enum {
466 NEIGHBOR_PROXY_ONLY,
467 NEIGHBOR_NO_QUERY,
8638fc66 468 NEIGHBOR_NO_DIGEST,
79a15e0a 469 NEIGHBOR_DEFAULT_PARENT,
470 NEIGHBOR_ROUNDROBIN,
471 NEIGHBOR_MCAST_RESPONDER,
e8d185d2 472 NEIGHBOR_CLOSEST_ONLY,
dc9d133b 473#if USE_HTCP
3278f8a2 474 NEIGHBOR_HTCP,
dc9d133b 475#endif
3278f8a2 476 NEIGHBOR_END
79a15e0a 477};
fc5d6f7f 478
479typedef enum {
480 ACCESS_DENIED,
481 ACCESS_ALLOWED,
482 ACCESS_REQ_PROXY_AUTH
483} allow_t;
a97cfa48 484
3f6c0fb2 485#if SQUID_SNMP
a97cfa48 486enum {
be335c22 487 SNMP_C_VIEW,
488 SNMP_C_USER,
489 SNMP_C_COMMUNITY
a97cfa48 490};
067bea91 491
3f6c0fb2 492#endif
493
494typedef enum {
067bea91 495 MEM_NONE,
496 MEM_DISK_BUF,
497 MEM_STMEM_BUF,
498 MEM_4K_BUF,
499 MEM_8K_BUF,
500 MEM_ACL_IP_DATA,
501 MEM_ACL_TIME_DATA,
502 MEM_ACL_NAME_LIST,
503 MEM_ACL_DENY_INFO_LIST,
504 MEM_ACL,
067bea91 505 MEM_ACL_LIST,
506 MEM_ACL_ACCESS,
ec878047 507 MEM_ACL_PROXY_AUTH_USER,
067bea91 508 MEM_ACLCHECK_T,
509 MEM_AIO_RESULT_T,
510 MEM_WORDLIST,
511 MEM_INTLIST,
512 MEM_USHORTLIST,
513 MEM_RELIST,
514 MEM_SQUIDCONFIG,
515 MEM_SQUIDCONFIG2,
516 MEM_CLOSE_HANDLER,
517 MEM_DREAD_CTRL,
518 MEM_DNSSERVER_T,
519 MEM_DNSSTATDATA,
520 MEM_DWRITE_Q,
521 MEM_FILEMAP,
522 MEM_FQDNCACHE_ENTRY,
59c4d35b 523 MEM_FQDNCACHE_PENDING,
067bea91 524 MEM_HASH_LINK,
525 MEM_HASH_TABLE,
d8b249ef 526 MEM_HTTP_REPLY,
527 MEM_HTTP_HDR_ENTRY,
7faf2bdb 528 MEM_HTTP_HDR_CC,
b5107edb 529 MEM_HTTP_HDR_RANGE_SPEC,
530 MEM_HTTP_HDR_RANGE,
d76fcfa7 531 MEM_HTTP_HDR_CONTENT_RANGE,
cb87dab6 532 MEM_HTTP_STATE_DATA,
067bea91 533 MEM_ICPUDPDATA,
534 MEM_CLIENTHTTPREQUEST,
535 MEM_CONNSTATEDATA,
59c4d35b 536 MEM_IPCACHE_PENDING,
067bea91 537 MEM_IPCACHE_ENTRY,
538 MEM_DOMAIN_PING,
539 MEM_DOMAIN_TYPE,
9fdfc93e 540 MEM_DIGEST_FETCH_STATE,
067bea91 541 MEM_PEER,
542 MEM_NET_DB_NAME,
543 MEM_NET_DB_PEER,
544 MEM_NETDBENTRY,
545 MEM_ICP_PING_DATA,
546 MEM_PS_STATE,
547 MEM_HIERARCHYLOGENTRY,
548 MEM_PINGERECHODATA,
549 MEM_PINGERREPLYDATA,
550 MEM_ICP_COMMON_T,
067bea91 551 MEM_IOSTATS,
552 MEM_MEM_NODE,
553 MEM_MEM_HDR,
554 MEM_STORE_CLIENT,
555 MEM_MEMOBJECT,
556 MEM_STOREENTRY,
557 MEM_SWAPDIR,
558 MEM_REQUEST_T,
559 MEM_ACCESSLOGENTRY,
9fdfc93e 560 MEM_CACHE_DIGEST,
067bea91 561 MEM_CACHEMGR_PASSWD,
562 MEM_REFRESH_T,
563 MEM_COMMWRITESTATEDATA,
564 MEM_ERRORSTATE,
565 MEM_DLINK_NODE,
566 MEM_DLINK_LIST,
567 MEM_STATCOUNTERS,
59c4d35b 568 MEM_CLIENT_INFO,
067bea91 569 MEM_MAX
3f6c0fb2 570} mem_type;
a21fbb54 571
69c01cd7 572/*
573 * NOTE! We must preserve the order of this list!
574 */
a21fbb54 575enum {
f09f5b26 576 STORE_META_VOID, /* should not come up */
577 STORE_META_KEY_URL, /* key w/ keytype */
578 STORE_META_KEY_SHA,
579 STORE_META_KEY_MD5,
580 STORE_META_URL, /* the url , if not in the header */
581 STORE_META_STD, /* standard metadata */
582 STORE_META_HITMETERING, /* reserved for hit metering */
69c01cd7 583 STORE_META_VALID,
584 STORE_META_END
f09f5b26 585};
586
587enum {
5830cdb3 588 STORE_LOG_CREATE,
589 STORE_LOG_SWAPIN,
590 STORE_LOG_SWAPOUT,
591 STORE_LOG_RELEASE
592};
593
b109de6b 594typedef enum {
5830cdb3 595 SWAP_LOG_NOP,
596 SWAP_LOG_ADD,
b109de6b 597 SWAP_LOG_DEL,
598 SWAP_LOG_MAX
599} swap_log_op;
adba4a64 600
601
602/* parse state of HttpReply or HttpRequest */
2ac76861 603typedef enum {
604 psReadyToParseStartLine = 0,
605 psReadyToParseHeaders,
606 psParsed,
607 psError
adba4a64 608} HttpMsgParseState;
b87b92fb 609
610
611enum {
612 MEDIAN_HTTP,
613 MEDIAN_ICP_QUERY,
614 MEDIAN_DNS,
615 MEDIAN_HIT,
616 MEDIAN_MISS,
617 MEDIAN_NM,
618 MEDIAN_ICP_REPLY
619};
071a3ae7 620
621enum {
622 SENT,
623 RECV
624};