3 struct in_addr addr1
; /* if addr2 non-zero then its a range */
7 struct _acl_ip_data
*next
;
11 struct _acl_time_data
{
15 struct _acl_time_data
*next
;
18 struct _acl_name_list
{
19 char name
[ACL_NAME_SZ
];
20 struct _acl_name_list
*next
;
23 struct _acl_proxy_auth
{
31 struct _acl_deny_info_list
{
33 struct _acl_name_list
*acl_list
;
34 struct _acl_deny_info_list
*next
;
38 char name
[ACL_NAME_SZ
];
48 struct _acl_list
*next
;
53 struct _acl_list
*acl_list
;
55 struct _acl_access
*next
;
59 const struct _acl_access
*access_list
;
60 struct in_addr src_addr
;
61 struct in_addr dst_addr
;
63 char ident
[ICP_IDENT_SZ
];
64 char browser
[BROWSERNAMELEN
];
65 acl_lookup_state state
[ACL_ENUM_MAX
];
70 struct _aio_result_t
{
77 struct _wordlist
*next
;
82 struct _intlist
*next
;
87 struct _ushortlist
*next
;
113 time_t negativeDnsTtl
;
114 time_t positiveDnsTtl
;
115 time_t shutdownLifetime
;
116 time_t neighborTimeout
;
126 size_t maxRequestSize
;
144 char *effectiveGroup
;
152 int redirectChildren
;
158 size_t appendDomainLen
;
161 char *mimeTablePathname
;
162 char *visibleHostname
;
171 struct in_addr tcp_incoming
;
172 struct in_addr tcp_outgoing
;
173 struct in_addr udp_incoming
;
175 struct in_addr snmp_incoming
;
176 #endif /* SQUID_SNMP */
177 struct in_addr udp_outgoing
;
178 struct in_addr client_netmask
;
181 size_t udpMaxHitObjsz
;
182 wordlist
*cache_stoplist
;
183 wordlist
*hierarchy_stoplist
;
184 wordlist
*mcast_group_list
;
185 wordlist
*dns_testname_list
;
186 relist
*cache_stop_relist
;
195 cachemgr_passwd
*passwd_list
;
197 int objectsPerBucket
;
198 size_t avgObjectSize
;
199 size_t maxObjectSize
;
219 int single_parent_bypass
;
222 int accel_with_proxy
;
224 struct _acl
*aclList
;
226 struct _acl_access
*http
;
227 struct _acl_access
*icp
;
228 struct _acl_access
*miss
;
229 struct _acl_access
*NeverDirect
;
230 struct _acl_access
*AlwaysDirect
;
232 struct _acl_deny_info_list
*denyInfoList
;
251 char *errorDirectory
;
254 struct _SquidConfig2
{
261 struct _close_handler
{
277 struct _dnsserver_t
{
286 struct timeval dispatch_time
;
290 struct _dnsStatData
{
293 int hist
[DefaultDnsChildrenMax
];
300 struct _dwrite_q
*next
;
301 void (*free
) (void *);
309 char ipaddr
[16]; /* dotted decimal address of peer */
310 char desc
[FD_DESC_SZ
];
314 int uses
; /* ie # req's over persistent conn */
317 void *wrt_handle_data
;
319 dwrite_q
*write_q_tail
;
330 close_handler
*close_handler
; /* linked list */
331 time_t stall_until
; /* don't select for read until this time */
332 CommWriteStateData
*rwstate
; /* State data for comm_write */
338 int last_file_number_allocated
;
341 unsigned long *file_map
;
344 struct _fqdncache_entry
{
345 /* first two items must be equivalent to hash_link in hash.h */
347 struct _fqdncache_entry
*next
;
350 unsigned char name_count
;
351 char *names
[FQDN_MAX_NAMES
+ 1];
352 struct _fqdn_pending
*pending_head
;
355 fqdncache_status_t status
:3;
360 struct _hash_link
*next
;
370 unsigned int current_slot
;
371 hash_link
*current_ptr
;
383 time_t last_modified
;
384 char content_type
[HTTP_REPLY_FIELD_SZ
];
385 char user_agent
[HTTP_REPLY_FIELD_SZ
<< 2];
388 struct _HttpStateData
{
393 peer
*neighbor
; /* neighbor request made to */
394 int eof
; /* reached end-of-object? */
395 request_t
*orig_request
;
396 int fd
; /* needed as identifier for ipcache */
401 struct sockaddr_in address
;
406 struct timeval start
;
412 struct _icp_ping_data
{
413 struct timeval start
;
417 int n_replies_expected
;
423 struct _HierarchyLogEntry
{
425 char host
[SQUIDHOSTNAMELEN
];
426 struct _icp_ping_data icp
;
429 struct _AccessLogEntry
{
434 const char *content_type
;
440 struct in_addr caddr
;
446 struct _HierarchyLogEntry hier
;
452 const char *method_str
;
456 struct _clientHttpRequest
{
458 request_t
*request
; /* Parsed URL ... */
468 StoreEntry
*old_entry
;
470 http_status http_code
;
472 struct timeval start
;
475 aclCheck_t
*acl_checklist
; /* need ptr back so we can unreg if needed */
476 clientHttpRequest
*next
;
477 struct _AccessLogEntry al
;
480 struct _ConnStateData
{
487 clientHttpRequest
*chr
;
488 struct sockaddr_in peer
;
489 struct sockaddr_in me
;
490 struct in_addr log_addr
;
493 char ident
[ICP_IDENT_SZ
];
497 CommWriteStateData
*commWriteState
;
502 struct _ipcache_addrs
{
505 struct in_addr
*in_addrs
;
508 struct _ipcache_entry
{
509 /* first two items must be equivalent to hash_link in hash.h */
511 struct _ipcache_entry
*next
;
515 struct _ip_pending
*pending_head
;
518 ipcache_status_t status
:3;
521 struct _ext_table_entry
{
528 struct _domain_ping
{
530 int do_ping
; /* boolean */
531 struct _domain_ping
*next
;
534 struct _domain_type
{
537 struct _domain_type
*next
;
543 struct sockaddr_in in_addr
;
550 int counts
[ICP_OP_END
];
556 struct _domain_ping
*pinglist
;
557 struct _domain_type
*typelist
;
558 struct _acl_list
*acls
;
562 double avg_n_members
;
564 int n_replies_expected
;
569 int tcp_up
; /* 0 if a connect() fails */
570 time_t last_fail_time
;
571 struct in_addr addresses
[10];
575 int ip_lookup_pending
;
576 int ck_conn_event_pend
;
580 struct _net_db_name
{
582 struct _net_db_name
*next
;
585 struct _net_db_peer
{
594 struct _net_db
*next
;
600 time_t next_ping_time
;
601 time_t last_use_time
;
617 peer
*first_parent_miss
;
618 peer
*closest_parent_miss
;
620 aclCheck_t
*acl_checklist
;
623 struct _pingerEchoData
{
625 unsigned char opcode
;
630 struct _pingerReplyData
{
632 unsigned char opcode
;
639 struct _icp_common_t
{
640 unsigned char opcode
; /* opcode */
641 unsigned char version
; /* version number */
642 unsigned short length
; /* total length (bytes) */
643 u_num32 reqnum
; /* req number (req'd for UDP) */
646 /* u_num32 auth[ICP_AUTH_SIZE]; authenticator (old) */
647 u_num32 shostid
; /* sender host id */
668 unsigned int transferrate
;
669 unsigned int refcount
;
670 unsigned int transferbyte
;
689 protocol_t(*proto_id
) (const char *url
);
690 void (*proto_newobject
) (struct _cacheinfo
* c
, protocol_t proto_id
, int len
, int flag
);
691 void (*proto_purgeobject
) (struct _cacheinfo
* c
, protocol_t proto_id
, int len
);
692 void (*proto_touchobject
) (struct _cacheinfo
* c
, protocol_t proto_id
, int len
);
693 void (*proto_count
) (struct _cacheinfo
* obj
, protocol_t proto_id
,
695 proto_stat proto_stat_data
[PROTO_MAX
+ 1];
705 } Http
, Ftp
, Gopher
, Wais
;
720 /* Memory allocator routines for fixed size blocks */
721 struct _stmem_stats
{
723 int total_pages_allocated
;
726 Stack free_page_stack
;
729 /* keep track each client receiving data from that particular StoreEntry */
730 struct _store_client
{
737 MemObject
*mem
; /* ptr to the parent structure, argh! */
742 /* This structure can be freed while object is purged out from memory */
746 size_t e_swap_buf_len
;
747 unsigned char pending_list_size
;
750 struct _store_client
*clients
;
757 struct _http_reply
*reply
;
759 struct timeval start_ping
;
760 IRCB
*icp_reply_callback
;
762 int fd
; /* FD of client creating this entry */
770 /* A cut down structure for store manager */
772 /* first two items must be same as hash_link in hash.h */
784 int swap_file_number
;
785 mem_status_t mem_status
:3;
786 ping_status_t ping_status
:3;
787 store_status_t store_status
:3;
788 swap_status_t swap_status
:3;
790 unsigned char lock_count
; /* Assume < 256! */
808 char login
[MAX_LOGIN_SZ
];
809 char host
[SQUIDHOSTNAMELEN
+ 1];
811 char urlpath
[MAX_URL
];
812 int link_count
; /* free when zero */
819 struct in_addr client_addr
;
824 struct _HierarchyLogEntry hier
;
827 struct _cachemgr_passwd
{
830 struct _cachemgr_passwd
*next
;
835 regex_t compiled_pattern
;
839 struct _refresh_t
*next
;
842 struct _CommWriteStateData
{
853 http_status http_status
;
861 struct in_addr src_addr
;