]> git.ipfire.org Git - thirdparty/squid.git/blame - src/enums.h
External acl extensions:
[thirdparty/squid.git] / src / enums.h
CommitLineData
f892c2bf 1
9cef6668 2/*
ec4daaa5 3 * $Id: enums.h,v 1.231 2003/04/24 06:35:09 hno Exp $
9cef6668 4 *
5 *
2b6662ba 6 * SQUID Web Proxy Cache http://www.squid-cache.org/
9cef6668 7 * ----------------------------------------------------------
8 *
2b6662ba 9 * Squid is the result of efforts by numerous individuals from
10 * the Internet community; see the CONTRIBUTORS file for full
11 * details. Many organizations have provided support for Squid's
12 * development; see the SPONSORS file for full details. Squid is
13 * Copyrighted (C) 2001 by the Regents of the University of
14 * California; see the COPYRIGHT file for full details. Squid
15 * incorporates software developed and/or copyrighted by other
16 * sources; see the CREDITS file for full details.
9cef6668 17 *
18 * This program is free software; you can redistribute it and/or modify
19 * it under the terms of the GNU General Public License as published by
20 * the Free Software Foundation; either version 2 of the License, or
21 * (at your option) any later version.
22 *
23 * This program is distributed in the hope that it will be useful,
24 * but WITHOUT ANY WARRANTY; without even the implied warranty of
25 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
26 * GNU General Public License for more details.
27 *
28 * You should have received a copy of the GNU General Public License
29 * along with this program; if not, write to the Free Software
30 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA.
31 *
32 */
f892c2bf 33
b5638623 34#ifndef SQUID_ENUMS_H
35#define SQUID_ENUMS_H
36
9bea1d5b 37typedef enum {
79a15e0a 38 LOG_TAG_NONE,
39 LOG_TCP_HIT,
40 LOG_TCP_MISS,
41 LOG_TCP_REFRESH_HIT,
42 LOG_TCP_REFRESH_FAIL_HIT,
43 LOG_TCP_REFRESH_MISS,
ee1679df 44 LOG_TCP_CLIENT_REFRESH_MISS,
79a15e0a 45 LOG_TCP_IMS_HIT,
79a15e0a 46 LOG_TCP_SWAPFAIL_MISS,
47 LOG_TCP_NEGATIVE_HIT,
48 LOG_TCP_MEM_HIT,
49 LOG_TCP_DENIED,
b540e168 50 LOG_TCP_OFFLINE_HIT,
efd900cb 51#if LOG_TCP_REDIRECTS
52 LOG_TCP_REDIRECT,
53#endif
79a15e0a 54 LOG_UDP_HIT,
79a15e0a 55 LOG_UDP_MISS,
56 LOG_UDP_DENIED,
57 LOG_UDP_INVALID,
58 LOG_UDP_MISS_NOFETCH,
071a3ae7 59 LOG_ICP_QUERY,
79a15e0a 60 LOG_TYPE_MAX
9bea1d5b 61} log_type;
f892c2bf 62
9bea1d5b 63typedef enum {
9b312a19 64 ERR_NONE,
65 ERR_READ_TIMEOUT,
66 ERR_LIFETIME_EXP,
9b312a19 67 ERR_READ_ERROR,
68 ERR_WRITE_ERROR,
05b744f3 69 ERR_SHUTTING_DOWN,
9b312a19 70 ERR_CONNECT_FAIL,
71 ERR_INVALID_REQ,
72 ERR_UNSUP_REQ,
73 ERR_INVALID_URL,
74 ERR_SOCKET_FAILURE,
75 ERR_DNS_FAIL,
9b312a19 76 ERR_CANNOT_FORWARD,
bdb3c273 77 ERR_FORWARDING_DENIED,
9b312a19 78 ERR_NO_RELAY,
9b312a19 79 ERR_ZERO_SIZE_OBJECT,
80 ERR_FTP_DISABLED,
b9916917 81 ERR_FTP_FAILURE,
23d92c64 82 ERR_URN_RESOLVE,
9b312a19 83 ERR_ACCESS_DENIED,
cb69b4c7 84 ERR_CACHE_ACCESS_DENIED,
63259c34 85 ERR_CACHE_MGR_ACCESS_DENIED,
2ac76861 86 ERR_SQUID_SIGNATURE, /* not really an error */
ec878047 87 ERR_FTP_PUT_CREATED, /* !error,a note that the file was created */
59c4d35b 88 ERR_FTP_PUT_MODIFIED, /* modified, !created */
89 ERR_FTP_PUT_ERROR,
b6a2f15e 90 ERR_FTP_NOT_FOUND,
91 ERR_FTP_FORBIDDEN,
92 ERR_FTP_UNAVAILABLE,
ec878047 93 ERR_ONLY_IF_CACHED_MISS, /* failure to satisfy only-if-cached request */
0483b991 94 ERR_TOO_BIG,
76cdc28d 95 TCP_RESET,
43ae1d95 96 ERR_ESI, /* Failure to perform ESI processing */
9b312a19 97 ERR_MAX
9bea1d5b 98} err_type;
9b312a19 99
528b2c61 100enum fd_type {
f892c2bf 101 FD_NONE,
102 FD_LOG,
103 FD_FILE,
104 FD_SOCKET,
105 FD_PIPE,
106 FD_UNKNOWN
9bea1d5b 107};
f892c2bf 108
9bea1d5b 109enum {
f892c2bf 110 FD_READ,
111 FD_WRITE
9bea1d5b 112};
f892c2bf 113
9bea1d5b 114typedef enum {
f892c2bf 115 PEER_NONE,
116 PEER_SIBLING,
117 PEER_PARENT,
118 PEER_MULTICAST
9bea1d5b 119} peer_t;
f892c2bf 120
9bea1d5b 121typedef enum {
9fdfc93e 122 LOOKUP_NONE,
123 LOOKUP_HIT,
4b4cd312 124 LOOKUP_MISS
9bea1d5b 125} lookup_t;
9fdfc93e 126
4f087419 127/* recognized or "known" header fields; @?@ add more! */
9bea1d5b 128typedef enum {
e6ccf245 129 HDR_BAD_HDR = -1,
130 HDR_ACCEPT = 0,
d8b249ef 131 HDR_ACCEPT_CHARSET,
132 HDR_ACCEPT_ENCODING,
133 HDR_ACCEPT_LANGUAGE,
de336bbe 134 HDR_ACCEPT_RANGES,
4f087419 135 HDR_AGE,
99edd1c3 136 HDR_ALLOW,
137 HDR_AUTHORIZATION,
4f087419 138 HDR_CACHE_CONTROL,
139 HDR_CONNECTION,
2246b732 140 HDR_CONTENT_BASE,
4f087419 141 HDR_CONTENT_ENCODING,
99edd1c3 142 HDR_CONTENT_LANGUAGE,
4f087419 143 HDR_CONTENT_LENGTH,
2246b732 144 HDR_CONTENT_LOCATION,
4f087419 145 HDR_CONTENT_MD5,
d76fcfa7 146 HDR_CONTENT_RANGE,
4f087419 147 HDR_CONTENT_TYPE,
efd900cb 148 HDR_COOKIE,
4f087419 149 HDR_DATE,
150 HDR_ETAG,
151 HDR_EXPIRES,
99edd1c3 152 HDR_FROM,
4f087419 153 HDR_HOST,
c68e9c6b 154 HDR_IF_MATCH,
99edd1c3 155 HDR_IF_MODIFIED_SINCE,
c68e9c6b 156 HDR_IF_NONE_MATCH,
e17d81d3 157 HDR_IF_RANGE,
4f087419 158 HDR_LAST_MODIFIED,
99edd1c3 159 HDR_LINK,
4f087419 160 HDR_LOCATION,
161 HDR_MAX_FORWARDS,
d8b249ef 162 HDR_MIME_VERSION,
99edd1c3 163 HDR_PRAGMA,
4f087419 164 HDR_PROXY_AUTHENTICATE,
84ecfcb9 165 HDR_PROXY_AUTHENTICATION_INFO,
99edd1c3 166 HDR_PROXY_AUTHORIZATION,
167 HDR_PROXY_CONNECTION,
4f087419 168 HDR_PUBLIC,
02922e76 169 HDR_RANGE,
135171fe 170 HDR_REQUEST_RANGE, /* some clients use this, sigh */
99edd1c3 171 HDR_REFERER,
4f087419 172 HDR_RETRY_AFTER,
de336bbe 173 HDR_SERVER,
4f087419 174 HDR_SET_COOKIE,
99edd1c3 175 HDR_TITLE,
5affedf3 176 HDR_TRANSFER_ENCODING,
4f087419 177 HDR_UPGRADE,
99edd1c3 178 HDR_USER_AGENT,
783e4699 179 HDR_VARY,
99edd1c3 180 HDR_VIA,
4f087419 181 HDR_WARNING,
182 HDR_WWW_AUTHENTICATE,
84ecfcb9 183 HDR_AUTHENTICATION_INFO,
de336bbe 184 HDR_X_CACHE,
4b4cd312 185 HDR_X_CACHE_LOOKUP, /* tmp hack, remove later */
99edd1c3 186 HDR_X_FORWARDED_FOR,
2246b732 187 HDR_X_REQUEST_URI, /* appended if ADD_X_REQUEST_URI is #defined */
fcc62502 188 HDR_X_SQUID_ERROR,
f66a9ef4 189 HDR_NEGOTIATE,
190#if X_ACCELERATOR_VARY
191 HDR_X_ACCELERATOR_VARY,
192#endif
43ae1d95 193 HDR_SURROGATE_CAPABILITY,
194 HDR_SURROGATE_CONTROL,
a7ad6e4e 195 HDR_FRONT_END_HTTPS,
4f087419 196 HDR_OTHER,
197 HDR_ENUM_END
9bea1d5b 198} http_hdr_type;
4f087419 199
9bea1d5b 200typedef enum {
e6ccf245 201 CC_BADHDR = -1,
202 CC_PUBLIC = 0,
7faf2bdb 203 CC_PRIVATE,
204 CC_NO_CACHE,
205 CC_NO_STORE,
206 CC_NO_TRANSFORM,
207 CC_MUST_REVALIDATE,
208 CC_PROXY_REVALIDATE,
209 CC_MAX_AGE,
7e3ce7b9 210 CC_S_MAXAGE,
49ff0930 211 CC_MAX_STALE,
d8b249ef 212 CC_ONLY_IF_CACHED,
213 CC_OTHER,
7faf2bdb 214 CC_ENUM_END
9bea1d5b 215} http_hdr_cc_type;
7faf2bdb 216
43ae1d95 217typedef enum {
218 SC_NO_STORE,
219 SC_NO_STORE_REMOTE,
220 SC_MAX_AGE,
221 SC_CONTENT,
222 SC_OTHER,
223 SC_ENUM_END
224} http_hdr_sc_type;
225
7faf2bdb 226/* possible types for http header fields */
9bea1d5b 227typedef enum {
399e85ea 228 ftInvalid = HDR_ENUM_END, /* to catch nasty errors with hdr_id<->fld_type clashes */
7faf2bdb 229 ftInt,
4f7e9dbb 230 ftStr,
7faf2bdb 231 ftDate_1123,
a9771e51 232 ftETag,
02922e76 233 ftPCc,
a9771e51 234 ftPContRange,
02922e76 235 ftPRange,
43ae1d95 236 ftPSc,
a9771e51 237 ftDate_1123_or_ETag
9bea1d5b 238} field_type;
4f087419 239
2246b732 240/* possible owners of http header */
9bea1d5b 241typedef enum {
2246b732 242 hoNone,
ff6c30e8 243#if USE_HTCP
244 hoHtcpReply,
245#endif
2246b732 246 hoRequest,
247 hoReply
9bea1d5b 248} http_hdr_owner_type;
2246b732 249
9bea1d5b 250typedef enum {
f892c2bf 251 HIER_NONE,
252 DIRECT,
253 SIBLING_HIT,
254 PARENT_HIT,
255 DEFAULT_PARENT,
256 SINGLE_PARENT,
257 FIRSTUP_PARENT,
f892c2bf 258 FIRST_PARENT_MISS,
259 CLOSEST_PARENT_MISS,
69c95dd3 260 CLOSEST_PARENT,
f892c2bf 261 CLOSEST_DIRECT,
262 NO_DIRECT_FAIL,
263 SOURCE_FASTEST,
f892c2bf 264 ROUNDROBIN_PARENT,
6cfa8966 265#if USE_CACHE_DIGESTS
9bc73deb 266 CD_PARENT_HIT,
267 CD_SIBLING_HIT,
afd88fbe 268#endif
269#if USE_CARP
270 CARP,
c127134a 271#endif
6a655df0 272 ANY_OLD_PARENT,
f892c2bf 273 HIER_MAX
9bea1d5b 274} hier_code;
f892c2bf 275
9bea1d5b 276typedef enum {
27cd7235 277 ICP_INVALID,
278 ICP_QUERY,
279 ICP_HIT,
280 ICP_MISS,
281 ICP_ERR,
282 ICP_SEND,
283 ICP_SENDA,
284 ICP_DATABEG,
285 ICP_DATA,
286 ICP_DATAEND,
287 ICP_SECHO,
288 ICP_DECHO,
58e170f0 289 ICP_NOTIFY,
290 ICP_INVALIDATE,
291 ICP_DELETE,
27cd7235 292 ICP_UNUSED15,
293 ICP_UNUSED16,
294 ICP_UNUSED17,
295 ICP_UNUSED18,
296 ICP_UNUSED19,
297 ICP_UNUSED20,
298 ICP_MISS_NOFETCH,
da2d50d1 299 ICP_DENIED,
27cd7235 300 ICP_HIT_OBJ,
301 ICP_END
9bea1d5b 302} icp_opcode;
f892c2bf 303
e6ccf245 304typedef enum _mem_status_t {
f892c2bf 305 NOT_IN_MEMORY,
f892c2bf 306 IN_MEMORY
e6ccf245 307} mem_status_t;
f892c2bf 308
9bea1d5b 309enum {
f892c2bf 310 PING_NONE,
311 PING_WAITING,
f892c2bf 312 PING_DONE
9bea1d5b 313};
f892c2bf 314
9bea1d5b 315enum {
f892c2bf 316 STORE_OK,
b7fe0ab0 317 STORE_PENDING
9bea1d5b 318};
f892c2bf 319
9bea1d5b 320enum {
8350fe9b 321 SWAPOUT_NONE,
8350fe9b 322 SWAPOUT_WRITING,
323 SWAPOUT_DONE
9bea1d5b 324};
f892c2bf 325
9bea1d5b 326typedef enum {
5d86029a 327 STORE_NON_CLIENT,
328 STORE_MEM_CLIENT,
329 STORE_DISK_CLIENT
9bea1d5b 330} store_client_t;
74ac2ecb 331
7cdb708d 332typedef enum {
f892c2bf 333 METHOD_NONE, /* 000 */
334 METHOD_GET, /* 001 */
335 METHOD_POST, /* 010 */
336 METHOD_PUT, /* 011 */
337 METHOD_HEAD, /* 100 */
338 METHOD_CONNECT, /* 101 */
339 METHOD_TRACE, /* 110 */
710bd872 340 METHOD_PURGE, /* 111 */
1f38f50a 341 METHOD_OPTIONS,
7e3ce7b9 342 METHOD_DELETE, /* RFC2616 section 9.7 */
21e1d500 343 METHOD_PROPFIND,
344 METHOD_PROPPATCH,
345 METHOD_MKCOL,
346 METHOD_COPY,
347 METHOD_MOVE,
348 METHOD_LOCK,
349 METHOD_UNLOCK,
42b51993 350 METHOD_BMOVE,
351 METHOD_BDELETE,
352 METHOD_BPROPFIND,
1594f687 353 METHOD_BPROPPATCH,
2641e6aa 354 METHOD_BCOPY,
d45ef7f8 355 METHOD_SEARCH,
2641e6aa 356 METHOD_SUBSCRIBE,
357 METHOD_UNSUBSCRIBE,
358 METHOD_POLL,
56fe752e 359 METHOD_EXT00,
360 METHOD_EXT01,
361 METHOD_EXT02,
362 METHOD_EXT03,
363 METHOD_EXT04,
364 METHOD_EXT05,
365 METHOD_EXT06,
366 METHOD_EXT07,
367 METHOD_EXT08,
368 METHOD_EXT09,
369 METHOD_EXT10,
370 METHOD_EXT11,
371 METHOD_EXT12,
372 METHOD_EXT13,
373 METHOD_EXT14,
374 METHOD_EXT15,
375 METHOD_EXT16,
376 METHOD_EXT17,
377 METHOD_EXT18,
378 METHOD_EXT19,
710bd872 379 METHOD_ENUM_END
7cdb708d 380} method_t;
f892c2bf 381
9bea1d5b 382typedef enum {
f892c2bf 383 PROTO_NONE,
384 PROTO_HTTP,
385 PROTO_FTP,
386 PROTO_GOPHER,
387 PROTO_WAIS,
388 PROTO_CACHEOBJ,
389 PROTO_ICP,
86aebcda 390#if USE_HTCP
391 PROTO_HTCP,
392#endif
23d92c64 393 PROTO_URN,
53ad48e6 394 PROTO_WHOIS,
1da5651f 395 PROTO_INTERNAL,
4f3de732 396 PROTO_HTTPS,
f892c2bf 397 PROTO_MAX
9bea1d5b 398} protocol_t;
9b312a19 399
9bea1d5b 400typedef enum {
728da2ee 401 HTTP_STATUS_NONE = 0,
9b312a19 402 HTTP_CONTINUE = 100,
403 HTTP_SWITCHING_PROTOCOLS = 101,
7e3ce7b9 404 HTTP_PROCESSING = 102, /* RFC2518 section 10.1 */
9b312a19 405 HTTP_OK = 200,
406 HTTP_CREATED = 201,
407 HTTP_ACCEPTED = 202,
408 HTTP_NON_AUTHORITATIVE_INFORMATION = 203,
409 HTTP_NO_CONTENT = 204,
410 HTTP_RESET_CONTENT = 205,
411 HTTP_PARTIAL_CONTENT = 206,
7e3ce7b9 412 HTTP_MULTI_STATUS = 207, /* RFC2518 section 10.2 */
9b312a19 413 HTTP_MULTIPLE_CHOICES = 300,
414 HTTP_MOVED_PERMANENTLY = 301,
415 HTTP_MOVED_TEMPORARILY = 302,
416 HTTP_SEE_OTHER = 303,
417 HTTP_NOT_MODIFIED = 304,
418 HTTP_USE_PROXY = 305,
69660be0 419 HTTP_TEMPORARY_REDIRECT = 307,
9b312a19 420 HTTP_BAD_REQUEST = 400,
421 HTTP_UNAUTHORIZED = 401,
422 HTTP_PAYMENT_REQUIRED = 402,
423 HTTP_FORBIDDEN = 403,
424 HTTP_NOT_FOUND = 404,
425 HTTP_METHOD_NOT_ALLOWED = 405,
426 HTTP_NOT_ACCEPTABLE = 406,
427 HTTP_PROXY_AUTHENTICATION_REQUIRED = 407,
428 HTTP_REQUEST_TIMEOUT = 408,
429 HTTP_CONFLICT = 409,
430 HTTP_GONE = 410,
431 HTTP_LENGTH_REQUIRED = 411,
432 HTTP_PRECONDITION_FAILED = 412,
433 HTTP_REQUEST_ENTITY_TOO_LARGE = 413,
434 HTTP_REQUEST_URI_TOO_LARGE = 414,
435 HTTP_UNSUPPORTED_MEDIA_TYPE = 415,
7e3ce7b9 436 HTTP_UNPROCESSABLE_ENTITY = 422, /* RFC2518 section 10.3 */
437 HTTP_LOCKED = 423, /* RFC2518 section 10.4 */
438 HTTP_FAILED_DEPENDENCY = 424, /* RFC2518 section 10.5 */
9b312a19 439 HTTP_INTERNAL_SERVER_ERROR = 500,
440 HTTP_NOT_IMPLEMENTED = 501,
441 HTTP_BAD_GATEWAY = 502,
442 HTTP_SERVICE_UNAVAILABLE = 503,
443 HTTP_GATEWAY_TIMEOUT = 504,
cb69b4c7 444 HTTP_HTTP_VERSION_NOT_SUPPORTED = 505,
7e3ce7b9 445 HTTP_INSUFFICIENT_STORAGE = 507, /* RFC2518 section 10.6 */
ee1679df 446 HTTP_INVALID_HEADER = 600 /* Squid header parsing error */
9bea1d5b 447} http_status;
79a15e0a 448
d46a87a8 449/*
450 * These are for StoreEntry->flag, which is defined as a SHORT
451 *
452 * NOTE: These flags are written to swap.state, so think very carefully
453 * about deleting or re-assigning!
454 */
9bea1d5b 455enum {
d46a87a8 456 ENTRY_SPECIAL,
457 ENTRY_REVALIDATE,
458 DELAY_SENDING,
459 RELEASE_REQUEST,
460 REFRESH_REQUEST,
461 ENTRY_CACHABLE,
462 ENTRY_DISPATCHED,
463 KEY_PRIVATE,
d46a87a8 464 ENTRY_FWD_HDR_WAIT,
d46a87a8 465 ENTRY_NEGCACHED,
466 ENTRY_VALIDATED,
b7fe0ab0 467 ENTRY_BAD_LENGTH,
e95eff47 468 ENTRY_ABORTED
469#if UNUSED_CODE
470 ENTRY_DONT_LOG
471#endif
9bea1d5b 472};
79a15e0a 473
edce4d98 474/*
475 * These are for client Streams. Each node in the stream can be queried for
476 * its status
477 */
478typedef enum {
479 STREAM_NONE, /* No particular status */
480 STREAM_COMPLETE, /* All data has been flushed, no more reads allowed */
b0dd28ba 481 /* an unpredicted end has occured, no more
482 * reads occured, but no need to tell
483 * downstream that an error occured
484 */
485 STREAM_UNPLANNED_COMPLETE,
486 /* An error has occured in this node or an above one,
487 * and the node is not generating an error body / it's
488 * midstream
489 */
490 STREAM_FAILED
edce4d98 491} clientStream_status_t;
492
9bea1d5b 493typedef enum {
fc5d6f7f 494 ACCESS_DENIED,
495 ACCESS_ALLOWED,
496 ACCESS_REQ_PROXY_AUTH
9bea1d5b 497} allow_t;
a97cfa48 498
9bea1d5b 499typedef enum {
60d096f4 500 AUTH_ACL_CHALLENGE = -2,
501 AUTH_ACL_HELPER = -1,
502 AUTH_ACL_CANNOT_AUTHENTICATE = 0,
d35b9a94 503 AUTH_AUTHENTICATED = 1
9bea1d5b 504} auth_acl_t;
60d096f4 505
9bea1d5b 506typedef enum {
94439e4e 507 AUTH_UNKNOWN, /* default */
508 AUTH_BASIC,
509 AUTH_NTLM,
2d70df72 510 AUTH_DIGEST,
94439e4e 511 AUTH_BROKEN /* known type, but broken data */
9bea1d5b 512} auth_type_t;
94439e4e 513
94439e4e 514/* stateful helper callback response codes */
9bea1d5b 515typedef enum {
94439e4e 516 S_HELPER_UNKNOWN,
517 S_HELPER_RESERVE,
518 S_HELPER_RELEASE,
519 S_HELPER_DEFER
9bea1d5b 520} stateful_helper_callback_t;
94439e4e 521
522/* stateful helper reservation info */
9bea1d5b 523typedef enum {
94439e4e 524 S_HELPER_FREE, /* available for requests */
525 S_HELPER_RESERVED, /* in a reserved state - no active request, but state data in the helper shouldn't be disturbed */
526 S_HELPER_DEFERRED /* available for requests, and at least one more will come from a previous caller with the server pointer */
9bea1d5b 527} stateful_helper_reserve_t;
94439e4e 528
529
3f6c0fb2 530#if SQUID_SNMP
9bea1d5b 531enum {
be335c22 532 SNMP_C_VIEW,
533 SNMP_C_USER,
534 SNMP_C_COMMUNITY
9bea1d5b 535};
067bea91 536
3f6c0fb2 537#endif
538
9bea1d5b 539typedef enum {
067bea91 540 MEM_NONE,
137ee196 541 MEM_2K_BUF,
067bea91 542 MEM_4K_BUF,
543 MEM_8K_BUF,
58cd5bbd 544 MEM_16K_BUF,
545 MEM_32K_BUF,
546 MEM_64K_BUF,
c68e9c6b 547 MEM_ACL_DENY_INFO_LIST,
c68e9c6b 548 MEM_ACL_NAME_LIST,
94439e4e 549 MEM_ACL_PROXY_AUTH_MATCH,
c68e9c6b 550#if USE_CACHE_DIGESTS
551 MEM_CACHE_DIGEST,
552#endif
c68e9c6b 553 MEM_CLIENT_INFO,
58cd5bbd 554 MEM_LINK_LIST,
c68e9c6b 555 MEM_DLINK_NODE,
c68e9c6b 556 MEM_DONTFREE,
557 MEM_DREAD_CTRL,
067bea91 558 MEM_DWRITE_Q,
067bea91 559 MEM_FQDNCACHE_ENTRY,
798b0889 560 MEM_FWD_SERVER,
94439e4e 561 MEM_HELPER_REQUEST,
562 MEM_HELPER_STATEFUL_REQUEST,
7faf2bdb 563 MEM_HTTP_HDR_CC,
d76fcfa7 564 MEM_HTTP_HDR_CONTENT_RANGE,
43ae1d95 565 MEM_HTTP_HDR_SC,
566 MEM_HTTP_HDR_SCTARGET,
067bea91 567 MEM_IPCACHE_ENTRY,
c68e9c6b 568 MEM_MD5_DIGEST,
c68e9c6b 569 MEM_NETDBENTRY,
067bea91 570 MEM_NET_DB_NAME,
c68e9c6b 571 MEM_RELIST,
572 MEM_REQUEST_T,
c68e9c6b 573 MEM_WORDLIST,
eb824054 574#if !USE_DNSSERVERS
7b724b86 575 MEM_IDNS_QUERY,
eb824054 576#endif
58a39dc9 577 MEM_EVENT,
58cd5bbd 578 MEM_SWAP_LOG_DATA,
067bea91 579 MEM_MAX
9bea1d5b 580} mem_type;
a21fbb54 581
69c01cd7 582/*
583 * NOTE! We must preserve the order of this list!
584 */
9bea1d5b 585enum {
f09f5b26 586 STORE_META_VOID, /* should not come up */
587 STORE_META_KEY_URL, /* key w/ keytype */
588 STORE_META_KEY_SHA,
589 STORE_META_KEY_MD5,
590 STORE_META_URL, /* the url , if not in the header */
591 STORE_META_STD, /* standard metadata */
592 STORE_META_HITMETERING, /* reserved for hit metering */
69c01cd7 593 STORE_META_VALID,
f66a9ef4 594 STORE_META_VARY_HEADERS, /* Stores Vary request headers */
69c01cd7 595 STORE_META_END
9bea1d5b 596};
f09f5b26 597
9bea1d5b 598enum {
5830cdb3 599 STORE_LOG_CREATE,
600 STORE_LOG_SWAPIN,
601 STORE_LOG_SWAPOUT,
284ac611 602 STORE_LOG_RELEASE,
603 STORE_LOG_SWAPOUTFAIL
9bea1d5b 604};
5830cdb3 605
9bea1d5b 606typedef enum {
5830cdb3 607 SWAP_LOG_NOP,
608 SWAP_LOG_ADD,
b109de6b 609 SWAP_LOG_DEL,
610 SWAP_LOG_MAX
9bea1d5b 611} swap_log_op;
adba4a64 612
613
614/* parse state of HttpReply or HttpRequest */
9bea1d5b 615typedef enum {
2ac76861 616 psReadyToParseStartLine = 0,
617 psReadyToParseHeaders,
618 psParsed,
619 psError
9bea1d5b 620} HttpMsgParseState;
b87b92fb 621
622
9bea1d5b 623enum {
b87b92fb 624 MEDIAN_HTTP,
625 MEDIAN_ICP_QUERY,
626 MEDIAN_DNS,
627 MEDIAN_HIT,
628 MEDIAN_MISS,
629 MEDIAN_NM,
7c9c84ad 630 MEDIAN_NH,
b87b92fb 631 MEDIAN_ICP_REPLY
9bea1d5b 632};
071a3ae7 633
9bea1d5b 634enum {
071a3ae7 635 SENT,
636 RECV
9bea1d5b 637};
de2a0782 638
639/*
640 * These are field indicators for raw cache-cache netdb transfers
641 */
9bea1d5b 642enum {
58a6c186 643 NETDB_EX_NONE,
644 NETDB_EX_NETWORK,
645 NETDB_EX_RTT,
646 NETDB_EX_HOPS
9bea1d5b 647};
28c60158 648
649/*
650 * cbdata types. similar to the MEM_* types above, but managed
651 * in cbdata.c. A big difference is that these types are dynamically
652 * allocated. This list is only a list of predefined types. Other types
653 * are added runtime
654 */
9bea1d5b 655typedef enum {
28c60158 656 CBDATA_UNKNOWN = 0,
fe5aab5f 657 CBDATA_UNDEF = 0,
28c60158 658 CBDATA_acl_access,
28c60158 659 CBDATA_ConnStateData,
28c60158 660 CBDATA_ErrorState,
661 CBDATA_FwdState,
662 CBDATA_generic_cbdata,
663 CBDATA_helper,
664 CBDATA_helper_server,
94439e4e 665 CBDATA_statefulhelper,
666 CBDATA_helper_stateful_server,
28c60158 667 CBDATA_peer,
668 CBDATA_ps_state,
669 CBDATA_RemovalPolicy,
670 CBDATA_RemovalPolicyWalker,
671 CBDATA_RemovalPurgeWalker,
fe5aab5f 672 CBDATA_FIRST_CUSTOM_TYPE = 1000
9bea1d5b 673} cbdata_type;
f66a9ef4 674
675/*
676 * Return codes from checkVary(request)
677 */
9bea1d5b 678enum {
f66a9ef4 679 VARY_NONE,
680 VARY_MATCH,
681 VARY_OTHER,
682 VARY_CANCEL
9bea1d5b 683};
b5638623 684
add2192d 685/*
686 * Store digest state enum
687 */
688typedef enum {
76cdc28d 689 DIGEST_READ_NONE,
690 DIGEST_READ_REPLY,
691 DIGEST_READ_HEADERS,
692 DIGEST_READ_CBLOCK,
693 DIGEST_READ_MASK,
694 DIGEST_READ_DONE
add2192d 695} digest_read_state_t;
696
3d7e9d7c 697typedef enum {
69660be0 698 COMM_OK = 0,
699 COMM_ERROR = -1,
700 COMM_NOMESSAGE = -3,
701 COMM_TIMEOUT = -4,
702 COMM_SHUTDOWN = -5,
703 COMM_INPROGRESS = -6,
704 COMM_ERR_CONNECT = -7,
705 COMM_ERR_DNS = -8,
706 COMM_ERR_CLOSING = -9
3d7e9d7c 707} comm_err_t;
708
709
be20dac7 710/* CygWin & Windows NT Port */
ec4daaa5 711#ifdef _SQUID_WIN32_
be20dac7 712/*
713 * Supported Windows OS types codes
714 */
715enum {
716 _WIN_OS_UNKNOWN,
717 _WIN_OS_WIN32S,
718 _WIN_OS_WIN95,
719 _WIN_OS_WIN98,
720 _WIN_OS_WINME,
721 _WIN_OS_WINNT,
722 _WIN_OS_WIN2K,
6b1846cf 723 _WIN_OS_WINXP,
724 _WIN_OS_WINNET
be20dac7 725};
726
727#endif
728
b5638623 729#endif /* SQUID_ENUMS_H */