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