\File{squid.h},{11:44},{Feb  6 1997}
\L{\LB{}}
\L{\LB{\C{}\/*}}
\L{\LB{ * \$Id: squid.h,v 1.4 1997\/01\/08 04:56:58 marthag Exp \$}}
\L{\LB{ *}}
\L{\LB{ * AUTHOR: Duane Wessels}}
\L{\LB{ *}}
\L{\LB{ * SQUID Internet Object Cache  http:\/\/squid.nlanr.net\/Squid\/}}
\L{\LB{ * \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-}}
\L{\LB{ *}}
\L{\LB{ *  Squid is the result of efforts by numerous individuals from the}}
\L{\LB{ *  Internet community.  Development is led by Duane Wessels of the}}
\L{\LB{ *  National Laboratory for Applied Network Research and funded by}}
\L{\LB{ *  the National Science Foundation.}}
\L{\LB{ *}}
\L{\LB{ *  This program is free software; you can redistribute it and\/or modify}}
\L{\LB{ *  it under the terms of the GNU General Public License as published by}}
\L{\LB{ *  the Free Software Foundation; either version 2 of the License, or}}
\L{\LB{ *  (at your option) any later version.}}
\L{\LB{ *  }}
\L{\LB{ *  This program is distributed in the hope that it will be useful,}}
\L{\LB{ *  but WITHOUT ANY WARRANTY; without even the implied warranty of}}
\L{\LB{ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the}}
\L{\LB{ *  GNU General Public License for more details.}}
\L{\LB{ *  }}
\L{\LB{ *  You should have received a copy of the GNU General Public License}}
\L{\LB{ *  along with this program; if not, write to the Free Software}}
\L{\LB{ *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.}}
\L{\LB{ *  }}
\L{\LB{ *\/\CE{}}}
\L{\LB{}}
\L{\LB{\K{\#ifndef} SQUID\_H}}
\L{\LB{\K{\#define} SQUID\_H}}
\L{\LB{}}
\L{\LB{\K{\#include} \S{}\"config.h\"\SE{}}}
\L{\LB{}}
\L{\LB{\C{}\/*}}
\L{\LB{ * On some systems, FD\_SETSIZE is set to something lower than the}}
\L{\LB{ * actual number of files which can be opened.  IRIX is one case,}}
\L{\LB{ * NetBSD is another.  So here we increase FD\_SETSIZE to our}}
\L{\LB{ * configure\-discovered maximum *before* any system includes.}}
\L{\LB{ *\/\CE{}}}
\L{\LB{}}
\L{\LB{\C{}\/*}}
\L{\LB{ * Linux (2.x only?) always defines FD\_SETSIZE in \<linux\/time.h\> so}}
\L{\LB{ * we get in trouble if we try to increase it.  barf.}}
\L{\LB{ *\/\CE{}}}
\L{\LB{}}
\L{\LB{\K{\#ifndef} \_SQUID\_LINUX\_}}
\L{\LB{\K{\#if} SQUID\_MAXFD \> FD\_SETSIZE}}
\L{\LB{\K{\#define} FD\_SETSIZE SQUID\_MAXFD}}
\L{\LB{\K{\#endif}}}
\L{\LB{\K{\#endif} \C{}\/* \_SQUID\_LINUX\_ *\/\CE{}}}
\L{\LB{}}
\L{\LB{\K{\#if} HAVE\_UNISTD\_H}}
\L{\LB{\K{\#include} \<unistd.h\>}}
\L{\LB{\K{\#endif}}}
\L{\LB{\K{\#if} HAVE\_STDLIB\_H}}
\L{\LB{\K{\#include} \<stdlib.h\>}}
\L{\LB{\K{\#endif}}}
\L{\LB{\K{\#if} HAVE\_STDIO\_H}}
\L{\LB{\K{\#include} \<stdio.h\>}}
\L{\LB{\K{\#endif}}}
\L{\LB{\K{\#if} HAVE\_SYS\_TYPES\_H}}
\L{\LB{\K{\#include} \<sys\/types.h\>}}
\L{\LB{\K{\#endif}}}
\L{\LB{\K{\#if} HAVE\_CTYPE\_H}}
\L{\LB{\K{\#include} \<ctype.h\>}}
\L{\LB{\K{\#endif}}}
\L{\LB{\K{\#if} HAVE\_ERRNO\_H}}
\L{\LB{\K{\#include} \<errno.h\>}}
\L{\LB{\K{\#endif}}}
\L{\LB{\K{\#if} HAVE\_FCNTL\_H}}
\L{\LB{\K{\#include} \<fcntl.h\>}}
\L{\LB{\K{\#endif}}}
\L{\LB{\K{\#if} HAVE\_GRP\_H}}
\L{\LB{\K{\#include} \<grp.h\>}}
\L{\LB{\K{\#endif}}}
\L{\LB{\K{\#if} HAVE\_MALLOC\_H \&\& !defined(\_SQUID\_FREEBSD\_) \&\& !defined(\_SQUID\_NEXT\_)}}
\L{\LB{\K{\#include} \<malloc.h\>}}
\L{\LB{\K{\#endif}}}
\L{\LB{\K{\#if} HAVE\_MEMORY\_H}}
\L{\LB{\K{\#include} \<memory.h\>}}
\L{\LB{\K{\#endif}}}
\L{\LB{\K{\#if} HAVE\_NETDB\_H \&\& !defined(\_SQUID\_NETDB\_H\_)}\Tab{48}{\C{}\/* protect NEXTSTEP *\/\CE{}}}
\L{\LB{\K{\#define} \_SQUID\_NETDB\_H\_}}
\L{\LB{\K{\#ifdef} \_SQUID\_NEXT\_}}
\L{\LB{\K{\#include} \<netinet\/in\_systm.h\>}}
\L{\LB{\K{\#endif}}}
\L{\LB{\K{\#include} \<netdb.h\>}}
\L{\LB{\K{\#endif}}}
\L{\LB{\K{\#if} HAVE\_PWD\_H}}
\L{\LB{\K{\#include} \<pwd.h\>}}
\L{\LB{\K{\#endif}}}
\L{\LB{\K{\#if} HAVE\_SIGNAL\_H}}
\L{\LB{\K{\#include} \<signal.h\>}}
\L{\LB{\K{\#endif}}}
\L{\LB{\K{\#if} HAVE\_TIME\_H}}
\L{\LB{\K{\#include} \<time.h\>}}
\L{\LB{\K{\#endif}}}
\L{\LB{\K{\#if} HAVE\_SYS\_PARAM\_H}}
\L{\LB{\K{\#include} \<sys\/param.h\>}}
\L{\LB{\K{\#endif}}}
\L{\LB{\K{\#if} HAVE\_SYS\_TIME\_H}}
\L{\LB{\K{\#include} \<sys\/time.h\>}}
\L{\LB{\K{\#endif}}}
\L{\LB{\K{\#if} HAVE\_SYS\_RESOURCE\_H}}
\L{\LB{\K{\#include} \<sys\/resource.h\>}\Tab{32}{\C{}\/* needs sys\/time.h above it *\/\CE{}}}
\L{\LB{\K{\#endif}}}
\L{\LB{\K{\#if} HAVE\_SYS\_SOCKET\_H}}
\L{\LB{\K{\#include} \<sys\/socket.h\>}}
\L{\LB{\K{\#endif}}}
\L{\LB{\K{\#if} HAVE\_NETINET\_IN\_H}}
\L{\LB{\K{\#include} \<netinet\/in.h\>}}
\L{\LB{\K{\#endif}}}
\L{\LB{\K{\#if} HAVE\_ARPA\_INET\_H}}
\L{\LB{\K{\#include} \<arpa\/inet.h\>}}
\L{\LB{\K{\#endif}}}
\L{\LB{\K{\#if} HAVE\_SYS\_STAT\_H}}
\L{\LB{\K{\#include} \<sys\/stat.h\>}}
\L{\LB{\K{\#endif}}}
\L{\LB{\K{\#if} HAVE\_SYS\_UN\_H}}
\L{\LB{\K{\#include} \<sys\/un.h\>}}
\L{\LB{\K{\#endif}}}
\L{\LB{\K{\#if} HAVE\_SYS\_WAIT\_H}}
\L{\LB{\K{\#include} \<sys\/wait.h\>}}
\L{\LB{\K{\#endif}}}
\L{\LB{\K{\#if} HAVE\_LIBC\_H}}
\L{\LB{\K{\#include} \<libc.h\>}}
\L{\LB{\K{\#endif}}}
\L{\LB{\K{\#ifdef} HAVE\_SYS\_SYSCALL\_H}}
\L{\LB{\K{\#include} \<sys\/syscall.h\>}}
\L{\LB{\K{\#endif}}}
\L{\LB{\K{\#ifdef} HAVE\_STRING\_H}}
\L{\LB{\K{\#include} \<string.h\>}}
\L{\LB{\K{\#endif}}}
\L{\LB{\K{\#ifdef} HAVE\_STRINGS\_H}}
\L{\LB{\K{\#include} \<strings.h\>}}
\L{\LB{\K{\#endif}}}
\L{\LB{\K{\#if} HAVE\_BSTRING\_H}}
\L{\LB{\K{\#include} \<bstring.h\>}}
\L{\LB{\K{\#endif}}}
\L{\LB{\K{\#ifdef} HAVE\_CRYPT\_H}}
\L{\LB{\K{\#include} \<crypt.h\>}}
\L{\LB{\K{\#endif}}}
\L{\LB{\K{\#if} HAVE\_SYS\_SELECT\_H}}
\L{\LB{\K{\#include} \<sys\/select.h\>}}
\L{\LB{\K{\#endif}}}
\L{\LB{\K{\#if} HAVE\_GETOPT\_H}}
\L{\LB{\K{\#include} \<getopt.h\>}}
\L{\LB{\K{\#endif}}}
\L{\LB{}}
\L{\LB{\K{\#if} defined(USE\_POLL) \&\& HAVE\_POLL}}
\L{\LB{\K{\#if} HAVE\_POLL\_H}}
\L{\LB{\K{\#include} \<poll.h\>}}
\L{\LB{\K{\#endif} \C{}\/* HAVE\_POLL\_H *\/\CE{}}}
\L{\LB{\K{\#else}}}
\L{\LB{\K{\#undef} USE\_POLL}}
\L{\LB{\K{\#endif}}}
\L{\LB{}}
\L{\LB{\K{\#ifdef} \_\_STDC\_\_}}
\L{\LB{\K{\#include} \<stdarg.h\>}}
\L{\LB{\K{\#else}}}
\L{\LB{\K{\#include} \<varargs.h\>}}
\L{\LB{\K{\#endif}}}
\L{\LB{}}
\L{\LB{\C{}\/* Make sure syslog goes after stdarg\/varargs *\/\CE{}}}
\L{\LB{\K{\#ifdef} HAVE\_SYSLOG\_H}}
\L{\LB{\K{\#include} \<syslog.h\>}}
\L{\LB{\K{\#endif}}}
\L{\LB{}}
\L{\LB{\K{\#if} HAVE\_SHADOW\_H}}
\L{\LB{\K{\#include} \<shadow.h\>}}
\L{\LB{\K{\#endif}}}
\L{\LB{}}
\L{\LB{\K{\#if} !defined(MAXHOSTNAMELEN) \|\| (MAXHOSTNAMELEN \< 128)}}
\L{\LB{\K{\#define} SQUIDHOSTNAMELEN 128}}
\L{\LB{\K{\#else}}}
\L{\LB{\K{\#define} SQUIDHOSTNAMELEN MAXHOSTNAMELEN}}
\L{\LB{\K{\#endif}}}
\L{\LB{}}
\L{\LB{\K{\#define} SQUID\_MAXPATHLEN 256}}
\L{\LB{\K{\#ifndef} MAXPATHLEN}}
\L{\LB{\K{\#define} MAXPATHLEN SQUID\_MAXPATHLEN}}
\L{\LB{\K{\#endif}}}
\L{\LB{}}
\L{\LB{\K{\#if} !defined(HAVE\_GETRUSAGE) \&\& defined(\_SQUID\_HPUX\_)}}
\L{\LB{\K{\#define} HAVE\_GETRUSAGE 1}}
\L{\LB{\K{\#define} getrusage(a, b)  syscall(SYS\_GETRUSAGE, a, b)}}
\L{\LB{\K{\#endif}}}
\L{\LB{}}
\L{\LB{\K{\#if} !defined(HAVE\_GETPAGESIZE) \&\& defined(\_SQUID\_HPUX\_)}}
\L{\LB{\K{\#define} HAVE\_GETPAGESIZE}}
\L{\LB{\K{\#define} getpagesize( )   sysconf(\_SC\_PAGE\_SIZE)}}
\L{\LB{\K{\#endif}}}
\L{\LB{}}
\L{\LB{\K{\#ifndef} BUFSIZ}}
\L{\LB{\K{\#define} BUFSIZ  4096}\Tab{32}{\C{}\/* make reasonable guess *\/\CE{}}}
\L{\LB{\K{\#endif}}}
\L{\LB{}}
\L{\LB{\K{\#ifndef} SA\_RESTART}}
\L{\LB{\K{\#define} SA\_RESTART 0}}
\L{\LB{\K{\#endif}}}
\L{\LB{\K{\#ifndef} SA\_NODEFER}}
\L{\LB{\K{\#define} SA\_NODEFER 0}}
\L{\LB{\K{\#endif}}}
\L{\LB{\K{\#ifndef} SA\_RESETHAND}}
\L{\LB{\K{\#define} SA\_RESETHAND 0}}
\L{\LB{\K{\#endif}}}
\L{\LB{\K{\#if} SA\_RESETHAND == 0 \&\& defined(SA\_ONESHOT)}}
\L{\LB{\K{\#undef} SA\_RESETHAND}}
\L{\LB{\K{\#define} SA\_RESETHAND SA\_ONESHOT}}
\L{\LB{\K{\#endif}}}
\L{\LB{}}
\L{\LB{\K{typedef} \K{struct} sentry StoreEntry;}}
\L{\LB{\K{typedef} \K{struct} mem\_hdr *mem\_ptr;}}
\L{\LB{\K{typedef} \K{struct} \_edge edge;}}
\L{\LB{\K{typedef} \K{struct} icp\_common\_s icp\_common\_t;}}
\L{\LB{\K{typedef} \K{struct} \_cacheinfo cacheinfo;}}
\L{\LB{\K{typedef} \K{struct} \_aclCheck\_t aclCheck\_t;}}
\L{\LB{\K{typedef} \K{struct} \_request request\_t;}}
\L{\LB{\K{typedef} \K{struct} \_MemObject MemObject;}}
\L{\LB{\K{typedef} \K{struct} \_cachemgr\_passwd cachemgr\_passwd;}}
\L{\LB{}}
\L{\LB{\C{}\/* 32 bit integer compatability hack *\/\CE{}}}
\L{\LB{\K{\#if} SIZEOF\_INT == 4}}
\L{\LB{\K{typedef} \K{int} num32;}}
\L{\LB{\K{typedef} \K{unsigned} \K{int} u\_num32;}}
\L{\LB{\#elif SIZEOF\_LONG == 4}}
\L{\LB{\K{typedef} \K{long} num32;}}
\L{\LB{\K{typedef} \K{unsigned} \K{long} u\_num32;}}
\L{\LB{\K{\#else}}}
\L{\LB{\K{typedef} \K{long} num32;}\Tab{32}{\C{}\/* assume that long\'s are 32bit *\/\CE{}}}
\L{\LB{\K{typedef} \K{unsigned} \K{long} u\_num32;}}
\L{\LB{\K{\#endif}}}
\L{\LB{\K{\#define} NUM32LEN \K{sizeof}(num32)}\Tab{32}{\C{}\/* this should always be 4 *\/\CE{}}}
\L{\LB{}}
\L{\LB{\K{\#if} PURIFY}}
\L{\LB{\K{\#define} LOCAL\_ARRAY(type,name,size) \!}}
\L{\LB{        \K{static} type *local\_\#\#name=NULL; \!}}
\L{\LB{        type *name = local\_\#\#name ? local\_\#\#name : \!}}
\L{\LB{                ( local\_\#\#name = (type *)xcalloc(size, \K{sizeof}(type)) )}}
\L{\LB{\K{\#else}}}
\L{\LB{\K{\#define} LOCAL\_ARRAY(type,name,size) \K{static} type name[size]}}
\L{\LB{\K{\#endif}}}
\L{\LB{}}
\L{\LB{\K{\#include} \S{}\"ansiproto.h\"\SE{}}}
\L{\LB{}}
\L{\LB{\K{\#if} HAVE\_REGEX\_H}}
\L{\LB{\K{\#include} \<regex.h\>}}
\L{\LB{\K{\#else} \C{}\/* HAVE\_REGEX\_H *\/\CE{}}}
\L{\LB{\K{\#include} \S{}\"GNUregex.h\"\SE{}}}
\L{\LB{\K{\#endif} \C{}\/* HAVE\_REGEX\_H *\/\CE{}}}
\L{\LB{}}
\L{\LB{\C{}\/*}}
\L{\LB{ * So if FD\_SETSIZE is less than SQUID\_MAXFD we\'d probably better}}
\L{\LB{ * shrink SQUID\_MAXFD so that select(2) doesn\'t puke even though}}
\L{\LB{ * we might really be able to open more than FD\_SETSIZE descriptors.}}
\L{\LB{ * happy happy happy joy joy joy.}}
\L{\LB{ *\/\CE{}}}
\L{\LB{\K{\#if} FD\_SETSIZE \< SQUID\_MAXFD}}
\L{\LB{\K{\#undef} SQUID\_MAXFD}}
\L{\LB{\K{\#define} SQUID\_MAXFD FD\_SETSIZE}}
\L{\LB{\K{\#endif}}}
\L{\LB{}}
\L{\LB{\K{typedef} \K{void} (*SIH) (\K{int}, \K{void} *);}\Tab{40}{\C{}\/* swap in *\/\CE{}}}
\L{\LB{\K{typedef} \K{int} (*QS) (const \K{void} *, const \K{void} *);}}
\L{\LB{}}
\L{\LB{\K{\#include} \S{}\"cache\_cf.h\"\SE{}}}
\L{\LB{\K{\#include} \S{}\"comm.h\"\SE{}}}
\L{\LB{\K{\#include} \S{}\"debug.h\"\SE{}}}
\L{\LB{\K{\#include} \S{}\"disk.h\"\SE{}}}
\L{\LB{\K{\#include} \S{}\"fdstat.h\"\SE{}}}
\L{\LB{\K{\#include} \S{}\"filemap.h\"\SE{}}}
\L{\LB{\K{\#include} \S{}\"hash.h\"\SE{}}}
\L{\LB{\K{\#include} \S{}\"proto.h\"\SE{}}\Tab{32}{\C{}\/* must go before neighbors.h *\/\CE{}}}
\L{\LB{\K{\#include} \S{}\"neighbors.h\"\SE{}}\Tab{32}{\C{}\/* must go before url.h *\/\CE{}}}
\L{\LB{\C{}\/* DH Additions to original SQUID cache release *\/\CE{}}}
\L{\LB{\K{\#include} \S{}\"chash.h\"\SE{}}}
\L{\LB{\K{\#include} \S{}\"crc.h\"\SE{}}}
\L{\LB{\K{\#include} \S{}\"common.h\"\SE{}}}
\L{\LB{\K{\#include} \S{}\"deal.h\"\SE{}}}
\L{\LB{\K{\#include} \S{}\"dhrand.h\"\SE{}}}
\L{\LB{\K{\#include} \S{}\"getnet.h\"\SE{}}}
\L{\LB{\C{}\/* end DH changes *\/\CE{}}}
\L{\LB{\K{\#include} \S{}\"url.h\"\SE{}}}
\L{\LB{\K{\#include} \S{}\"icp.h\"\SE{}}}
\L{\LB{\K{\#include} \S{}\"errorpage.h\"\SE{}}\Tab{32}{\C{}\/* must go after icp.h *\/\CE{}}}
\L{\LB{\K{\#include} \S{}\"dns.h\"\SE{}}}
\L{\LB{\K{\#include} \S{}\"ipcache.h\"\SE{}}}
\L{\LB{\K{\#include} \S{}\"fqdncache.h\"\SE{}}}
\L{\LB{\K{\#include} \S{}\"mime.h\"\SE{}}}
\L{\LB{\K{\#include} \S{}\"stack.h\"\SE{}}}
\L{\LB{\K{\#include} \S{}\"stat.h\"\SE{}}}
\L{\LB{\K{\#include} \S{}\"stmem.h\"\SE{}}}
\L{\LB{\K{\#include} \S{}\"store.h\"\SE{}}}
\L{\LB{\K{\#include} \S{}\"tools.h\"\SE{}}}
\L{\LB{\K{\#include} \S{}\"http.h\"\SE{}}}
\L{\LB{\K{\#include} \S{}\"ftp.h\"\SE{}}}
\L{\LB{\K{\#include} \S{}\"gopher.h\"\SE{}}}
\L{\LB{\K{\#include} \S{}\"util.h\"\SE{}}}
\L{\LB{\K{\#include} \S{}\"event.h\"\SE{}}}
\L{\LB{\K{\#include} \S{}\"acl.h\"\SE{}}}
\L{\LB{\K{\#include} \S{}\"async\_io.h\"\SE{}}}
\L{\LB{\K{\#include} \S{}\"redirect.h\"\SE{}}}
\L{\LB{\K{\#include} \S{}\"client\_side.h\"\SE{}}}
\L{\LB{\K{\#include} \S{}\"useragent.h\"\SE{}}}
\L{\LB{\K{\#include} \S{}\"icmp.h\"\SE{}}}
\L{\LB{\K{\#include} \S{}\"net\_db.h\"\SE{}}}
\L{\LB{\K{\#include} \S{}\"client\_db.h\"\SE{}}}
\L{\LB{\K{\#include} \S{}\"objcache.h\"\SE{}}}
\L{\LB{\K{\#include} \S{}\"refresh.h\"\SE{}}}
\L{\LB{}}
\L{\LB{\K{\#if} !HAVE\_TEMPNAM}}
\L{\LB{\K{\#include} \S{}\"tempnam.h\"\SE{}}}
\L{\LB{\K{\#endif}}}
\L{\LB{}}
\L{\LB{\K{extern} \K{void} serverConnectionsClose \_PARAMS((\K{void}));}}
\L{\LB{\K{extern} \K{void} shut\_down \_PARAMS((\K{int}));}}
\L{\LB{}}
\L{\LB{}}
\L{\LB{\K{extern} time\_t squid\_starttime;}\Tab{32}{\C{}\/* main.c *\/\CE{}}}
\L{\LB{\K{extern} \K{int} do\_reuse;}\Tab{32}{\C{}\/* main.c *\/\CE{}}}
\L{\LB{\K{extern} \K{int} theHttpConnection;}\Tab{32}{\C{}\/* main.c *\/\CE{}}}
\L{\LB{\K{extern} \K{int} theInIcpConnection;}\Tab{32}{\C{}\/* main.c *\/\CE{}}}
\L{\LB{\K{extern} \K{int} theOutIcpConnection;}\Tab{32}{\C{}\/* main.c *\/\CE{}}}
\L{\LB{\K{extern} \K{int} vizSock;}}
\L{\LB{\K{extern} volatile \K{int} shutdown\_pending;}\Tab{40}{\C{}\/* main.c *\/\CE{}}}
\L{\LB{\K{extern} volatile \K{int} reread\_pending;}\Tab{40}{\C{}\/* main.c *\/\CE{}}}
\L{\LB{\K{extern} \K{int} opt\_unlink\_on\_reload;}\Tab{40}{\C{}\/* main.c *\/\CE{}}}
\L{\LB{\K{extern} \K{int} opt\_reload\_hit\_only;}\Tab{32}{\C{}\/* main.c *\/\CE{}}}
\L{\LB{\K{extern} \K{int} opt\_dns\_tests;}\Tab{32}{\C{}\/* main.c *\/\CE{}}}
\L{\LB{\K{extern} \K{int} opt\_foreground\_rebuild;}\Tab{40}{\C{}\/* main.c *\/\CE{}}}
\L{\LB{\K{extern} \K{int} opt\_zap\_disk\_store;}\Tab{32}{\C{}\/* main.c *\/\CE{}}}
\L{\LB{\K{extern} \K{int} opt\_syslog\_enable;}\Tab{32}{\C{}\/* main.c *\/\CE{}}}
\L{\LB{\K{extern} \K{int} opt\_catch\_signals;}\Tab{32}{\C{}\/* main.c *\/\CE{}}}
\L{\LB{\K{extern} \K{int} opt\_no\_ipcache;}\Tab{32}{\C{}\/* main.c *\/\CE{}}}
\L{\LB{\C{}\/* begin DH changes *\/\CE{}}}
\L{\LB{\K{extern} \K{int} opt\_dynamic\_hierarchy; \C{}\/* main.c \- DH option *\/\CE{}}}
\L{\LB{\C{}\/* end DH changes *\/\CE{}}}
\L{\LB{\K{extern} \K{int} vhost\_mode;}\Tab{32}{\C{}\/* main.c *\/\CE{}}}
\L{\LB{\K{extern} const \K{char} *const version\_string;}\Tab{48}{\C{}\/* main.c *\/\CE{}}}
\L{\LB{\K{extern} const \K{char} *const appname;}\Tab{40}{\C{}\/* main.c *\/\CE{}}}
\L{\LB{\K{extern} \K{struct} in\_addr local\_addr;}\Tab{40}{\C{}\/* main.c *\/\CE{}}}
\L{\LB{\K{extern} \K{struct} in\_addr theOutICPAddr;}\Tab{40}{\C{}\/* main.c *\/\CE{}}}
\L{\LB{\K{extern} const \K{char} *const localhost;}}
\L{\LB{\K{extern} \K{unsigned} \K{int} inaddr\_none;}}
\L{\LB{\K{extern} \K{struct} in\_addr any\_addr;}\Tab{32}{\C{}\/* comm.c *\/\CE{}}}
\L{\LB{\K{extern} \K{struct} in\_addr no\_addr;}\Tab{32}{\C{}\/* comm.c *\/\CE{}}}
\L{\LB{\K{extern} \K{int} opt\_udp\_hit\_obj;}\Tab{32}{\C{}\/* main.c *\/\CE{}}}
\L{\LB{\K{extern} \K{int} opt\_mem\_pools;}\Tab{32}{\C{}\/* main.c *\/\CE{}}}
\L{\LB{\K{extern} \K{int} opt\_forwarded\_for;}\Tab{32}{\C{}\/* main.c *\/\CE{}}}
\L{\LB{\K{extern} \K{int} opt\_accel\_uses\_host;}\Tab{32}{\C{}\/* main.c *\/\CE{}}}
\L{\LB{\K{extern} \K{char} ThisCache[];}\Tab{32}{\C{}\/* main.c *\/\CE{}}}
\L{\LB{}}
\L{\LB{\C{}\/* Prototypes and definitions which don\'t really deserve a seaprate}}
\L{\LB{ * include file *\/\CE{}}}
\L{\LB{}}
\L{\LB{\K{\#define}  CONNECT\_PORT        443}}
\L{\LB{}}
\L{\LB{\K{extern} \K{int} objcacheStart \_PARAMS((\K{int}, const \K{char} *, StoreEntry *));}}
\L{\LB{\K{extern} \K{void} send\_announce \_PARAMS((\K{void} *unused));}}
\L{\LB{\K{extern} \K{int} sslStart \_PARAMS((\K{int} fd, const \K{char} *, request\_t *, \K{char} *, \K{int} *sz));}}
\L{\LB{\K{extern} const \K{char} *storeToString \_PARAMS((const StoreEntry *));}}
\L{\LB{\K{extern} \K{int} waisStart \_PARAMS((\K{int}, const \K{char} *, method\_t, \K{char} *, StoreEntry *));}}
\L{\LB{\K{extern} \K{void} storeDirClean \_PARAMS((\K{void} *unused));}}
\L{\LB{\K{extern} \K{int} passStart \_PARAMS((\K{int} fd,}}
\L{\LB{}\Tab{8}{const \K{char} *url,}}
\L{\LB{}\Tab{8}{request\_t * request,}}
\L{\LB{}\Tab{8}{\K{char} *buf,}}
\L{\LB{}\Tab{8}{\K{int} buflen,}}
\L{\LB{}\Tab{8}{\K{int} *size\_ptr));}}
\L{\LB{\K{extern} \K{void} identStart \_PARAMS((\K{int}, icpStateData *,}}
\L{\LB{\Proc{void}}\Tab{8}{\K{void}       (*callback) \_PARAMS((\K{void} *))));}}
\L{\LB{}}
\L{\LB{\K{extern} const \K{char} *const dash\_str;}}
\L{\LB{\K{extern} const \K{char} *const null\_string;}}
\L{\LB{}}
\L{\LB{\K{\#define} OR(A,B) (A ? A : B)}}
\L{\LB{}}
\L{\LB{\K{\#endif} \C{}\/* SQUID\_H *\/\CE{}}}
