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