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