]> git.ipfire.org Git - thirdparty/squid.git/blame - src/enums.h
SSL->HTTP gatewaying support by Benno Rice
[thirdparty/squid.git] / src / enums.h
CommitLineData
f892c2bf 1
9cef6668 2/*
891c54ca 3 * $Id: enums.h,v 1.190 2001/04/09 22:26:00 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
34typedef enum {
79a15e0a 35 LOG_TAG_NONE,
36 LOG_TCP_HIT,
37 LOG_TCP_MISS,
38 LOG_TCP_REFRESH_HIT,
39 LOG_TCP_REFRESH_FAIL_HIT,
40 LOG_TCP_REFRESH_MISS,
ee1679df 41 LOG_TCP_CLIENT_REFRESH_MISS,
79a15e0a 42 LOG_TCP_IMS_HIT,
79a15e0a 43 LOG_TCP_SWAPFAIL_MISS,
44 LOG_TCP_NEGATIVE_HIT,
45 LOG_TCP_MEM_HIT,
46 LOG_TCP_DENIED,
b540e168 47 LOG_TCP_OFFLINE_HIT,
efd900cb 48#if LOG_TCP_REDIRECTS
49 LOG_TCP_REDIRECT,
50#endif
79a15e0a 51 LOG_UDP_HIT,
79a15e0a 52 LOG_UDP_MISS,
53 LOG_UDP_DENIED,
54 LOG_UDP_INVALID,
55 LOG_UDP_MISS_NOFETCH,
071a3ae7 56 LOG_ICP_QUERY,
79a15e0a 57 LOG_TYPE_MAX
f892c2bf 58} log_type;
59
9b312a19 60typedef enum {
61 ERR_NONE,
62 ERR_READ_TIMEOUT,
63 ERR_LIFETIME_EXP,
9b312a19 64 ERR_READ_ERROR,
65 ERR_WRITE_ERROR,
05b744f3 66 ERR_SHUTTING_DOWN,
9b312a19 67 ERR_CONNECT_FAIL,
68 ERR_INVALID_REQ,
69 ERR_UNSUP_REQ,
70 ERR_INVALID_URL,
71 ERR_SOCKET_FAILURE,
72 ERR_DNS_FAIL,
9b312a19 73 ERR_CANNOT_FORWARD,
bdb3c273 74 ERR_FORWARDING_DENIED,
9b312a19 75 ERR_NO_RELAY,
9b312a19 76 ERR_ZERO_SIZE_OBJECT,
77 ERR_FTP_DISABLED,
b9916917 78 ERR_FTP_FAILURE,
23d92c64 79 ERR_URN_RESOLVE,
9b312a19 80 ERR_ACCESS_DENIED,
cb69b4c7 81 ERR_CACHE_ACCESS_DENIED,
63259c34 82 ERR_CACHE_MGR_ACCESS_DENIED,
2ac76861 83 ERR_SQUID_SIGNATURE, /* not really an error */
ec878047 84 ERR_FTP_PUT_CREATED, /* !error,a note that the file was created */
59c4d35b 85 ERR_FTP_PUT_MODIFIED, /* modified, !created */
86 ERR_FTP_PUT_ERROR,
b6a2f15e 87 ERR_FTP_NOT_FOUND,
88 ERR_FTP_FORBIDDEN,
89 ERR_FTP_UNAVAILABLE,
ec878047 90 ERR_ONLY_IF_CACHED_MISS, /* failure to satisfy only-if-cached request */
0483b991 91 ERR_TOO_BIG,
9b312a19 92 ERR_MAX
93} err_type;
94
f892c2bf 95typedef enum {
96 ACL_NONE,
97 ACL_SRC_IP,
98 ACL_DST_IP,
ae2c08a2 99 ACL_MY_IP,
f892c2bf 100 ACL_SRC_DOMAIN,
101 ACL_DST_DOMAIN,
d0d41f07 102 ACL_SRC_DOM_REGEX,
103 ACL_DST_DOM_REGEX,
f892c2bf 104 ACL_TIME,
105 ACL_URLPATH_REGEX,
106 ACL_URL_REGEX,
107 ACL_URL_PORT,
7e3ce7b9 108 ACL_MY_PORT,
3898f57f 109#if USE_IDENT
c68e9c6b 110 ACL_IDENT,
145cf928 111 ACL_IDENT_REGEX,
3898f57f 112#endif
f892c2bf 113 ACL_PROTO,
114 ACL_METHOD,
115 ACL_BROWSER,
afe95a7e 116 ACL_PROXY_AUTH,
145cf928 117 ACL_PROXY_AUTH_REGEX,
5d6c7aad 118 ACL_SRC_ASN,
119 ACL_DST_ASN,
6b5fbfee 120#if USE_ARP_ACL
6b6347d5 121 ACL_SRC_ARP,
6b5fbfee 122#endif
123#if SQUID_SNMP
dba79ac5 124 ACL_SNMP_COMMUNITY,
6b5fbfee 125#endif
126#if SRC_RTT_NOT_YET_FINISHED
bd05e3e3 127 ACL_NETDB_SRC_RTT,
6b5fbfee 128#endif
9bc73deb 129 ACL_MAXCONN,
ba2b31a8 130 ACL_REQ_MIME_TYPE,
c4ab8329 131 ACL_REP_MIME_TYPE,
f892c2bf 132 ACL_ENUM_MAX
133} squid_acl;
134
135typedef enum {
136 ACL_LOOKUP_NONE,
137 ACL_LOOKUP_NEEDED,
138 ACL_LOOKUP_PENDING,
73e67ee0 139 ACL_LOOKUP_DONE,
94439e4e 140 ACL_PROXY_AUTH_NEEDED,
f892c2bf 141} acl_lookup_state;
142
f892c2bf 143enum {
144 FD_NONE,
145 FD_LOG,
146 FD_FILE,
147 FD_SOCKET,
148 FD_PIPE,
149 FD_UNKNOWN
150};
151
152enum {
153 FD_READ,
154 FD_WRITE
155};
156
f892c2bf 157typedef enum {
158 PEER_NONE,
159 PEER_SIBLING,
160 PEER_PARENT,
161 PEER_MULTICAST
162} peer_t;
163
9fdfc93e 164typedef enum {
165 PEER_SA_NONE,
166 PEER_SA_DIGEST,
69c95dd3 167 PEER_SA_ICP,
168 PEER_SA_NETDB
9fdfc93e 169} peer_select_alg_t;
170
171typedef enum {
172 LOOKUP_NONE,
173 LOOKUP_HIT,
4b4cd312 174 LOOKUP_MISS
9fdfc93e 175} lookup_t;
176
4f087419 177/* recognized or "known" header fields; @?@ add more! */
178typedef enum {
179 HDR_ACCEPT,
d8b249ef 180 HDR_ACCEPT_CHARSET,
181 HDR_ACCEPT_ENCODING,
182 HDR_ACCEPT_LANGUAGE,
de336bbe 183 HDR_ACCEPT_RANGES,
4f087419 184 HDR_AGE,
99edd1c3 185 HDR_ALLOW,
186 HDR_AUTHORIZATION,
4f087419 187 HDR_CACHE_CONTROL,
188 HDR_CONNECTION,
2246b732 189 HDR_CONTENT_BASE,
4f087419 190 HDR_CONTENT_ENCODING,
99edd1c3 191 HDR_CONTENT_LANGUAGE,
4f087419 192 HDR_CONTENT_LENGTH,
2246b732 193 HDR_CONTENT_LOCATION,
4f087419 194 HDR_CONTENT_MD5,
d76fcfa7 195 HDR_CONTENT_RANGE,
4f087419 196 HDR_CONTENT_TYPE,
efd900cb 197 HDR_COOKIE,
4f087419 198 HDR_DATE,
199 HDR_ETAG,
200 HDR_EXPIRES,
99edd1c3 201 HDR_FROM,
4f087419 202 HDR_HOST,
c68e9c6b 203 HDR_IF_MATCH,
99edd1c3 204 HDR_IF_MODIFIED_SINCE,
c68e9c6b 205 HDR_IF_NONE_MATCH,
e17d81d3 206 HDR_IF_RANGE,
4f087419 207 HDR_LAST_MODIFIED,
99edd1c3 208 HDR_LINK,
4f087419 209 HDR_LOCATION,
210 HDR_MAX_FORWARDS,
d8b249ef 211 HDR_MIME_VERSION,
99edd1c3 212 HDR_PRAGMA,
4f087419 213 HDR_PROXY_AUTHENTICATE,
84ecfcb9 214 HDR_PROXY_AUTHENTICATION_INFO,
99edd1c3 215 HDR_PROXY_AUTHORIZATION,
216 HDR_PROXY_CONNECTION,
4f087419 217 HDR_PUBLIC,
02922e76 218 HDR_RANGE,
135171fe 219 HDR_REQUEST_RANGE, /* some clients use this, sigh */
99edd1c3 220 HDR_REFERER,
4f087419 221 HDR_RETRY_AFTER,
de336bbe 222 HDR_SERVER,
4f087419 223 HDR_SET_COOKIE,
99edd1c3 224 HDR_TITLE,
4f087419 225 HDR_UPGRADE,
99edd1c3 226 HDR_USER_AGENT,
783e4699 227 HDR_VARY,
99edd1c3 228 HDR_VIA,
4f087419 229 HDR_WARNING,
230 HDR_WWW_AUTHENTICATE,
84ecfcb9 231 HDR_AUTHENTICATION_INFO,
de336bbe 232 HDR_X_CACHE,
4b4cd312 233 HDR_X_CACHE_LOOKUP, /* tmp hack, remove later */
99edd1c3 234 HDR_X_FORWARDED_FOR,
2246b732 235 HDR_X_REQUEST_URI, /* appended if ADD_X_REQUEST_URI is #defined */
fcc62502 236 HDR_X_SQUID_ERROR,
4f087419 237 HDR_OTHER,
238 HDR_ENUM_END
239} http_hdr_type;
240
4f087419 241typedef enum {
7faf2bdb 242 CC_PUBLIC,
243 CC_PRIVATE,
244 CC_NO_CACHE,
245 CC_NO_STORE,
246 CC_NO_TRANSFORM,
247 CC_MUST_REVALIDATE,
248 CC_PROXY_REVALIDATE,
249 CC_MAX_AGE,
7e3ce7b9 250 CC_S_MAXAGE,
49ff0930 251 CC_MAX_STALE,
d8b249ef 252 CC_ONLY_IF_CACHED,
253 CC_OTHER,
7faf2bdb 254 CC_ENUM_END
255} http_hdr_cc_type;
256
257/* possible types for http header fields */
258typedef enum {
399e85ea 259 ftInvalid = HDR_ENUM_END, /* to catch nasty errors with hdr_id<->fld_type clashes */
7faf2bdb 260 ftInt,
4f7e9dbb 261 ftStr,
7faf2bdb 262 ftDate_1123,
a9771e51 263 ftETag,
02922e76 264 ftPCc,
a9771e51 265 ftPContRange,
02922e76 266 ftPRange,
a9771e51 267 ftDate_1123_or_ETag
7faf2bdb 268} field_type;
4f087419 269
2246b732 270/* possible owners of http header */
271typedef enum {
272 hoNone,
ff6c30e8 273#if USE_HTCP
274 hoHtcpReply,
275#endif
2246b732 276 hoRequest,
277 hoReply
278} http_hdr_owner_type;
279
f892c2bf 280typedef enum {
281 HIER_NONE,
282 DIRECT,
283 SIBLING_HIT,
284 PARENT_HIT,
285 DEFAULT_PARENT,
286 SINGLE_PARENT,
287 FIRSTUP_PARENT,
f892c2bf 288 FIRST_PARENT_MISS,
289 CLOSEST_PARENT_MISS,
69c95dd3 290 CLOSEST_PARENT,
f892c2bf 291 CLOSEST_DIRECT,
292 NO_DIRECT_FAIL,
293 SOURCE_FASTEST,
f892c2bf 294 ROUNDROBIN_PARENT,
6cfa8966 295#if USE_CACHE_DIGESTS
9bc73deb 296 CD_PARENT_HIT,
297 CD_SIBLING_HIT,
afd88fbe 298#endif
299#if USE_CARP
300 CARP,
c127134a 301#endif
6a655df0 302 ANY_OLD_PARENT,
f892c2bf 303 HIER_MAX
304} hier_code;
305
306typedef enum {
27cd7235 307 ICP_INVALID,
308 ICP_QUERY,
309 ICP_HIT,
310 ICP_MISS,
311 ICP_ERR,
312 ICP_SEND,
313 ICP_SENDA,
314 ICP_DATABEG,
315 ICP_DATA,
316 ICP_DATAEND,
317 ICP_SECHO,
318 ICP_DECHO,
58e170f0 319 ICP_NOTIFY,
320 ICP_INVALIDATE,
321 ICP_DELETE,
27cd7235 322 ICP_UNUSED15,
323 ICP_UNUSED16,
324 ICP_UNUSED17,
325 ICP_UNUSED18,
326 ICP_UNUSED19,
327 ICP_UNUSED20,
328 ICP_MISS_NOFETCH,
da2d50d1 329 ICP_DENIED,
27cd7235 330 ICP_HIT_OBJ,
331 ICP_END
f892c2bf 332} icp_opcode;
333
334enum {
335 NOT_IN_MEMORY,
f892c2bf 336 IN_MEMORY
337};
338
339enum {
340 PING_NONE,
341 PING_WAITING,
f892c2bf 342 PING_DONE
343};
344
345enum {
346 STORE_OK,
b7fe0ab0 347 STORE_PENDING
f892c2bf 348};
349
350enum {
8350fe9b 351 SWAPOUT_NONE,
8350fe9b 352 SWAPOUT_WRITING,
353 SWAPOUT_DONE
f892c2bf 354};
355
7405a782 356typedef enum {
5d86029a 357 STORE_NON_CLIENT,
358 STORE_MEM_CLIENT,
359 STORE_DISK_CLIENT
7405a782 360} store_client_t;
74ac2ecb 361
f892c2bf 362enum {
363 METHOD_NONE, /* 000 */
364 METHOD_GET, /* 001 */
365 METHOD_POST, /* 010 */
366 METHOD_PUT, /* 011 */
367 METHOD_HEAD, /* 100 */
368 METHOD_CONNECT, /* 101 */
369 METHOD_TRACE, /* 110 */
710bd872 370 METHOD_PURGE, /* 111 */
1f38f50a 371 METHOD_OPTIONS,
7e3ce7b9 372 METHOD_DELETE, /* RFC2616 section 9.7 */
21e1d500 373 METHOD_PROPFIND,
374 METHOD_PROPPATCH,
375 METHOD_MKCOL,
376 METHOD_COPY,
377 METHOD_MOVE,
378 METHOD_LOCK,
379 METHOD_UNLOCK,
42b51993 380 METHOD_BMOVE,
381 METHOD_BDELETE,
382 METHOD_BPROPFIND,
56fe752e 383 METHOD_EXT00,
384 METHOD_EXT01,
385 METHOD_EXT02,
386 METHOD_EXT03,
387 METHOD_EXT04,
388 METHOD_EXT05,
389 METHOD_EXT06,
390 METHOD_EXT07,
391 METHOD_EXT08,
392 METHOD_EXT09,
393 METHOD_EXT10,
394 METHOD_EXT11,
395 METHOD_EXT12,
396 METHOD_EXT13,
397 METHOD_EXT14,
398 METHOD_EXT15,
399 METHOD_EXT16,
400 METHOD_EXT17,
401 METHOD_EXT18,
402 METHOD_EXT19,
710bd872 403 METHOD_ENUM_END
f892c2bf 404};
405typedef unsigned int method_t;
406
407typedef enum {
408 PROTO_NONE,
409 PROTO_HTTP,
410 PROTO_FTP,
411 PROTO_GOPHER,
412 PROTO_WAIS,
413 PROTO_CACHEOBJ,
414 PROTO_ICP,
86aebcda 415#if USE_HTCP
416 PROTO_HTCP,
417#endif
23d92c64 418 PROTO_URN,
53ad48e6 419 PROTO_WHOIS,
1da5651f 420 PROTO_INTERNAL,
4f3de732 421 PROTO_HTTPS,
f892c2bf 422 PROTO_MAX
423} protocol_t;
9b312a19 424
425typedef enum {
728da2ee 426 HTTP_STATUS_NONE = 0,
9b312a19 427 HTTP_CONTINUE = 100,
428 HTTP_SWITCHING_PROTOCOLS = 101,
7e3ce7b9 429 HTTP_PROCESSING = 102, /* RFC2518 section 10.1 */
9b312a19 430 HTTP_OK = 200,
431 HTTP_CREATED = 201,
432 HTTP_ACCEPTED = 202,
433 HTTP_NON_AUTHORITATIVE_INFORMATION = 203,
434 HTTP_NO_CONTENT = 204,
435 HTTP_RESET_CONTENT = 205,
436 HTTP_PARTIAL_CONTENT = 206,
7e3ce7b9 437 HTTP_MULTI_STATUS = 207, /* RFC2518 section 10.2 */
9b312a19 438 HTTP_MULTIPLE_CHOICES = 300,
439 HTTP_MOVED_PERMANENTLY = 301,
440 HTTP_MOVED_TEMPORARILY = 302,
441 HTTP_SEE_OTHER = 303,
442 HTTP_NOT_MODIFIED = 304,
443 HTTP_USE_PROXY = 305,
444 HTTP_BAD_REQUEST = 400,
445 HTTP_UNAUTHORIZED = 401,
446 HTTP_PAYMENT_REQUIRED = 402,
447 HTTP_FORBIDDEN = 403,
448 HTTP_NOT_FOUND = 404,
449 HTTP_METHOD_NOT_ALLOWED = 405,
450 HTTP_NOT_ACCEPTABLE = 406,
451 HTTP_PROXY_AUTHENTICATION_REQUIRED = 407,
452 HTTP_REQUEST_TIMEOUT = 408,
453 HTTP_CONFLICT = 409,
454 HTTP_GONE = 410,
455 HTTP_LENGTH_REQUIRED = 411,
456 HTTP_PRECONDITION_FAILED = 412,
457 HTTP_REQUEST_ENTITY_TOO_LARGE = 413,
458 HTTP_REQUEST_URI_TOO_LARGE = 414,
459 HTTP_UNSUPPORTED_MEDIA_TYPE = 415,
7e3ce7b9 460 HTTP_UNPROCESSABLE_ENTITY = 422, /* RFC2518 section 10.3 */
461 HTTP_LOCKED = 423, /* RFC2518 section 10.4 */
462 HTTP_FAILED_DEPENDENCY = 424, /* RFC2518 section 10.5 */
9b312a19 463 HTTP_INTERNAL_SERVER_ERROR = 500,
464 HTTP_NOT_IMPLEMENTED = 501,
465 HTTP_BAD_GATEWAY = 502,
466 HTTP_SERVICE_UNAVAILABLE = 503,
467 HTTP_GATEWAY_TIMEOUT = 504,
cb69b4c7 468 HTTP_HTTP_VERSION_NOT_SUPPORTED = 505,
7e3ce7b9 469 HTTP_INSUFFICIENT_STORAGE = 507, /* RFC2518 section 10.6 */
ee1679df 470 HTTP_INVALID_HEADER = 600 /* Squid header parsing error */
9b312a19 471} http_status;
79a15e0a 472
d46a87a8 473/*
474 * These are for StoreEntry->flag, which is defined as a SHORT
475 *
476 * NOTE: These flags are written to swap.state, so think very carefully
477 * about deleting or re-assigning!
478 */
79a15e0a 479enum {
d46a87a8 480 ENTRY_SPECIAL,
481 ENTRY_REVALIDATE,
482 DELAY_SENDING,
483 RELEASE_REQUEST,
484 REFRESH_REQUEST,
485 ENTRY_CACHABLE,
486 ENTRY_DISPATCHED,
487 KEY_PRIVATE,
d46a87a8 488 ENTRY_FWD_HDR_WAIT,
d46a87a8 489 ENTRY_NEGCACHED,
490 ENTRY_VALIDATED,
b7fe0ab0 491 ENTRY_BAD_LENGTH,
e95eff47 492 ENTRY_ABORTED
493#if UNUSED_CODE
494 ENTRY_DONT_LOG
495#endif
79a15e0a 496};
497
fc5d6f7f 498typedef enum {
499 ACCESS_DENIED,
500 ACCESS_ALLOWED,
501 ACCESS_REQ_PROXY_AUTH
502} allow_t;
a97cfa48 503
94439e4e 504typedef enum {
505 AUTH_UNKNOWN, /* default */
506 AUTH_BASIC,
507 AUTH_NTLM,
2d70df72 508 AUTH_DIGEST,
94439e4e 509 AUTH_BROKEN /* known type, but broken data */
510} auth_type_t;
511
512typedef enum {
513 AUTHENTICATE_STATE_NONE,
514 AUTHENTICATE_STATE_NEGOTIATE,
515 AUTHENTICATE_STATE_CHALLENGE,
516 AUTHENTICATE_STATE_RESPONSE,
517 AUTHENTICATE_STATE_DONE
518} auth_state_t; /* connection level auth state */
519
520/* stateful helper callback response codes */
521typedef enum {
522 S_HELPER_UNKNOWN,
523 S_HELPER_RESERVE,
524 S_HELPER_RELEASE,
525 S_HELPER_DEFER
526} stateful_helper_callback_t;
527
528/* stateful helper reservation info */
529typedef enum {
530 S_HELPER_FREE, /* available for requests */
531 S_HELPER_RESERVED, /* in a reserved state - no active request, but state data in the helper shouldn't be disturbed */
532 S_HELPER_DEFERRED /* available for requests, and at least one more will come from a previous caller with the server pointer */
533} stateful_helper_reserve_t;
534
535
3f6c0fb2 536#if SQUID_SNMP
a97cfa48 537enum {
be335c22 538 SNMP_C_VIEW,
539 SNMP_C_USER,
540 SNMP_C_COMMUNITY
a97cfa48 541};
067bea91 542
3f6c0fb2 543#endif
544
545typedef enum {
067bea91 546 MEM_NONE,
137ee196 547 MEM_2K_BUF,
067bea91 548 MEM_4K_BUF,
549 MEM_8K_BUF,
58cd5bbd 550 MEM_16K_BUF,
551 MEM_32K_BUF,
552 MEM_64K_BUF,
c68e9c6b 553 MEM_ACCESSLOGENTRY,
067bea91 554 MEM_ACL,
c68e9c6b 555 MEM_ACLCHECK_T,
067bea91 556 MEM_ACL_ACCESS,
c68e9c6b 557 MEM_ACL_DENY_INFO_LIST,
558 MEM_ACL_IP_DATA,
559 MEM_ACL_LIST,
560 MEM_ACL_NAME_LIST,
94439e4e 561 MEM_AUTH_USER_T,
562 MEM_AUTH_USER_HASH,
563 MEM_ACL_PROXY_AUTH_MATCH,
a72fdaa7 564 MEM_ACL_USER_DATA,
c68e9c6b 565 MEM_ACL_TIME_DATA,
c68e9c6b 566 MEM_CACHEMGR_PASSWD,
567#if USE_CACHE_DIGESTS
568 MEM_CACHE_DIGEST,
569#endif
570 MEM_CLIENTHTTPREQUEST,
571 MEM_CLIENT_INFO,
572 MEM_CLIENT_SOCK_BUF,
067bea91 573 MEM_CLOSE_HANDLER,
c68e9c6b 574 MEM_COMMWRITESTATEDATA,
575 MEM_CONNSTATEDATA,
58cd5bbd 576 MEM_LINK_LIST,
c68e9c6b 577 MEM_DLINK_LIST,
578 MEM_DLINK_NODE,
067bea91 579 MEM_DNSSERVER_T,
580 MEM_DNSSTATDATA,
c68e9c6b 581 MEM_DOMAIN_PING,
582 MEM_DOMAIN_TYPE,
583 MEM_DONTFREE,
584 MEM_DREAD_CTRL,
067bea91 585 MEM_DWRITE_Q,
c68e9c6b 586 MEM_ERRORSTATE,
067bea91 587 MEM_FILEMAP,
588 MEM_FQDNCACHE_ENTRY,
798b0889 589 MEM_FWD_SERVER,
c68e9c6b 590 MEM_FWD_STATE,
067bea91 591 MEM_HASH_LINK,
592 MEM_HASH_TABLE,
c68e9c6b 593 MEM_HELPER,
94439e4e 594 MEM_HELPER_STATEFUL,
c68e9c6b 595 MEM_HELPER_SERVER,
94439e4e 596 MEM_HELPER_STATEFUL_SERVER,
597 MEM_HELPER_REQUEST,
598 MEM_HELPER_STATEFUL_REQUEST,
c68e9c6b 599 MEM_HIERARCHYLOGENTRY,
9bc73deb 600#if USE_HTCP
601 MEM_HTCP_SPECIFIER,
602 MEM_HTCP_DETAIL,
603#endif
7faf2bdb 604 MEM_HTTP_HDR_CC,
d76fcfa7 605 MEM_HTTP_HDR_CONTENT_RANGE,
c68e9c6b 606 MEM_HTTP_HDR_ENTRY,
607 MEM_HTTP_HDR_RANGE,
608 MEM_HTTP_HDR_RANGE_SPEC,
609 MEM_HTTP_REPLY,
cb87dab6 610 MEM_HTTP_STATE_DATA,
067bea91 611 MEM_ICPUDPDATA,
c68e9c6b 612 MEM_ICP_COMMON_T,
613 MEM_ICP_PING_DATA,
614 MEM_INTLIST,
615 MEM_IOSTATS,
067bea91 616 MEM_IPCACHE_ENTRY,
c68e9c6b 617 MEM_MD5_DIGEST,
618 MEM_MEMOBJECT,
619 MEM_MEM_NODE,
620 MEM_NETDBENTRY,
067bea91 621 MEM_NET_DB_NAME,
622 MEM_NET_DB_PEER,
c68e9c6b 623 MEM_PEER,
e13ee7ad 624#if USE_CACHE_DIGESTS
625 MEM_PEER_DIGEST,
626#endif
6b53c392 627#if USE_ICMP
067bea91 628 MEM_PINGERECHODATA,
629 MEM_PINGERREPLYDATA,
6b53c392 630#endif
c68e9c6b 631 MEM_PS_STATE,
067bea91 632 MEM_REFRESH_T,
c68e9c6b 633 MEM_RELIST,
634 MEM_REQUEST_T,
635 MEM_SQUIDCONFIG,
636 MEM_SQUIDCONFIG2,
067bea91 637 MEM_STATCOUNTERS,
c68e9c6b 638 MEM_STMEM_BUF,
639 MEM_STOREENTRY,
640 MEM_STORE_CLIENT,
641 MEM_SWAPDIR,
642 MEM_USHORTLIST,
643 MEM_WORDLIST,
2391a162 644 MEM_STORE_IO,
eb824054 645#if !USE_DNSSERVERS
7b724b86 646 MEM_IDNS_QUERY,
eb824054 647#endif
58a39dc9 648 MEM_EVENT,
58cd5bbd 649 MEM_TLV,
650 MEM_SWAP_LOG_DATA,
651 MEM_GEN_CBDATA,
58cd5bbd 652 MEM_CLIENT_REQ_BUF,
067bea91 653 MEM_MAX
94439e4e 654#ifdef NTLM_CACHING
655 ,MEM_NTLM_AUTH_CACHE
656#endif
3f6c0fb2 657} mem_type;
a21fbb54 658
69c01cd7 659/*
660 * NOTE! We must preserve the order of this list!
661 */
a21fbb54 662enum {
f09f5b26 663 STORE_META_VOID, /* should not come up */
664 STORE_META_KEY_URL, /* key w/ keytype */
665 STORE_META_KEY_SHA,
666 STORE_META_KEY_MD5,
667 STORE_META_URL, /* the url , if not in the header */
668 STORE_META_STD, /* standard metadata */
669 STORE_META_HITMETERING, /* reserved for hit metering */
69c01cd7 670 STORE_META_VALID,
671 STORE_META_END
f09f5b26 672};
673
674enum {
5830cdb3 675 STORE_LOG_CREATE,
676 STORE_LOG_SWAPIN,
677 STORE_LOG_SWAPOUT,
284ac611 678 STORE_LOG_RELEASE,
679 STORE_LOG_SWAPOUTFAIL
5830cdb3 680};
681
b109de6b 682typedef enum {
5830cdb3 683 SWAP_LOG_NOP,
684 SWAP_LOG_ADD,
b109de6b 685 SWAP_LOG_DEL,
686 SWAP_LOG_MAX
687} swap_log_op;
adba4a64 688
689
690/* parse state of HttpReply or HttpRequest */
2ac76861 691typedef enum {
692 psReadyToParseStartLine = 0,
693 psReadyToParseHeaders,
694 psParsed,
695 psError
adba4a64 696} HttpMsgParseState;
b87b92fb 697
698
699enum {
700 MEDIAN_HTTP,
701 MEDIAN_ICP_QUERY,
702 MEDIAN_DNS,
703 MEDIAN_HIT,
704 MEDIAN_MISS,
705 MEDIAN_NM,
7c9c84ad 706 MEDIAN_NH,
b87b92fb 707 MEDIAN_ICP_REPLY
708};
071a3ae7 709
710enum {
711 SENT,
712 RECV
713};
de2a0782 714
715/*
716 * These are field indicators for raw cache-cache netdb transfers
717 */
718enum {
58a6c186 719 NETDB_EX_NONE,
720 NETDB_EX_NETWORK,
721 NETDB_EX_RTT,
722 NETDB_EX_HOPS
de2a0782 723};
28c60158 724
725/*
726 * cbdata types. similar to the MEM_* types above, but managed
727 * in cbdata.c. A big difference is that these types are dynamically
728 * allocated. This list is only a list of predefined types. Other types
729 * are added runtime
730 */
731typedef enum {
732 CBDATA_UNKNOWN = 0,
fe5aab5f 733 CBDATA_UNDEF = 0,
28c60158 734 CBDATA_acl_access,
735 CBDATA_aclCheck_t,
736 CBDATA_clientHttpRequest,
737 CBDATA_ConnStateData,
28c60158 738 CBDATA_ErrorState,
739 CBDATA_FwdState,
740 CBDATA_generic_cbdata,
741 CBDATA_helper,
742 CBDATA_helper_server,
94439e4e 743 CBDATA_statefulhelper,
744 CBDATA_helper_stateful_server,
28c60158 745 CBDATA_HttpStateData,
746 CBDATA_peer,
747 CBDATA_ps_state,
748 CBDATA_RemovalPolicy,
749 CBDATA_RemovalPolicyWalker,
750 CBDATA_RemovalPurgeWalker,
751 CBDATA_store_client,
fe5aab5f 752 CBDATA_FIRST_CUSTOM_TYPE = 1000
28c60158 753} cbdata_type;