]> git.ipfire.org Git - thirdparty/squid.git/commitdiff
A bunch of quick patches to silence gcc warnings when compiling
authoradrian <>
Wed, 17 Oct 2001 16:59:08 +0000 (16:59 +0000)
committeradrian <>
Wed, 17 Oct 2001 16:59:08 +0000 (16:59 +0000)
with FreeBSD's BDECFLAGS. These include duplicate declarations,
declarations shadowing global declarations, implicit type size
and signed/unsigned conversions.

src/HttpHeader.cc
src/access_log.cc
src/acl.cc
src/asn.cc
src/enums.h
src/protos.h
src/store_rebuild.cc

index 3838ae010757a5084d5c6dd210368e62d433f956..50dce1cc73e0bd8759f91584545474f73f53c61d 100644 (file)
@@ -1,6 +1,6 @@
 
 /*
- * $Id: HttpHeader.cc,v 1.70 2001/04/14 00:25:17 hno Exp $
+ * $Id: HttpHeader.cc,v 1.71 2001/10/17 10:59:08 adrian Exp $
  *
  * DEBUG: section 55    HTTP Header
  * AUTHOR: Alex Rousskov
  */
 static const HttpHeaderFieldAttrs HeadersAttrs[] =
 {
-    {"Accept", HDR_ACCEPT, ftStr},
-    {"Accept-Charset", HDR_ACCEPT_CHARSET, ftStr},
-    {"Accept-Encoding", HDR_ACCEPT_ENCODING, ftStr},
-    {"Accept-Language", HDR_ACCEPT_LANGUAGE, ftStr},
-    {"Accept-Ranges", HDR_ACCEPT_RANGES, ftStr},
-    {"Age", HDR_AGE, ftInt},
-    {"Allow", HDR_ALLOW, ftStr},
-    {"Authorization", HDR_AUTHORIZATION, ftStr},       /* for now */
-    {"Cache-Control", HDR_CACHE_CONTROL, ftPCc},
-    {"Connection", HDR_CONNECTION, ftStr},
-    {"Content-Base", HDR_CONTENT_BASE, ftStr},
-    {"Content-Encoding", HDR_CONTENT_ENCODING, ftStr},
-    {"Content-Language", HDR_CONTENT_LANGUAGE, ftStr},
-    {"Content-Length", HDR_CONTENT_LENGTH, ftInt},
-    {"Content-Location", HDR_CONTENT_LOCATION, ftStr},
-    {"Content-MD5", HDR_CONTENT_MD5, ftStr},   /* for now */
-    {"Content-Range", HDR_CONTENT_RANGE, ftPContRange},
-    {"Content-Type", HDR_CONTENT_TYPE, ftStr},
-    {"Cookie", HDR_COOKIE, ftStr},
-    {"Date", HDR_DATE, ftDate_1123},
-    {"ETag", HDR_ETAG, ftETag},
-    {"Expires", HDR_EXPIRES, ftDate_1123},
-    {"From", HDR_FROM, ftStr},
-    {"Host", HDR_HOST, ftStr},
-    {"If-Match", HDR_IF_MATCH, ftStr}, /* for now */
-    {"If-Modified-Since", HDR_IF_MODIFIED_SINCE, ftDate_1123},
-    {"If-None-Match", HDR_IF_NONE_MATCH, ftStr},       /* for now */
-    {"If-Range", HDR_IF_RANGE, ftDate_1123_or_ETag},
-    {"Last-Modified", HDR_LAST_MODIFIED, ftDate_1123},
-    {"Link", HDR_LINK, ftStr},
-    {"Location", HDR_LOCATION, ftStr},
-    {"Max-Forwards", HDR_MAX_FORWARDS, ftInt},
-    {"Mime-Version", HDR_MIME_VERSION, ftStr}, /* for now */
-    {"Pragma", HDR_PRAGMA, ftStr},
-    {"Proxy-Authenticate", HDR_PROXY_AUTHENTICATE, ftStr},
-    {"Proxy-Authentication-Info", HDR_PROXY_AUTHENTICATION_INFO, ftStr},
-    {"Proxy-Authorization", HDR_PROXY_AUTHORIZATION, ftStr},
-    {"Proxy-Connection", HDR_PROXY_CONNECTION, ftStr},
-    {"Public", HDR_PUBLIC, ftStr},
-    {"Range", HDR_RANGE, ftPRange},
-    {"Referer", HDR_REFERER, ftStr},
-    {"Request-Range", HDR_REQUEST_RANGE, ftPRange},    /* usually matches HDR_RANGE */
-    {"Retry-After", HDR_RETRY_AFTER, ftStr},   /* for now (ftDate_1123 or ftInt!) */
-    {"Server", HDR_SERVER, ftStr},
-    {"Set-Cookie", HDR_SET_COOKIE, ftStr},
-    {"Title", HDR_TITLE, ftStr},
-    {"Upgrade", HDR_UPGRADE, ftStr},   /* for now */
-    {"User-Agent", HDR_USER_AGENT, ftStr},
-    {"Vary", HDR_VARY, ftStr}, /* for now */
-    {"Via", HDR_VIA, ftStr},   /* for now */
-    {"Warning", HDR_WARNING, ftStr},   /* for now */
-    {"WWW-Authenticate", HDR_WWW_AUTHENTICATE, ftStr},
-    {"Authentication-Info", HDR_AUTHENTICATION_INFO, ftStr},
-    {"X-Cache", HDR_X_CACHE, ftStr},
-    {"X-Cache-Lookup", HDR_X_CACHE_LOOKUP, ftStr},
-    {"X-Forwarded-For", HDR_X_FORWARDED_FOR, ftStr},
-    {"X-Request-URI", HDR_X_REQUEST_URI, ftStr},
-    {"X-Squid-Error", HDR_X_SQUID_ERROR, ftStr},
-    {"Negotiate", HDR_NEGOTIATE, ftStr},
+  {"Accept", HDR_ACCEPT, ftStr},
+  {"Accept-Charset", HDR_ACCEPT_CHARSET, ftStr},
+  {"Accept-Encoding", HDR_ACCEPT_ENCODING, ftStr},
+  {"Accept-Language", HDR_ACCEPT_LANGUAGE, ftStr},
+  {"Accept-Ranges", HDR_ACCEPT_RANGES, ftStr},
+  {"Age", HDR_AGE, ftInt},
+  {"Allow", HDR_ALLOW, ftStr},
+  {"Authorization", HDR_AUTHORIZATION, ftStr}, /* for now */
+  {"Cache-Control", HDR_CACHE_CONTROL, ftPCc},
+  {"Connection", HDR_CONNECTION, ftStr},
+  {"Content-Base", HDR_CONTENT_BASE, ftStr},
+  {"Content-Encoding", HDR_CONTENT_ENCODING, ftStr},
+  {"Content-Language", HDR_CONTENT_LANGUAGE, ftStr},
+  {"Content-Length", HDR_CONTENT_LENGTH, ftInt},
+  {"Content-Location", HDR_CONTENT_LOCATION, ftStr},
+  {"Content-MD5", HDR_CONTENT_MD5, ftStr},     /* for now */
+  {"Content-Range", HDR_CONTENT_RANGE, ftPContRange},
+  {"Content-Type", HDR_CONTENT_TYPE, ftStr},
+  {"Cookie", HDR_COOKIE, ftStr},
+  {"Date", HDR_DATE, ftDate_1123},
+  {"ETag", HDR_ETAG, ftETag},
+  {"Expires", HDR_EXPIRES, ftDate_1123},
+  {"From", HDR_FROM, ftStr},
+  {"Host", HDR_HOST, ftStr},
+  {"If-Match", HDR_IF_MATCH, ftStr},   /* for now */
+  {"If-Modified-Since", HDR_IF_MODIFIED_SINCE, ftDate_1123},
+  {"If-None-Match", HDR_IF_NONE_MATCH, ftStr}, /* for now */
+  {"If-Range", HDR_IF_RANGE, ftDate_1123_or_ETag},
+  {"Last-Modified", HDR_LAST_MODIFIED, ftDate_1123},
+  {"Link", HDR_LINK, ftStr},
+  {"Location", HDR_LOCATION, ftStr},
+  {"Max-Forwards", HDR_MAX_FORWARDS, ftInt},
+  {"Mime-Version", HDR_MIME_VERSION, ftStr},   /* for now */
+  {"Pragma", HDR_PRAGMA, ftStr},
+  {"Proxy-Authenticate", HDR_PROXY_AUTHENTICATE, ftStr},
+  {"Proxy-Authentication-Info", HDR_PROXY_AUTHENTICATION_INFO, ftStr},
+  {"Proxy-Authorization", HDR_PROXY_AUTHORIZATION, ftStr},
+  {"Proxy-Connection", HDR_PROXY_CONNECTION, ftStr},
+  {"Public", HDR_PUBLIC, ftStr},
+  {"Range", HDR_RANGE, ftPRange},
+  {"Referer", HDR_REFERER, ftStr},
+  {"Request-Range", HDR_REQUEST_RANGE, ftPRange},      /* usually matches HDR_RANGE */
+  {"Retry-After", HDR_RETRY_AFTER, ftStr},     /* for now (ftDate_1123 or ftInt!) */
+  {"Server", HDR_SERVER, ftStr},
+  {"Set-Cookie", HDR_SET_COOKIE, ftStr},
+  {"Title", HDR_TITLE, ftStr},
+  {"Upgrade", HDR_UPGRADE, ftStr},     /* for now */
+  {"User-Agent", HDR_USER_AGENT, ftStr},
+  {"Vary", HDR_VARY, ftStr},   /* for now */
+  {"Via", HDR_VIA, ftStr},     /* for now */
+  {"Warning", HDR_WARNING, ftStr},     /* for now */
+  {"WWW-Authenticate", HDR_WWW_AUTHENTICATE, ftStr},
+  {"Authentication-Info", HDR_AUTHENTICATION_INFO, ftStr},
+  {"X-Cache", HDR_X_CACHE, ftStr},
+  {"X-Cache-Lookup", HDR_X_CACHE_LOOKUP, ftStr},
+  {"X-Forwarded-For", HDR_X_FORWARDED_FOR, ftStr},
+  {"X-Request-URI", HDR_X_REQUEST_URI, ftStr},
+  {"X-Squid-Error", HDR_X_SQUID_ERROR, ftStr},
+  {"Negotiate", HDR_NEGOTIATE, ftStr},
 #if X_ACCELERATOR_VARY
-    {"X-Accelerator-Vary", HDR_X_ACCELERATOR_VARY, ftStr},
+  {"X-Accelerator-Vary", HDR_X_ACCELERATOR_VARY, ftStr},
 #endif
-    {"Other:", HDR_OTHER, ftStr}       /* ':' will not allow matches */
+  {"Other:", HDR_OTHER, ftStr} /* ':' will not allow matches */
 };
 static HttpHeaderFieldInfo *Headers = NULL;
 
@@ -139,88 +139,88 @@ static HttpHeaderFieldInfo *Headers = NULL;
 static HttpHeaderMask ListHeadersMask; /* set run-time using  ListHeadersArr */
 static http_hdr_type ListHeadersArr[] =
 {
-    HDR_ACCEPT,
-    HDR_ACCEPT_CHARSET, HDR_ACCEPT_ENCODING, HDR_ACCEPT_LANGUAGE,
-    HDR_ACCEPT_RANGES, HDR_ALLOW,
-    HDR_CACHE_CONTROL,
-    HDR_CONTENT_ENCODING,
-    HDR_CONTENT_LANGUAGE,
-    HDR_CONNECTION,
-    HDR_IF_MATCH, HDR_IF_NONE_MATCH,
-    HDR_LINK, HDR_PRAGMA,
-    HDR_PROXY_CONNECTION,
+  HDR_ACCEPT,
+  HDR_ACCEPT_CHARSET, HDR_ACCEPT_ENCODING, HDR_ACCEPT_LANGUAGE,
+  HDR_ACCEPT_RANGES, HDR_ALLOW,
+  HDR_CACHE_CONTROL,
+  HDR_CONTENT_ENCODING,
+  HDR_CONTENT_LANGUAGE,
+  HDR_CONNECTION,
+  HDR_IF_MATCH, HDR_IF_NONE_MATCH,
+  HDR_LINK, HDR_PRAGMA,
+  HDR_PROXY_CONNECTION,
     /* HDR_TRANSFER_ENCODING, */
-    HDR_UPGRADE,
-    HDR_VARY,
-    HDR_VIA,
+  HDR_UPGRADE,
+  HDR_VARY,
+  HDR_VIA,
     /* HDR_WARNING, */
-    HDR_WWW_AUTHENTICATE,
-    HDR_AUTHENTICATION_INFO,
-    HDR_PROXY_AUTHENTICATION_INFO,
+  HDR_WWW_AUTHENTICATE,
+  HDR_AUTHENTICATION_INFO,
+  HDR_PROXY_AUTHENTICATION_INFO,
     /* HDR_EXPECT, HDR_TE, HDR_TRAILER */
 #if X_ACCELERATOR_VARY
-    HDR_X_ACCELERATOR_VARY,
+  HDR_X_ACCELERATOR_VARY,
 #endif
-    HDR_X_FORWARDED_FOR
+  HDR_X_FORWARDED_FOR
 };
 
 /* general-headers */
 static http_hdr_type GeneralHeadersArr[] =
 {
-    HDR_CACHE_CONTROL, HDR_CONNECTION, HDR_DATE, HDR_PRAGMA,
+  HDR_CACHE_CONTROL, HDR_CONNECTION, HDR_DATE, HDR_PRAGMA,
     /* HDR_TRANSFER_ENCODING, */
-    HDR_UPGRADE,
+  HDR_UPGRADE,
     /* HDR_TRAILER, */
-    HDR_VIA
+  HDR_VIA
 };
 
 /* entity-headers */
 static http_hdr_type EntityHeadersArr[] =
 {
-    HDR_ALLOW, HDR_CONTENT_BASE, HDR_CONTENT_ENCODING, HDR_CONTENT_LANGUAGE,
-    HDR_CONTENT_LENGTH, HDR_CONTENT_LOCATION, HDR_CONTENT_MD5,
-    HDR_CONTENT_RANGE, HDR_CONTENT_TYPE, HDR_ETAG, HDR_EXPIRES, HDR_LAST_MODIFIED, HDR_LINK,
-    HDR_OTHER
+  HDR_ALLOW, HDR_CONTENT_BASE, HDR_CONTENT_ENCODING, HDR_CONTENT_LANGUAGE,
+  HDR_CONTENT_LENGTH, HDR_CONTENT_LOCATION, HDR_CONTENT_MD5,
+  HDR_CONTENT_RANGE, HDR_CONTENT_TYPE, HDR_ETAG, HDR_EXPIRES, HDR_LAST_MODIFIED, HDR_LINK,
+  HDR_OTHER
 };
 
 static HttpHeaderMask ReplyHeadersMask;                /* set run-time using ReplyHeaders */
 static http_hdr_type ReplyHeadersArr[] =
 {
-    HDR_ACCEPT, HDR_ACCEPT_CHARSET, HDR_ACCEPT_ENCODING, HDR_ACCEPT_LANGUAGE,
-    HDR_ACCEPT_RANGES, HDR_AGE,
-    HDR_LOCATION, HDR_MAX_FORWARDS,
-    HDR_MIME_VERSION, HDR_PUBLIC, HDR_RETRY_AFTER, HDR_SERVER, HDR_SET_COOKIE,
-    HDR_VARY,
-    HDR_WARNING, HDR_PROXY_CONNECTION, HDR_X_CACHE,
-    HDR_X_CACHE_LOOKUP,
-    HDR_X_REQUEST_URI,
+  HDR_ACCEPT, HDR_ACCEPT_CHARSET, HDR_ACCEPT_ENCODING, HDR_ACCEPT_LANGUAGE,
+  HDR_ACCEPT_RANGES, HDR_AGE,
+  HDR_LOCATION, HDR_MAX_FORWARDS,
+  HDR_MIME_VERSION, HDR_PUBLIC, HDR_RETRY_AFTER, HDR_SERVER, HDR_SET_COOKIE,
+  HDR_VARY,
+  HDR_WARNING, HDR_PROXY_CONNECTION, HDR_X_CACHE,
+  HDR_X_CACHE_LOOKUP,
+  HDR_X_REQUEST_URI,
 #if X_ACCELERATOR_VARY
-    HDR_X_ACCELERATOR_VARY,
+  HDR_X_ACCELERATOR_VARY,
 #endif
-    HDR_X_SQUID_ERROR
+  HDR_X_SQUID_ERROR
 };
 
 static HttpHeaderMask RequestHeadersMask;      /* set run-time using RequestHeaders */
 static http_hdr_type RequestHeadersArr[] =
 {
-    HDR_AUTHORIZATION, HDR_FROM, HDR_HOST,
-    HDR_IF_MATCH, HDR_IF_MODIFIED_SINCE, HDR_IF_NONE_MATCH,
-    HDR_IF_RANGE, HDR_MAX_FORWARDS, HDR_PROXY_CONNECTION,
-    HDR_PROXY_AUTHORIZATION, HDR_RANGE, HDR_REFERER, HDR_REQUEST_RANGE,
-    HDR_USER_AGENT, HDR_X_FORWARDED_FOR
+  HDR_AUTHORIZATION, HDR_FROM, HDR_HOST,
+  HDR_IF_MATCH, HDR_IF_MODIFIED_SINCE, HDR_IF_NONE_MATCH,
+  HDR_IF_RANGE, HDR_MAX_FORWARDS, HDR_PROXY_CONNECTION,
+  HDR_PROXY_AUTHORIZATION, HDR_RANGE, HDR_REFERER, HDR_REQUEST_RANGE,
+  HDR_USER_AGENT, HDR_X_FORWARDED_FOR
 };
 
 /* header accounting */
 static HttpHeaderStat HttpHeaderStats[] =
 {
-    {"all"},
+  {"all"},
 #if USE_HTCP
-    {"HTCP reply"},
+  {"HTCP reply"},
 #endif
-    {"request"},
-    {"reply"}
+  {"request"},
+  {"reply"}
 };
-static int HttpHeaderStatCount = countof(HttpHeaderStats);
+static int HttpHeaderStatCount = countof (HttpHeaderStats);
 
 static int HeaderEntryParsedCount = 0;
 
@@ -230,73 +230,73 @@ static int HeaderEntryParsedCount = 0;
 
 #define assert_eid(id) assert((id) >= 0 && (id) < HDR_ENUM_END)
 
-static HttpHeaderEntry *httpHeaderEntryCreate(http_hdr_type id, const char *name, const char *value);
-static void httpHeaderEntryDestroy(HttpHeaderEntry * e);
-static HttpHeaderEntry *httpHeaderEntryParseCreate(const char *field_start, const char *field_end);
-static void httpHeaderNoteParsedEntry(http_hdr_type id, String value, int error);
+static HttpHeaderEntry *httpHeaderEntryCreate (http_hdr_type id, const char *name, const char *value);
+static void httpHeaderEntryDestroy (HttpHeaderEntry * e);
+static HttpHeaderEntry *httpHeaderEntryParseCreate (const char *field_start, const char *field_end);
+static void httpHeaderNoteParsedEntry (http_hdr_type id, String value, int error);
 
-static void httpHeaderStatInit(HttpHeaderStat * hs, const char *label);
-static void httpHeaderStatDump(const HttpHeaderStat * hs, StoreEntry * e);
+static void httpHeaderStatInit (HttpHeaderStat * hs, const char *label);
+static void httpHeaderStatDump (const HttpHeaderStat * hs, StoreEntry * e);
 
 /*
  * Module initialization routines
  */
 
 void
-httpHeaderInitModule(void)
+httpHeaderInitModule (void)
 {
-    int i;
-    /* check that we have enough space for masks */
-    assert(8 * sizeof(HttpHeaderMask) >= HDR_ENUM_END);
-    /* all headers must be described */
-    assert(countof(HeadersAttrs) == HDR_ENUM_END);
-    if (!Headers)
-       Headers = httpHeaderBuildFieldsInfo(HeadersAttrs, HDR_ENUM_END);
-    /* create masks */
-    httpHeaderMaskInit(&ListHeadersMask, 0);
-    httpHeaderCalcMask(&ListHeadersMask, (const int *) ListHeadersArr, countof(ListHeadersArr));
-    httpHeaderMaskInit(&ReplyHeadersMask, 0);
-    httpHeaderCalcMask(&ReplyHeadersMask, (const int *) ReplyHeadersArr, countof(ReplyHeadersArr));
-    httpHeaderCalcMask(&ReplyHeadersMask, (const int *) GeneralHeadersArr, countof(GeneralHeadersArr));
-    httpHeaderCalcMask(&ReplyHeadersMask, (const int *) EntityHeadersArr, countof(EntityHeadersArr));
-    httpHeaderMaskInit(&RequestHeadersMask, 0);
-    httpHeaderCalcMask(&RequestHeadersMask, (const int *) RequestHeadersArr, countof(RequestHeadersArr));
-    httpHeaderCalcMask(&RequestHeadersMask, (const int *) GeneralHeadersArr, countof(GeneralHeadersArr));
-    httpHeaderCalcMask(&RequestHeadersMask, (const int *) EntityHeadersArr, countof(EntityHeadersArr));
-    /* init header stats */
-    assert(HttpHeaderStatCount == hoReply + 1);
-    for (i = 0; i < HttpHeaderStatCount; i++)
-       httpHeaderStatInit(HttpHeaderStats + i, HttpHeaderStats[i].label);
-    HttpHeaderStats[hoRequest].owner_mask = &RequestHeadersMask;
-    HttpHeaderStats[hoReply].owner_mask = &ReplyHeadersMask;
+  int i;
+  /* check that we have enough space for masks */
+  assert (8 * sizeof (HttpHeaderMask) >= HDR_ENUM_END);
+  /* all headers must be described */
+  assert (countof (HeadersAttrs) == HDR_ENUM_END);
+  if (!Headers)
+    Headers = httpHeaderBuildFieldsInfo (HeadersAttrs, HDR_ENUM_END);
+  /* create masks */
+  httpHeaderMaskInit (&ListHeadersMask, 0);
+  httpHeaderCalcMask (&ListHeadersMask, (const int *) ListHeadersArr, countof (ListHeadersArr));
+  httpHeaderMaskInit (&ReplyHeadersMask, 0);
+  httpHeaderCalcMask (&ReplyHeadersMask, (const int *) ReplyHeadersArr, countof (ReplyHeadersArr));
+  httpHeaderCalcMask (&ReplyHeadersMask, (const int *) GeneralHeadersArr, countof (GeneralHeadersArr));
+  httpHeaderCalcMask (&ReplyHeadersMask, (const int *) EntityHeadersArr, countof (EntityHeadersArr));
+  httpHeaderMaskInit (&RequestHeadersMask, 0);
+  httpHeaderCalcMask (&RequestHeadersMask, (const int *) RequestHeadersArr, countof (RequestHeadersArr));
+  httpHeaderCalcMask (&RequestHeadersMask, (const int *) GeneralHeadersArr, countof (GeneralHeadersArr));
+  httpHeaderCalcMask (&RequestHeadersMask, (const int *) EntityHeadersArr, countof (EntityHeadersArr));
+  /* init header stats */
+  assert (HttpHeaderStatCount == hoReply + 1);
+  for (i = 0; i < HttpHeaderStatCount; i++)
+    httpHeaderStatInit (HttpHeaderStats + i, HttpHeaderStats[i].label);
+  HttpHeaderStats[hoRequest].owner_mask = &RequestHeadersMask;
+  HttpHeaderStats[hoReply].owner_mask = &ReplyHeadersMask;
 #if USE_HTCP
-    HttpHeaderStats[hoHtcpReply].owner_mask = &ReplyHeadersMask;
+  HttpHeaderStats[hoHtcpReply].owner_mask = &ReplyHeadersMask;
 #endif
-    /* init dependent modules */
-    httpHdrCcInitModule();
-    /* register with cache manager */
-    cachemgrRegister("http_headers",
-       "HTTP Header Statistics", httpHeaderStoreReport, 0, 1);
+  /* init dependent modules */
+  httpHdrCcInitModule ();
+  /* register with cache manager */
+  cachemgrRegister ("http_headers",
+                   "HTTP Header Statistics", httpHeaderStoreReport, 0, 1);
 }
 
 void
-httpHeaderCleanModule(void)
+httpHeaderCleanModule (void)
 {
-    httpHeaderDestroyFieldsInfo(Headers, HDR_ENUM_END);
-    Headers = NULL;
-    httpHdrCcCleanModule();
+  httpHeaderDestroyFieldsInfo (Headers, HDR_ENUM_END);
+  Headers = NULL;
+  httpHdrCcCleanModule ();
 }
 
 static void
-httpHeaderStatInit(HttpHeaderStat * hs, const char *label)
+httpHeaderStatInit (HttpHeaderStat * hs, const char *label)
 {
-    assert(hs);
-    assert(label);
-    memset(hs, 0, sizeof(HttpHeaderStat));
-    hs->label = label;
-    statHistEnumInit(&hs->hdrUCountDistr, 32); /* not a real enum */
-    statHistEnumInit(&hs->fieldTypeDistr, HDR_ENUM_END);
-    statHistEnumInit(&hs->ccTypeDistr, CC_ENUM_END);
+  assert (hs);
+  assert (label);
+  memset (hs, 0, sizeof (HttpHeaderStat));
+  hs->label = label;
+  statHistEnumInit (&hs->hdrUCountDistr, 32);  /* not a real enum */
+  statHistEnumInit (&hs->fieldTypeDistr, HDR_ENUM_END);
+  statHistEnumInit (&hs->ccTypeDistr, CC_ENUM_END);
 }
 
 /*
@@ -304,153 +304,163 @@ httpHeaderStatInit(HttpHeaderStat * hs, const char *label)
  */
 
 void
-httpHeaderInit(HttpHeader * hdr, http_hdr_owner_type owner)
+httpHeaderInit (HttpHeader * hdr, http_hdr_owner_type owner)
 {
-    assert(hdr);
-    assert(owner > hoNone && owner <= hoReply);
-    debug(55, 7) ("init-ing hdr: %p owner: %d\n", hdr, owner);
-    memset(hdr, 0, sizeof(*hdr));
-    hdr->owner = owner;
-    arrayInit(&hdr->entries);
+  assert (hdr);
+  assert (owner > hoNone && owner <= hoReply);
+  debug (55, 7) ("init-ing hdr: %p owner: %d\n", hdr, owner);
+  memset (hdr, 0, sizeof (*hdr));
+  hdr->owner = owner;
+  arrayInit (&hdr->entries);
 }
 
 void
-httpHeaderClean(HttpHeader * hdr)
+httpHeaderClean (HttpHeader * hdr)
 {
-    HttpHeaderPos pos = HttpHeaderInitPos;
-    HttpHeaderEntry *e;
-
-    assert(hdr);
-    assert(hdr->owner > hoNone && hdr->owner <= hoReply);
-    debug(55, 7) ("cleaning hdr: %p owner: %d\n", hdr, hdr->owner);
-
-    statHistCount(&HttpHeaderStats[hdr->owner].hdrUCountDistr, hdr->entries.count);
-    HttpHeaderStats[hdr->owner].destroyedCount++;
-    HttpHeaderStats[hdr->owner].busyDestroyedCount += hdr->entries.count > 0;
-    while ((e = httpHeaderGetEntry(hdr, &pos))) {
-       /* tmp hack to try to avoid coredumps */
-       if (e->id < 0 || e->id >= HDR_ENUM_END) {
-           debug(55, 0) ("httpHeaderClean BUG: entry[%d] is invalid (%d). Ignored.\n",
-               pos, e->id);
-       } else {
-           statHistCount(&HttpHeaderStats[hdr->owner].fieldTypeDistr, e->id);
-           /* yes, this destroy() leaves us in an incosistent state */
-           httpHeaderEntryDestroy(e);
+  HttpHeaderPos pos = HttpHeaderInitPos;
+  HttpHeaderEntry *e;
+
+  assert (hdr);
+  assert (hdr->owner > hoNone && hdr->owner <= hoReply);
+  debug (55, 7) ("cleaning hdr: %p owner: %d\n", hdr, hdr->owner);
+
+  statHistCount (&HttpHeaderStats[hdr->owner].hdrUCountDistr, hdr->entries.count);
+  HttpHeaderStats[hdr->owner].destroyedCount++;
+  HttpHeaderStats[hdr->owner].busyDestroyedCount += hdr->entries.count > 0;
+  while ((e = httpHeaderGetEntry (hdr, &pos)))
+    {
+      /* tmp hack to try to avoid coredumps */
+      if (e->id < 0 || e->id >= HDR_ENUM_END)
+       {
+         debug (55, 0) ("httpHeaderClean BUG: entry[%d] is invalid (%d). Ignored.\n",
+                        pos, e->id);
+       }
+      else
+       {
+         statHistCount (&HttpHeaderStats[hdr->owner].fieldTypeDistr, e->id);
+         /* yes, this destroy() leaves us in an incosistent state */
+         httpHeaderEntryDestroy (e);
        }
     }
-    arrayClean(&hdr->entries);
+  arrayClean (&hdr->entries);
 }
 
 /* append entries (also see httpHeaderUpdate) */
 void
-httpHeaderAppend(HttpHeader * dest, const HttpHeader * src)
+httpHeaderAppend (HttpHeader * dest, const HttpHeader * src)
 {
-    const HttpHeaderEntry *e;
-    HttpHeaderPos pos = HttpHeaderInitPos;
-    assert(src && dest);
-    assert(src != dest);
-    debug(55, 7) ("appending hdr: %p += %p\n", dest, src);
-
-    while ((e = httpHeaderGetEntry(src, &pos))) {
-       httpHeaderAddEntry(dest, httpHeaderEntryClone(e));
+  const HttpHeaderEntry *e;
+  HttpHeaderPos pos = HttpHeaderInitPos;
+  assert (src && dest);
+  assert (src != dest);
+  debug (55, 7) ("appending hdr: %p += %p\n", dest, src);
+
+  while ((e = httpHeaderGetEntry (src, &pos)))
+    {
+      httpHeaderAddEntry (dest, httpHeaderEntryClone (e));
     }
 }
 
 /* use fresh entries to replace old ones */
 void
-httpHeaderUpdate(HttpHeader * old, const HttpHeader * fresh, const HttpHeaderMask * denied_mask)
+httpHeaderUpdate (HttpHeader * old, const HttpHeader * fresh, const HttpHeaderMask * denied_mask)
 {
-    const HttpHeaderEntry *e;
-    HttpHeaderPos pos = HttpHeaderInitPos;
-    assert(old && fresh);
-    assert(old != fresh);
-    debug(55, 7) ("updating hdr: %p <- %p\n", old, fresh);
-
-    while ((e = httpHeaderGetEntry(fresh, &pos))) {
-       /* deny bad guys (ok to check for HDR_OTHER) here */
-       if (denied_mask && CBIT_TEST(*denied_mask, e->id))
-           continue;
-       httpHeaderDelByName(old, strBuf(e->name));
-       httpHeaderAddEntry(old, httpHeaderEntryClone(e));
+  const HttpHeaderEntry *e;
+  HttpHeaderPos pos = HttpHeaderInitPos;
+  assert (old && fresh);
+  assert (old != fresh);
+  debug (55, 7) ("updating hdr: %p <- %p\n", old, fresh);
+
+  while ((e = httpHeaderGetEntry (fresh, &pos)))
+    {
+      /* deny bad guys (ok to check for HDR_OTHER) here */
+      if (denied_mask && CBIT_TEST (*denied_mask, e->id))
+       continue;
+      httpHeaderDelByName (old, strBuf (e->name));
+      httpHeaderAddEntry (old, httpHeaderEntryClone (e));
     }
 }
 
 /* just handy in parsing: resets and returns false */
 int
-httpHeaderReset(HttpHeader * hdr)
+httpHeaderReset (HttpHeader * hdr)
 {
-    http_hdr_owner_type ho = hdr->owner;
-    assert(hdr);
-    ho = hdr->owner;
-    httpHeaderClean(hdr);
-    httpHeaderInit(hdr, ho);
-    return 0;
+  http_hdr_owner_type ho = hdr->owner;
+  assert (hdr);
+  ho = hdr->owner;
+  httpHeaderClean (hdr);
+  httpHeaderInit (hdr, ho);
+  return 0;
 }
 
 int
-httpHeaderParse(HttpHeader * hdr, const char *header_start, const char *header_end)
+httpHeaderParse (HttpHeader * hdr, const char *header_start, const char *header_end)
 {
-    const char *field_start = header_start;
-    HttpHeaderEntry *e;
-
-    assert(hdr);
-    assert(header_start && header_end);
-    debug(55, 7) ("parsing hdr: (%p)\n%s\n", hdr, getStringPrefix(header_start, header_end));
-    HttpHeaderStats[hdr->owner].parsedCount++;
-    /* commonn format headers are "<name>:[ws]<value>" lines delimited by <CRLF> */
-    while (field_start < header_end) {
-       const char *field_end;
-       const char *field_ptr = field_start;
-       do {
-           field_end = field_ptr = field_ptr + strcspn(field_ptr, "\r\n");
-           /* skip CRLF */
-           if (*field_ptr == '\r')
-               field_ptr++;
-           if (*field_ptr == '\n')
-               field_ptr++;
-       } while (*field_ptr == ' ' || *field_ptr == '\t');
-       if (!*field_end || field_end > header_end)
-           return httpHeaderReset(hdr);        /* missing <CRLF> */
-       e = httpHeaderEntryParseCreate(field_start, field_end);
-       if (e != NULL)
-           httpHeaderAddEntry(hdr, e);
-       else
-           debug(55, 2) ("warning: ignoring unparseable http header field near '%s'\n",
-               getStringPrefix(field_start, field_end));
-       field_start = field_end;
-       /* skip CRLF */
-       if (*field_start == '\r')
-           field_start++;
-       if (*field_start == '\n')
-           field_start++;
+  const char *field_start = header_start;
+  HttpHeaderEntry *e;
+
+  assert (hdr);
+  assert (header_start && header_end);
+  debug (55, 7) ("parsing hdr: (%p)\n%s\n", hdr, getStringPrefix (header_start, header_end));
+  HttpHeaderStats[hdr->owner].parsedCount++;
+  /* commonn format headers are "<name>:[ws]<value>" lines delimited by <CRLF> */
+  while (field_start < header_end)
+    {
+      const char *field_end;
+      const char *field_ptr = field_start;
+      do
+       {
+         field_end = field_ptr = field_ptr + strcspn (field_ptr, "\r\n");
+         /* skip CRLF */
+         if (*field_ptr == '\r')
+           field_ptr++;
+         if (*field_ptr == '\n')
+           field_ptr++;
+       }
+      while (*field_ptr == ' ' || *field_ptr == '\t');
+      if (!*field_end || field_end > header_end)
+       return httpHeaderReset (hdr);   /* missing <CRLF> */
+      e = httpHeaderEntryParseCreate (field_start, field_end);
+      if (e != NULL)
+       httpHeaderAddEntry (hdr, e);
+      else
+       debug (55, 2) ("warning: ignoring unparseable http header field near '%s'\n",
+                      getStringPrefix (field_start, field_end));
+      field_start = field_end;
+      /* skip CRLF */
+      if (*field_start == '\r')
+       field_start++;
+      if (*field_start == '\n')
+       field_start++;
     }
-    return 1;                  /* even if no fields where found, it is a valid header */
+  return 1;                    /* even if no fields where found, it is a valid header */
 }
 
 /* packs all the entries using supplied packer */
 void
-httpHeaderPackInto(const HttpHeader * hdr, Packer * p)
+httpHeaderPackInto (const HttpHeader * hdr, Packer * p)
 {
-    HttpHeaderPos pos = HttpHeaderInitPos;
-    const HttpHeaderEntry *e;
-    assert(hdr && p);
-    debug(55, 7) ("packing hdr: (%p)\n", hdr);
-    /* pack all entries one by one */
-    while ((e = httpHeaderGetEntry(hdr, &pos)))
-       httpHeaderEntryPackInto(e, p);
+  HttpHeaderPos pos = HttpHeaderInitPos;
+  const HttpHeaderEntry *e;
+  assert (hdr && p);
+  debug (55, 7) ("packing hdr: (%p)\n", hdr);
+  /* pack all entries one by one */
+  while ((e = httpHeaderGetEntry (hdr, &pos)))
+    httpHeaderEntryPackInto (e, p);
 }
 
 /* returns next valid entry */
 HttpHeaderEntry *
-httpHeaderGetEntry(const HttpHeader * hdr, HttpHeaderPos * pos)
+httpHeaderGetEntry (const HttpHeader * hdr, HttpHeaderPos * pos)
 {
-    assert(hdr && pos);
-    assert(*pos >= HttpHeaderInitPos && *pos < hdr->entries.count);
-    for ((*pos)++; *pos < hdr->entries.count; (*pos)++) {
-       if (hdr->entries.items[*pos])
-           return hdr->entries.items[*pos];
+  assert (hdr && pos);
+  assert (*pos >= HttpHeaderInitPos && *pos < hdr->entries.count);
+  for ((*pos)++; *pos < hdr->entries.count; (*pos)++)
+    {
+      if (hdr->entries.items[*pos])
+       return hdr->entries.items[*pos];
     }
-    return NULL;
+  return NULL;
 }
 
 /*
@@ -459,95 +469,102 @@ httpHeaderGetEntry(const HttpHeader * hdr, HttpHeaderPos * pos)
  * "list" headers
  */
 HttpHeaderEntry *
-httpHeaderFindEntry(const HttpHeader * hdr, http_hdr_type id)
+httpHeaderFindEntry (const HttpHeader * hdr, http_hdr_type id)
 {
-    HttpHeaderPos pos = HttpHeaderInitPos;
-    HttpHeaderEntry *e;
-    assert(hdr);
-    assert_eid(id);
-    assert(!CBIT_TEST(ListHeadersMask, id));
-
-    /* check mask first */
-    if (!CBIT_TEST(hdr->mask, id))
-       return NULL;
-    /* looks like we must have it, do linear search */
-    while ((e = httpHeaderGetEntry(hdr, &pos))) {
-       if (e->id == id)
-           return e;
+  HttpHeaderPos pos = HttpHeaderInitPos;
+  HttpHeaderEntry *e;
+  assert (hdr);
+  assert_eid (id);
+  assert (!CBIT_TEST (ListHeadersMask, id));
+
+  /* check mask first */
+  if (!CBIT_TEST (hdr->mask, id))
+    return NULL;
+  /* looks like we must have it, do linear search */
+  while ((e = httpHeaderGetEntry (hdr, &pos)))
+    {
+      if (e->id == id)
+       return e;
     }
-    /* hm.. we thought it was there, but it was not found */
-    assert(0);
-    return NULL;               /* not reached */
+  /* hm.. we thought it was there, but it was not found */
+  assert (0);
+  return NULL;                 /* not reached */
 }
 
 /*
  * same as httpHeaderFindEntry
  */
 static HttpHeaderEntry *
-httpHeaderFindLastEntry(const HttpHeader * hdr, http_hdr_type id)
+httpHeaderFindLastEntry (const HttpHeader * hdr, http_hdr_type id)
 {
-    HttpHeaderPos pos = HttpHeaderInitPos;
-    HttpHeaderEntry *e;
-    HttpHeaderEntry *result = NULL;
-    assert(hdr);
-    assert_eid(id);
-    assert(!CBIT_TEST(ListHeadersMask, id));
-
-    /* check mask first */
-    if (!CBIT_TEST(hdr->mask, id))
-       return NULL;
-    /* looks like we must have it, do linear search */
-    while ((e = httpHeaderGetEntry(hdr, &pos))) {
-       if (e->id == id)
-           result = e;
+  HttpHeaderPos pos = HttpHeaderInitPos;
+  HttpHeaderEntry *e;
+  HttpHeaderEntry *result = NULL;
+  assert (hdr);
+  assert_eid (id);
+  assert (!CBIT_TEST (ListHeadersMask, id));
+
+  /* check mask first */
+  if (!CBIT_TEST (hdr->mask, id))
+    return NULL;
+  /* looks like we must have it, do linear search */
+  while ((e = httpHeaderGetEntry (hdr, &pos)))
+    {
+      if (e->id == id)
+       result = e;
     }
-    assert(result);            /* must be there! */
-    return result;
+  assert (result);             /* must be there! */
+  return result;
 }
 
 /*
  * deletes all fields with a given name if any, returns #fields deleted; 
  */
 int
-httpHeaderDelByName(HttpHeader * hdr, const char *name)
+httpHeaderDelByName (HttpHeader * hdr, const char *name)
 {
-    int count = 0;
-    HttpHeaderPos pos = HttpHeaderInitPos;
-    HttpHeaderEntry *e;
-    httpHeaderMaskInit(&hdr->mask, 0); /* temporal inconsistency */
-    debug(55, 7) ("deleting '%s' fields in hdr %p\n", name, hdr);
-    while ((e = httpHeaderGetEntry(hdr, &pos))) {
-       if (!strCaseCmp(e->name, name)) {
-           httpHeaderDelAt(hdr, pos);
-           count++;
-       } else
-           CBIT_SET(hdr->mask, e->id);
+  int count = 0;
+  HttpHeaderPos pos = HttpHeaderInitPos;
+  HttpHeaderEntry *e;
+  httpHeaderMaskInit (&hdr->mask, 0);  /* temporal inconsistency */
+  debug (55, 7) ("deleting '%s' fields in hdr %p\n", name, hdr);
+  while ((e = httpHeaderGetEntry (hdr, &pos)))
+    {
+      if (!strCaseCmp (e->name, name))
+       {
+         httpHeaderDelAt (hdr, pos);
+         count++;
+       }
+      else
+       CBIT_SET (hdr->mask, e->id);
     }
-    return count;
+  return count;
 }
 
 /* deletes all entries with a given id, returns the #entries deleted */
 int
-httpHeaderDelById(HttpHeader * hdr, http_hdr_type id)
+httpHeaderDelById (HttpHeader * hdr, http_hdr_type id)
 {
-    int count = 0;
-    HttpHeaderPos pos = HttpHeaderInitPos;
-    HttpHeaderEntry *e;
-    debug(55, 8) ("%p del-by-id %d\n", hdr, id);
-    assert(hdr);
-    assert_eid(id);
-    assert_eid(id != HDR_OTHER);       /* does not make sense */
-    if (!CBIT_TEST(hdr->mask, id))
-       return 0;
-    while ((e = httpHeaderGetEntry(hdr, &pos))) {
-       if (e->id == id) {
-           httpHeaderDelAt(hdr, pos);
-           count++;
+  int count = 0;
+  HttpHeaderPos pos = HttpHeaderInitPos;
+  HttpHeaderEntry *e;
+  debug (55, 8) ("%p del-by-id %d\n", hdr, id);
+  assert (hdr);
+  assert_eid (id);
+  assert_eid (id != HDR_OTHER);        /* does not make sense */
+  if (!CBIT_TEST (hdr->mask, id))
+    return 0;
+  while ((e = httpHeaderGetEntry (hdr, &pos)))
+    {
+      if (e->id == id)
+       {
+         httpHeaderDelAt (hdr, pos);
+         count++;
        }
     }
-    CBIT_CLR(hdr->mask, id);
-    assert(count);
-    return count;
+  CBIT_CLR (hdr->mask, id);
+  assert (count);
+  return count;
 }
 
 /*
@@ -555,16 +572,16 @@ httpHeaderDelById(HttpHeader * hdr, http_hdr_type id)
  * possible to iterate(search) and delete fields at the same time
  */
 void
-httpHeaderDelAt(HttpHeader * hdr, HttpHeaderPos pos)
+httpHeaderDelAt (HttpHeader * hdr, HttpHeaderPos pos)
 {
-    HttpHeaderEntry *e;
-    assert(pos >= HttpHeaderInitPos && pos < hdr->entries.count);
-    e = hdr->entries.items[pos];
-    hdr->entries.items[pos] = NULL;
-    /* decrement header length, allow for ": " and crlf */
-    hdr->len -= strLen(e->name) + 2 + strLen(e->value) + 2;
-    assert(hdr->len >= 0);
-    httpHeaderEntryDestroy(e);
+  HttpHeaderEntry *e;
+  assert (pos >= HttpHeaderInitPos && pos < hdr->entries.count);
+  e = hdr->entries.items[pos];
+  hdr->entries.items[pos] = NULL;
+  /* decrement header length, allow for ": " and crlf */
+  hdr->len -= strLen (e->name) + 2 + strLen (e->value) + 2;
+  assert (hdr->len >= 0);
+  httpHeaderEntryDestroy (e);
 }
 
 
@@ -572,64 +589,66 @@ httpHeaderDelAt(HttpHeader * hdr, HttpHeaderPos pos)
  * does not call httpHeaderEntryClone() so one should not reuse "*e"
  */
 void
-httpHeaderAddEntry(HttpHeader * hdr, HttpHeaderEntry * e)
+httpHeaderAddEntry (HttpHeader * hdr, HttpHeaderEntry * e)
 {
-    assert(hdr && e);
-    assert_eid(e->id);
-
-    debug(55, 7) ("%p adding entry: %d at %d\n",
-       hdr, e->id, hdr->entries.count);
-    if (CBIT_TEST(hdr->mask, e->id))
-       Headers[e->id].stat.repCount++;
-    else
-       CBIT_SET(hdr->mask, e->id);
-    arrayAppend(&hdr->entries, e);
-    /* increment header length, allow for ": " and crlf */
-    hdr->len += strLen(e->name) + 2 + strLen(e->value) + 2;
+  assert (hdr && e);
+  assert_eid (e->id);
+
+  debug (55, 7) ("%p adding entry: %d at %d\n",
+                hdr, e->id, hdr->entries.count);
+  if (CBIT_TEST (hdr->mask, e->id))
+    Headers[e->id].stat.repCount++;
+  else
+    CBIT_SET (hdr->mask, e->id);
+  arrayAppend (&hdr->entries, e);
+  /* increment header length, allow for ": " and crlf */
+  hdr->len += strLen (e->name) + 2 + strLen (e->value) + 2;
 }
 
 /* return a list of entries with the same id separated by ',' and ws */
 String
-httpHeaderGetList(const HttpHeader * hdr, http_hdr_type id)
+httpHeaderGetList (const HttpHeader * hdr, http_hdr_type id)
 {
-    String s = StringNull;
-    HttpHeaderEntry *e;
-    HttpHeaderPos pos = HttpHeaderInitPos;
-    debug(55, 6) ("%p: joining for id %d\n", hdr, id);
-    /* only fields from ListHeaders array can be "listed" */
-    assert(CBIT_TEST(ListHeadersMask, id));
-    if (!CBIT_TEST(hdr->mask, id))
-       return s;
-    while ((e = httpHeaderGetEntry(hdr, &pos))) {
-       if (e->id == id)
-           strListAdd(&s, strBuf(e->value), ',');
-    }
-    /*
-     * note: we might get an empty (len==0) string if there was an "empty"
-     * header; we must not get a NULL string though.
-     */
-    assert(strBuf(s));
-    /* temporary warning: remove it! @?@ @?@ @?@ */
-    if (!strLen(s))
-       debug(55, 3) ("empty list header: %s (%d)\n", strBuf(Headers[id].name), id);
-    debug(55, 6) ("%p: joined for id %d: %s\n", hdr, id, strBuf(s));
+  String s = StringNull;
+  HttpHeaderEntry *e;
+  HttpHeaderPos pos = HttpHeaderInitPos;
+  debug (55, 6) ("%p: joining for id %d\n", hdr, id);
+  /* only fields from ListHeaders array can be "listed" */
+  assert (CBIT_TEST (ListHeadersMask, id));
+  if (!CBIT_TEST (hdr->mask, id))
     return s;
+  while ((e = httpHeaderGetEntry (hdr, &pos)))
+    {
+      if (e->id == id)
+       strListAdd (&s, strBuf (e->value), ',');
+    }
+  /*
+   * note: we might get an empty (len==0) string if there was an "empty"
+   * header; we must not get a NULL string though.
+   */
+  assert (strBuf (s));
+  /* temporary warning: remove it! @?@ @?@ @?@ */
+  if (!strLen (s))
+    debug (55, 3) ("empty list header: %s (%d)\n", strBuf (Headers[id].name), id);
+  debug (55, 6) ("%p: joined for id %d: %s\n", hdr, id, strBuf (s));
+  return s;
 }
 
 /* return a string or list of entries with the same id separated by ',' and ws */
 String
-httpHeaderGetStrOrList(const HttpHeader * hdr, http_hdr_type id)
+httpHeaderGetStrOrList (const HttpHeader * hdr, http_hdr_type id)
 {
-    const char *str;
-    String s;
-
-    if (CBIT_TEST(ListHeadersMask, id))
-       s = httpHeaderGetList(hdr, id);
-    else {
-       str = httpHeaderGetStr(hdr, id);
-       stringInit(&s, str);
+  const char *str;
+  String s;
+
+  if (CBIT_TEST (ListHeadersMask, id))
+    s = httpHeaderGetList (hdr, id);
+  else
+    {
+      str = httpHeaderGetStr (hdr, id);
+      stringInit (&s, str);
     }
-    return s;
+  return s;
 }
 
 /*
@@ -638,300 +657,312 @@ httpHeaderGetStrOrList(const HttpHeader * hdr, http_hdr_type id)
  * "list" headers
  */
 String
-httpHeaderGetByName(const HttpHeader * hdr, const char *name)
+httpHeaderGetByName (const HttpHeader * hdr, const char *name)
 {
-    http_hdr_type id;
-    HttpHeaderPos pos = HttpHeaderInitPos;
-    HttpHeaderEntry *e;
-    String result = StringNull;
-
-    assert(hdr);
-    assert(name);
-
-    /* First try the quick path */
-    id = httpHeaderIdByNameDef(name, strlen(name));
-    if (id != -1)
-       return httpHeaderGetStrOrList(hdr, id);
-
-    /* Sorry, an unknown header name. Do linear search */
-    while ((e = httpHeaderGetEntry(hdr, &pos))) {
-       if (e->id == HDR_OTHER && strCaseCmp(e->name, name) == 0) {
-           strListAdd(&result, strBuf(e->value), ',');
+  http_hdr_type id;
+  HttpHeaderPos pos = HttpHeaderInitPos;
+  HttpHeaderEntry *e;
+  String result = StringNull;
+
+  assert (hdr);
+  assert (name);
+
+  /* First try the quick path */
+  id = httpHeaderIdByNameDef (name, strlen (name));
+  if (id != -1)
+    return httpHeaderGetStrOrList (hdr, id);
+
+  /* Sorry, an unknown header name. Do linear search */
+  while ((e = httpHeaderGetEntry (hdr, &pos)))
+    {
+      if (e->id == HDR_OTHER && strCaseCmp (e->name, name) == 0)
+       {
+         strListAdd (&result, strBuf (e->value), ',');
        }
     }
-    return result;
+  return result;
 }
 
 /* test if a field is present */
 int
-httpHeaderHas(const HttpHeader * hdr, http_hdr_type id)
+httpHeaderHas (const HttpHeader * hdr, http_hdr_type id)
 {
-    assert(hdr);
-    assert_eid(id);
-    assert(id != HDR_OTHER);
-    debug(55, 7) ("%p lookup for %d\n", hdr, id);
-    return CBIT_TEST(hdr->mask, id);
+  assert (hdr);
+  assert_eid (id);
+  assert (id != HDR_OTHER);
+  debug (55, 7) ("%p lookup for %d\n", hdr, id);
+  return CBIT_TEST (hdr->mask, id);
 }
 
 void
-httpHeaderPutInt(HttpHeader * hdr, http_hdr_type id, int number)
+httpHeaderPutInt (HttpHeader * hdr, http_hdr_type id, int number)
 {
-    assert_eid(id);
-    assert(Headers[id].type == ftInt); /* must be of an appropriate type */
-    assert(number >= 0);
-    httpHeaderAddEntry(hdr, httpHeaderEntryCreate(id, NULL, xitoa(number)));
+  assert_eid (id);
+  assert (Headers[id].type == ftInt);  /* must be of an appropriate type */
+  assert (number >= 0);
+  httpHeaderAddEntry (hdr, httpHeaderEntryCreate (id, NULL, xitoa (number)));
 }
 
 void
-httpHeaderPutTime(HttpHeader * hdr, http_hdr_type id, time_t time)
+httpHeaderPutTime (HttpHeader * hdr, http_hdr_type id, time_t htime)
 {
-    assert_eid(id);
-    assert(Headers[id].type == ftDate_1123);   /* must be of an appropriate type */
-    assert(time >= 0);
-    httpHeaderAddEntry(hdr, httpHeaderEntryCreate(id, NULL, mkrfc1123(time)));
+  assert_eid (id);
+  assert (Headers[id].type == ftDate_1123);    /* must be of an appropriate type */
+  assert (time >= 0);
+  httpHeaderAddEntry (hdr, httpHeaderEntryCreate (id, NULL, mkrfc1123 (htime)));
 }
 
 void
-httpHeaderPutStr(HttpHeader * hdr, http_hdr_type id, const char *str)
+httpHeaderPutStr (HttpHeader * hdr, http_hdr_type id, const char *str)
 {
-    assert_eid(id);
-    assert(Headers[id].type == ftStr); /* must be of an appropriate type */
-    assert(str);
-    httpHeaderAddEntry(hdr, httpHeaderEntryCreate(id, NULL, str));
+  assert_eid (id);
+  assert (Headers[id].type == ftStr);  /* must be of an appropriate type */
+  assert (str);
+  httpHeaderAddEntry (hdr, httpHeaderEntryCreate (id, NULL, str));
 }
 
 void
-httpHeaderPutAuth(HttpHeader * hdr, const char *authScheme, const char *realm)
+httpHeaderPutAuth (HttpHeader * hdr, const char *auth_scheme, const char *realm)
 {
-    assert(hdr && authScheme && realm);
-    httpHeaderPutStrf(hdr, HDR_WWW_AUTHENTICATE, "%s realm=\"%s\"", authScheme, realm);
+  assert (hdr && auth_scheme && realm);
+  httpHeaderPutStrf (hdr, HDR_WWW_AUTHENTICATE, "%s realm=\"%s\"", auth_scheme, realm);
 }
 
 void
-httpHeaderPutCc(HttpHeader * hdr, const HttpHdrCc * cc)
+httpHeaderPutCc (HttpHeader * hdr, const HttpHdrCc * cc)
 {
-    MemBuf mb;
-    Packer p;
-    assert(hdr && cc);
-    /* remove old directives if any */
-    httpHeaderDelById(hdr, HDR_CACHE_CONTROL);
-    /* pack into mb */
-    memBufDefInit(&mb);
-    packerToMemInit(&p, &mb);
-    httpHdrCcPackInto(cc, &p);
-    /* put */
-    httpHeaderAddEntry(hdr, httpHeaderEntryCreate(HDR_CACHE_CONTROL, NULL, mb.buf));
-    /* cleanup */
-    packerClean(&p);
-    memBufClean(&mb);
+  MemBuf mb;
+  Packer p;
+  assert (hdr && cc);
+  /* remove old directives if any */
+  httpHeaderDelById (hdr, HDR_CACHE_CONTROL);
+  /* pack into mb */
+  memBufDefInit (&mb);
+  packerToMemInit (&p, &mb);
+  httpHdrCcPackInto (cc, &p);
+  /* put */
+  httpHeaderAddEntry (hdr, httpHeaderEntryCreate (HDR_CACHE_CONTROL, NULL, mb.buf));
+  /* cleanup */
+  packerClean (&p);
+  memBufClean (&mb);
 }
 
 void
-httpHeaderPutContRange(HttpHeader * hdr, const HttpHdrContRange * cr)
+httpHeaderPutContRange (HttpHeader * hdr, const HttpHdrContRange * cr)
 {
-    MemBuf mb;
-    Packer p;
-    assert(hdr && cr);
-    /* remove old directives if any */
-    httpHeaderDelById(hdr, HDR_CONTENT_RANGE);
-    /* pack into mb */
-    memBufDefInit(&mb);
-    packerToMemInit(&p, &mb);
-    httpHdrContRangePackInto(cr, &p);
-    /* put */
-    httpHeaderAddEntry(hdr, httpHeaderEntryCreate(HDR_CONTENT_RANGE, NULL, mb.buf));
-    /* cleanup */
-    packerClean(&p);
-    memBufClean(&mb);
+  MemBuf mb;
+  Packer p;
+  assert (hdr && cr);
+  /* remove old directives if any */
+  httpHeaderDelById (hdr, HDR_CONTENT_RANGE);
+  /* pack into mb */
+  memBufDefInit (&mb);
+  packerToMemInit (&p, &mb);
+  httpHdrContRangePackInto (cr, &p);
+  /* put */
+  httpHeaderAddEntry (hdr, httpHeaderEntryCreate (HDR_CONTENT_RANGE, NULL, mb.buf));
+  /* cleanup */
+  packerClean (&p);
+  memBufClean (&mb);
 }
 
 void
-httpHeaderPutRange(HttpHeader * hdr, const HttpHdrRange * range)
+httpHeaderPutRange (HttpHeader * hdr, const HttpHdrRange * range)
 {
-    MemBuf mb;
-    Packer p;
-    assert(hdr && range);
-    /* remove old directives if any */
-    httpHeaderDelById(hdr, HDR_RANGE);
-    /* pack into mb */
-    memBufDefInit(&mb);
-    packerToMemInit(&p, &mb);
-    httpHdrRangePackInto(range, &p);
-    /* put */
-    httpHeaderAddEntry(hdr, httpHeaderEntryCreate(HDR_RANGE, NULL, mb.buf));
-    /* cleanup */
-    packerClean(&p);
-    memBufClean(&mb);
+  MemBuf mb;
+  Packer p;
+  assert (hdr && range);
+  /* remove old directives if any */
+  httpHeaderDelById (hdr, HDR_RANGE);
+  /* pack into mb */
+  memBufDefInit (&mb);
+  packerToMemInit (&p, &mb);
+  httpHdrRangePackInto (range, &p);
+  /* put */
+  httpHeaderAddEntry (hdr, httpHeaderEntryCreate (HDR_RANGE, NULL, mb.buf));
+  /* cleanup */
+  packerClean (&p);
+  memBufClean (&mb);
 }
 
 /* add extension header (these fields are not parsed/analyzed/joined, etc.) */
 void
-httpHeaderPutExt(HttpHeader * hdr, const char *name, const char *value)
+httpHeaderPutExt (HttpHeader * hdr, const char *name, const char *value)
 {
-    assert(name && value);
-    debug(55, 8) ("%p adds ext entry '%s: %s'\n", hdr, name, value);
-    httpHeaderAddEntry(hdr, httpHeaderEntryCreate(HDR_OTHER, name, value));
+  assert (name && value);
+  debug (55, 8) ("%p adds ext entry '%s: %s'\n", hdr, name, value);
+  httpHeaderAddEntry (hdr, httpHeaderEntryCreate (HDR_OTHER, name, value));
 }
 
 int
-httpHeaderGetInt(const HttpHeader * hdr, http_hdr_type id)
+httpHeaderGetInt (const HttpHeader * hdr, http_hdr_type id)
 {
-    HttpHeaderEntry *e;
-    int value = -1;
-    int ok;
-    assert_eid(id);
-    assert(Headers[id].type == ftInt); /* must be of an appropriate type */
-    if ((e = httpHeaderFindEntry(hdr, id))) {
-       ok = httpHeaderParseInt(strBuf(e->value), &value);
-       httpHeaderNoteParsedEntry(e->id, e->value, !ok);
+  HttpHeaderEntry *e;
+  int value = -1;
+  int ok;
+  assert_eid (id);
+  assert (Headers[id].type == ftInt);  /* must be of an appropriate type */
+  if ((e = httpHeaderFindEntry (hdr, id)))
+    {
+      ok = httpHeaderParseInt (strBuf (e->value), &value);
+      httpHeaderNoteParsedEntry (e->id, e->value, !ok);
     }
-    return value;
+  return value;
 }
 
 time_t
-httpHeaderGetTime(const HttpHeader * hdr, http_hdr_type id)
+httpHeaderGetTime (const HttpHeader * hdr, http_hdr_type id)
 {
-    HttpHeaderEntry *e;
-    time_t value = -1;
-    assert_eid(id);
-    assert(Headers[id].type == ftDate_1123);   /* must be of an appropriate type */
-    if ((e = httpHeaderFindEntry(hdr, id))) {
-       value = parse_rfc1123(strBuf(e->value));
-       httpHeaderNoteParsedEntry(e->id, e->value, value < 0);
+  HttpHeaderEntry *e;
+  time_t value = -1;
+  assert_eid (id);
+  assert (Headers[id].type == ftDate_1123);    /* must be of an appropriate type */
+  if ((e = httpHeaderFindEntry (hdr, id)))
+    {
+      value = parse_rfc1123 (strBuf (e->value));
+      httpHeaderNoteParsedEntry (e->id, e->value, value < 0);
     }
-    return value;
+  return value;
 }
 
 /* sync with httpHeaderGetLastStr */
 const char *
-httpHeaderGetStr(const HttpHeader * hdr, http_hdr_type id)
+httpHeaderGetStr (const HttpHeader * hdr, http_hdr_type id)
 {
-    HttpHeaderEntry *e;
-    assert_eid(id);
-    assert(Headers[id].type == ftStr); /* must be of an appropriate type */
-    if ((e = httpHeaderFindEntry(hdr, id))) {
-       httpHeaderNoteParsedEntry(e->id, e->value, 0);  /* no errors are possible */
-       return strBuf(e->value);
+  HttpHeaderEntry *e;
+  assert_eid (id);
+  assert (Headers[id].type == ftStr);  /* must be of an appropriate type */
+  if ((e = httpHeaderFindEntry (hdr, id)))
+    {
+      httpHeaderNoteParsedEntry (e->id, e->value, 0);  /* no errors are possible */
+      return strBuf (e->value);
     }
-    return NULL;
+  return NULL;
 }
 
 /* unusual */
 const char *
-httpHeaderGetLastStr(const HttpHeader * hdr, http_hdr_type id)
+httpHeaderGetLastStr (const HttpHeader * hdr, http_hdr_type id)
 {
-    HttpHeaderEntry *e;
-    assert_eid(id);
-    assert(Headers[id].type == ftStr); /* must be of an appropriate type */
-    if ((e = httpHeaderFindLastEntry(hdr, id))) {
-       httpHeaderNoteParsedEntry(e->id, e->value, 0);  /* no errors are possible */
-       return strBuf(e->value);
+  HttpHeaderEntry *e;
+  assert_eid (id);
+  assert (Headers[id].type == ftStr);  /* must be of an appropriate type */
+  if ((e = httpHeaderFindLastEntry (hdr, id)))
+    {
+      httpHeaderNoteParsedEntry (e->id, e->value, 0);  /* no errors are possible */
+      return strBuf (e->value);
     }
-    return NULL;
+  return NULL;
 }
 
 HttpHdrCc *
-httpHeaderGetCc(const HttpHeader * hdr)
+httpHeaderGetCc (const HttpHeader * hdr)
 {
-    HttpHdrCc *cc;
-    String s;
-    if (!CBIT_TEST(hdr->mask, HDR_CACHE_CONTROL))
-       return NULL;
-    s = httpHeaderGetList(hdr, HDR_CACHE_CONTROL);
-    cc = httpHdrCcParseCreate(&s);
-    HttpHeaderStats[hdr->owner].ccParsedCount++;
-    if (cc)
-       httpHdrCcUpdateStats(cc, &HttpHeaderStats[hdr->owner].ccTypeDistr);
-    httpHeaderNoteParsedEntry(HDR_CACHE_CONTROL, s, !cc);
-    stringClean(&s);
-    return cc;
+  HttpHdrCc *cc;
+  String s;
+  if (!CBIT_TEST (hdr->mask, HDR_CACHE_CONTROL))
+    return NULL;
+  s = httpHeaderGetList (hdr, HDR_CACHE_CONTROL);
+  cc = httpHdrCcParseCreate (&s);
+  HttpHeaderStats[hdr->owner].ccParsedCount++;
+  if (cc)
+    httpHdrCcUpdateStats (cc, &HttpHeaderStats[hdr->owner].ccTypeDistr);
+  httpHeaderNoteParsedEntry (HDR_CACHE_CONTROL, s, !cc);
+  stringClean (&s);
+  return cc;
 }
 
 HttpHdrRange *
-httpHeaderGetRange(const HttpHeader * hdr)
+httpHeaderGetRange (const HttpHeader * hdr)
 {
-    HttpHdrRange *r = NULL;
-    HttpHeaderEntry *e;
-    /* some clients will send "Request-Range" _and_ *matching* "Range"
-     * who knows, some clients might send Request-Range only;
-     * this "if" should work correctly in both cases;
-     * hopefully no clients send mismatched headers! */
-    if ((e = httpHeaderFindEntry(hdr, HDR_RANGE)) ||
-       (e = httpHeaderFindEntry(hdr, HDR_REQUEST_RANGE))) {
-       r = httpHdrRangeParseCreate(&e->value);
-       httpHeaderNoteParsedEntry(e->id, e->value, !r);
+  HttpHdrRange *r = NULL;
+  HttpHeaderEntry *e;
+  /* some clients will send "Request-Range" _and_ *matching* "Range"
+   * who knows, some clients might send Request-Range only;
+   * this "if" should work correctly in both cases;
+   * hopefully no clients send mismatched headers! */
+  if ((e = httpHeaderFindEntry (hdr, HDR_RANGE)) ||
+      (e = httpHeaderFindEntry (hdr, HDR_REQUEST_RANGE)))
+    {
+      r = httpHdrRangeParseCreate (&e->value);
+      httpHeaderNoteParsedEntry (e->id, e->value, !r);
     }
-    return r;
+  return r;
 }
 
 HttpHdrContRange *
-httpHeaderGetContRange(const HttpHeader * hdr)
+httpHeaderGetContRange (const HttpHeader * hdr)
 {
-    HttpHdrContRange *cr = NULL;
-    HttpHeaderEntry *e;
-    if ((e = httpHeaderFindEntry(hdr, HDR_CONTENT_RANGE))) {
-       cr = httpHdrContRangeParseCreate(strBuf(e->value));
-       httpHeaderNoteParsedEntry(e->id, e->value, !cr);
+  HttpHdrContRange *cr = NULL;
+  HttpHeaderEntry *e;
+  if ((e = httpHeaderFindEntry (hdr, HDR_CONTENT_RANGE)))
+    {
+      cr = httpHdrContRangeParseCreate (strBuf (e->value));
+      httpHeaderNoteParsedEntry (e->id, e->value, !cr);
     }
-    return cr;
+  return cr;
 }
 
 const char *
-httpHeaderGetAuth(const HttpHeader * hdr, http_hdr_type id, const char *authScheme)
+httpHeaderGetAuth (const HttpHeader * hdr, http_hdr_type id, const char *auth_scheme)
 {
-    const char *field;
-    int l;
-    assert(hdr && authScheme);
-    field = httpHeaderGetStr(hdr, id);
-    if (!field)                        /* no authorization field */
-       return NULL;
-    l = strlen(authScheme);
-    if (!l || strncasecmp(field, authScheme, l))       /* wrong scheme */
-       return NULL;
-    field += l;
-    if (!xisspace(*field))     /* wrong scheme */
-       return NULL;
-    /* skip white space */
-    field += xcountws(field);
-    if (!*field)               /* no authorization cookie */
-       return NULL;
-    return base64_decode(field);
+  const char *field;
+  int l;
+  assert (hdr && auth_scheme);
+  field = httpHeaderGetStr (hdr, id);
+  if (!field)                  /* no authorization field */
+    return NULL;
+  l = strlen (auth_scheme);
+  if (!l || strncasecmp (field, auth_scheme, l))       /* wrong scheme */
+    return NULL;
+  field += l;
+  if (!xisspace (*field))      /* wrong scheme */
+    return NULL;
+  /* skip white space */
+  field += xcountws (field);
+  if (!*field)                 /* no authorization cookie */
+    return NULL;
+  return base64_decode (field);
 }
 
 ETag
-httpHeaderGetETag(const HttpHeader * hdr, http_hdr_type id)
+httpHeaderGetETag (const HttpHeader * hdr, http_hdr_type id)
 {
-    ETag etag =
-    {NULL, -1};
-    HttpHeaderEntry *e;
-    assert(Headers[id].type == ftETag);                /* must be of an appropriate type */
-    if ((e = httpHeaderFindEntry(hdr, id)))
-       etagParseInit(&etag, strBuf(e->value));
-    return etag;
+  ETag etag =
+  {NULL, -1};
+  HttpHeaderEntry *e;
+  assert (Headers[id].type == ftETag); /* must be of an appropriate type */
+  if ((e = httpHeaderFindEntry (hdr, id)))
+    etagParseInit (&etag, strBuf (e->value));
+  return etag;
 }
 
 TimeOrTag
-httpHeaderGetTimeOrTag(const HttpHeader * hdr, http_hdr_type id)
+httpHeaderGetTimeOrTag (const HttpHeader * hdr, http_hdr_type id)
 {
-    TimeOrTag tot;
-    HttpHeaderEntry *e;
-    assert(Headers[id].type == ftDate_1123_or_ETag);   /* must be of an appropriate type */
-    memset(&tot, 0, sizeof(tot));
-    if ((e = httpHeaderFindEntry(hdr, id))) {
-       const char *str = strBuf(e->value);
-       /* try as an ETag */
-       if (etagParseInit(&tot.tag, str)) {
-           tot.valid = tot.tag.str != NULL;
-           tot.time = -1;
-       } else {
-           /* or maybe it is time? */
-           tot.time = parse_rfc1123(str);
-           tot.valid = tot.time >= 0;
-           tot.tag.str = NULL;
+  TimeOrTag tot;
+  HttpHeaderEntry *e;
+  assert (Headers[id].type == ftDate_1123_or_ETag);    /* must be of an appropriate type */
+  memset (&tot, 0, sizeof (tot));
+  if ((e = httpHeaderFindEntry (hdr, id)))
+    {
+      const char *str = strBuf (e->value);
+      /* try as an ETag */
+      if (etagParseInit (&tot.tag, str))
+       {
+         tot.valid = tot.tag.str != NULL;
+         tot.time = -1;
+       }
+      else
+       {
+         /* or maybe it is time? */
+         tot.time = parse_rfc1123 (str);
+         tot.valid = tot.time >= 0;
+         tot.tag.str = NULL;
        }
     }
-    assert(tot.time < 0 || !tot.tag.str);      /* paranoid */
-    return tot;
+  assert (tot.time < 0 || !tot.tag.str);       /* paranoid */
+  return tot;
 }
 
 /*
@@ -939,118 +970,121 @@ httpHeaderGetTimeOrTag(const HttpHeader * hdr, http_hdr_type id)
  */
 
 static HttpHeaderEntry *
-httpHeaderEntryCreate(http_hdr_type id, const char *name, const char *value)
+httpHeaderEntryCreate (http_hdr_type id, const char *name, const char *value)
 {
-    HttpHeaderEntry *e;
-    assert_eid(id);
-    e = memAllocate(MEM_HTTP_HDR_ENTRY);
-    e->id = id;
-    if (id != HDR_OTHER)
-       e->name = Headers[id].name;
-    else
-       stringInit(&e->name, name);
-    stringInit(&e->value, value);
-    Headers[id].stat.aliveCount++;
-    debug(55, 9) ("created entry %p: '%s: %s'\n", e, strBuf(e->name), strBuf(e->value));
-    return e;
+  HttpHeaderEntry *e;
+  assert_eid (id);
+  e = memAllocate (MEM_HTTP_HDR_ENTRY);
+  e->id = id;
+  if (id != HDR_OTHER)
+    e->name = Headers[id].name;
+  else
+    stringInit (&e->name, name);
+  stringInit (&e->value, value);
+  Headers[id].stat.aliveCount++;
+  debug (55, 9) ("created entry %p: '%s: %s'\n", e, strBuf (e->name), strBuf (e->value));
+  return e;
 }
 
 static void
-httpHeaderEntryDestroy(HttpHeaderEntry * e)
+httpHeaderEntryDestroy (HttpHeaderEntry * e)
 {
-    assert(e);
-    assert_eid(e->id);
-    debug(55, 9) ("destroying entry %p: '%s: %s'\n", e, strBuf(e->name), strBuf(e->value));
-    /* clean name if needed */
-    if (e->id == HDR_OTHER)
-       stringClean(&e->name);
-    stringClean(&e->value);
-    assert(Headers[e->id].stat.aliveCount);
-    Headers[e->id].stat.aliveCount--;
-    e->id = -1;
-    memFree(e, MEM_HTTP_HDR_ENTRY);
+  assert (e);
+  assert_eid (e->id);
+  debug (55, 9) ("destroying entry %p: '%s: %s'\n", e, strBuf (e->name), strBuf (e->value));
+  /* clean name if needed */
+  if (e->id == HDR_OTHER)
+    stringClean (&e->name);
+  stringClean (&e->value);
+  assert (Headers[e->id].stat.aliveCount);
+  Headers[e->id].stat.aliveCount--;
+  e->id = -1;
+  memFree (e, MEM_HTTP_HDR_ENTRY);
 }
 
 /* parses and inits header entry, returns new entry on success */
 static HttpHeaderEntry *
-httpHeaderEntryParseCreate(const char *field_start, const char *field_end)
+httpHeaderEntryParseCreate (const char *field_start, const char *field_end)
 {
-    HttpHeaderEntry *e;
-    int id;
-    /* note: name_start == field_start */
-    const char *name_end = strchr(field_start, ':');
-    const int name_len = name_end ? name_end - field_start : 0;
-    const char *value_start = field_start + name_len + 1;      /* skip ':' */
-    /* note: value_end == field_end */
-
-    HeaderEntryParsedCount++;
-
-    /* do we have a valid field name within this field? */
-    if (!name_len || name_end > field_end)
-       return NULL;
-    if (name_len > 65536) {
-       /* String has a 64K limit */
-       debug(55, 1) ("WARNING: ignoring header name of %d bytes\n", name_len);
-       return NULL;
+  HttpHeaderEntry *e;
+  int id;
+  /* note: name_start == field_start */
+  const char *name_end = strchr (field_start, ':');
+  const int name_len = name_end ? name_end - field_start : 0;
+  const char *value_start = field_start + name_len + 1;                /* skip ':' */
+  /* note: value_end == field_end */
+
+  HeaderEntryParsedCount++;
+
+  /* do we have a valid field name within this field? */
+  if (!name_len || name_end > field_end)
+    return NULL;
+  if (name_len > 65536)
+    {
+      /* String has a 64K limit */
+      debug (55, 1) ("WARNING: ignoring header name of %d bytes\n", name_len);
+      return NULL;
     }
-    /* now we know we can parse it */
-    e = memAllocate(MEM_HTTP_HDR_ENTRY);
-    debug(55, 9) ("creating entry %p: near '%s'\n", e, getStringPrefix(field_start, field_end));
-    /* is it a "known" field? */
-    id = httpHeaderIdByName(field_start, name_len, Headers, HDR_ENUM_END);
-    if (id < 0)
-       id = HDR_OTHER;
-    assert_eid(id);
-    e->id = id;
-    /* set field name */
-    if (id == HDR_OTHER)
-       stringLimitInit(&e->name, field_start, name_len);
-    else
-       e->name = Headers[id].name;
-    /* trim field value */
-    while (value_start < field_end && xisspace(*value_start))
-       value_start++;
-    if (field_end - value_start > 65536) {
-       /* String has a 64K limit */
-       debug(55, 1) ("WARNING: ignoring '%s' header of %d bytes\n",
-           strBuf(e->name), field_end - value_start);
-       if (e->id == HDR_OTHER)
-           stringClean(&e->name);
-       memFree(e, MEM_HTTP_HDR_ENTRY);
-       return NULL;
+  /* now we know we can parse it */
+  e = memAllocate (MEM_HTTP_HDR_ENTRY);
+  debug (55, 9) ("creating entry %p: near '%s'\n", e, getStringPrefix (field_start, field_end));
+  /* is it a "known" field? */
+  id = httpHeaderIdByName (field_start, name_len, Headers, HDR_ENUM_END);
+  if (id < 0)
+    id = HDR_OTHER;
+  assert_eid (id);
+  e->id = id;
+  /* set field name */
+  if (id == HDR_OTHER)
+    stringLimitInit (&e->name, field_start, name_len);
+  else
+    e->name = Headers[id].name;
+  /* trim field value */
+  while (value_start < field_end && xisspace (*value_start))
+    value_start++;
+  if (field_end - value_start > 65536)
+    {
+      /* String has a 64K limit */
+      debug (55, 1) ("WARNING: ignoring '%s' header of %d bytes\n",
+                    strBuf (e->name), field_end - value_start);
+      if (e->id == HDR_OTHER)
+       stringClean (&e->name);
+      memFree (e, MEM_HTTP_HDR_ENTRY);
+      return NULL;
     }
-    /* set field value */
-    stringLimitInit(&e->value, value_start, field_end - value_start);
-    Headers[id].stat.seenCount++;
-    Headers[id].stat.aliveCount++;
-    debug(55, 9) ("created entry %p: '%s: %s'\n", e, strBuf(e->name), strBuf(e->value));
-    return e;
+  /* set field value */
+  stringLimitInit (&e->value, value_start, field_end - value_start);
+  Headers[id].stat.seenCount++;
+  Headers[id].stat.aliveCount++;
+  debug (55, 9) ("created entry %p: '%s: %s'\n", e, strBuf (e->name), strBuf (e->value));
+  return e;
 }
 
 HttpHeaderEntry *
-httpHeaderEntryClone(const HttpHeaderEntry * e)
+httpHeaderEntryClone (const HttpHeaderEntry * e)
 {
-    return httpHeaderEntryCreate(e->id, strBuf(e->name), strBuf(e->value));
+  return httpHeaderEntryCreate (e->id, strBuf (e->name), strBuf (e->value));
 }
 
 void
-httpHeaderEntryPackInto(const HttpHeaderEntry * e, Packer * p)
+httpHeaderEntryPackInto (const HttpHeaderEntry * e, Packer * p)
 {
-    assert(e && p);
-    packerAppend(p, strBuf(e->name), strLen(e->name));
-    packerAppend(p, ": ", 2);
-    packerAppend(p, strBuf(e->value), strLen(e->value));
-    packerAppend(p, "\r\n", 2);
+  assert (e && p);
+  packerAppend (p, strBuf (e->name), strLen (e->name));
+  packerAppend (p, ": ", 2);
+  packerAppend (p, strBuf (e->value), strLen (e->value));
+  packerAppend (p, "\r\n", 2);
 }
 
 static void
-httpHeaderNoteParsedEntry(http_hdr_type id, String context, int error)
+httpHeaderNoteParsedEntry (http_hdr_type id, String context, int error)
 {
-    Headers[id].stat.parsCount++;
-    if (error) {
-       Headers[id].stat.errCount++;
-       debug(55, 2) ("cannot parse hdr field: '%s: %s'\n",
-           strBuf(Headers[id].name), strBuf(context));
+  Headers[id].stat.parsCount++;
+  if (error)
+    {
+      Headers[id].stat.errCount++;
+      debug (55, 2) ("cannot parse hdr field: '%s: %s'\n",
+                    strBuf (Headers[id].name), strBuf (context));
     }
 }
 
@@ -1063,117 +1097,120 @@ extern const HttpHeaderStat *dump_stat;               /* argh! */
 const HttpHeaderStat *dump_stat = NULL;
 
 static void
-httpHeaderFieldStatDumper(StoreEntry * sentry, int idx, double val, double size, int count)
+httpHeaderFieldStatDumper (StoreEntry * sentry, int idx, double val, double size, int count)
 {
-    const int id = (int) val;
-    const int valid_id = id >= 0 && id < HDR_ENUM_END;
-    const char *name = valid_id ? strBuf(Headers[id].name) : "INVALID";
-    int visible = count > 0;
-    /* for entries with zero count, list only those that belong to current type of message */
-    if (!visible && valid_id && dump_stat->owner_mask)
-       visible = CBIT_TEST(*dump_stat->owner_mask, id);
-    if (visible)
-       storeAppendPrintf(sentry, "%2d\t %-20s\t %5d\t %6.2f\n",
-           id, name, count, xdiv(count, dump_stat->busyDestroyedCount));
+  const int id = (int) val;
+  const int valid_id = id >= 0 && id < HDR_ENUM_END;
+  const char *name = valid_id ? strBuf (Headers[id].name) : "INVALID";
+  int visible = count > 0;
+  /* for entries with zero count, list only those that belong to current type of message */
+  if (!visible && valid_id && dump_stat->owner_mask)
+    visible = CBIT_TEST (*dump_stat->owner_mask, id);
+  if (visible)
+    storeAppendPrintf (sentry, "%2d\t %-20s\t %5d\t %6.2f\n",
+             id, name, count, xdiv (count, dump_stat->busyDestroyedCount));
 }
 
 static void
-httpHeaderFldsPerHdrDumper(StoreEntry * sentry, int idx, double val, double size, int count)
+httpHeaderFldsPerHdrDumper (StoreEntry * sentry, int idx, double val, double size, int count)
 {
-    if (count)
-       storeAppendPrintf(sentry, "%2d\t %5d\t %5d\t %6.2f\n",
-           idx, (int) val, count,
-           xpercent(count, dump_stat->destroyedCount));
+  if (count)
+    storeAppendPrintf (sentry, "%2d\t %5d\t %5d\t %6.2f\n",
+                      idx, (int) val, count,
+                      xpercent (count, dump_stat->destroyedCount));
 }
 
 
 static void
-httpHeaderStatDump(const HttpHeaderStat * hs, StoreEntry * e)
+httpHeaderStatDump (const HttpHeaderStat * hs, StoreEntry * e)
 {
-    assert(hs && e);
-
-    dump_stat = hs;
-    storeAppendPrintf(e, "\nHeader Stats: %s\n", hs->label);
-    storeAppendPrintf(e, "\nField type distribution\n");
-    storeAppendPrintf(e, "%2s\t %-20s\t %5s\t %6s\n",
-       "id", "name", "count", "#/header");
-    statHistDump(&hs->fieldTypeDistr, e, httpHeaderFieldStatDumper);
-    storeAppendPrintf(e, "\nCache-control directives distribution\n");
-    storeAppendPrintf(e, "%2s\t %-20s\t %5s\t %6s\n",
-       "id", "name", "count", "#/cc_field");
-    statHistDump(&hs->ccTypeDistr, e, httpHdrCcStatDumper);
-    storeAppendPrintf(e, "\nNumber of fields per header distribution\n");
-    storeAppendPrintf(e, "%2s\t %-5s\t %5s\t %6s\n",
-       "id", "#flds", "count", "%total");
-    statHistDump(&hs->hdrUCountDistr, e, httpHeaderFldsPerHdrDumper);
-    dump_stat = NULL;
+  assert (hs && e);
+
+  dump_stat = hs;
+  storeAppendPrintf (e, "\nHeader Stats: %s\n", hs->label);
+  storeAppendPrintf (e, "\nField type distribution\n");
+  storeAppendPrintf (e, "%2s\t %-20s\t %5s\t %6s\n",
+                    "id", "name", "count", "#/header");
+  statHistDump (&hs->fieldTypeDistr, e, httpHeaderFieldStatDumper);
+  storeAppendPrintf (e, "\nCache-control directives distribution\n");
+  storeAppendPrintf (e, "%2s\t %-20s\t %5s\t %6s\n",
+                    "id", "name", "count", "#/cc_field");
+  statHistDump (&hs->ccTypeDistr, e, httpHdrCcStatDumper);
+  storeAppendPrintf (e, "\nNumber of fields per header distribution\n");
+  storeAppendPrintf (e, "%2s\t %-5s\t %5s\t %6s\n",
+                    "id", "#flds", "count", "%total");
+  statHistDump (&hs->hdrUCountDistr, e, httpHeaderFldsPerHdrDumper);
+  dump_stat = NULL;
 }
 
 void
-httpHeaderStoreReport(StoreEntry * e)
+httpHeaderStoreReport (StoreEntry * e)
 {
-    int i;
-    http_hdr_type ht;
-    assert(e);
-
-    HttpHeaderStats[0].parsedCount =
-       HttpHeaderStats[hoRequest].parsedCount + HttpHeaderStats[hoReply].parsedCount;
-    HttpHeaderStats[0].ccParsedCount =
-       HttpHeaderStats[hoRequest].ccParsedCount + HttpHeaderStats[hoReply].ccParsedCount;
-    HttpHeaderStats[0].destroyedCount =
-       HttpHeaderStats[hoRequest].destroyedCount + HttpHeaderStats[hoReply].destroyedCount;
-    HttpHeaderStats[0].busyDestroyedCount =
-       HttpHeaderStats[hoRequest].busyDestroyedCount + HttpHeaderStats[hoReply].busyDestroyedCount;
-
-    for (i = 1; i < HttpHeaderStatCount; i++) {
-       httpHeaderStatDump(HttpHeaderStats + i, e);
-       storeAppendPrintf(e, "%s\n", "<br>");
+  int i;
+  http_hdr_type ht;
+  assert (e);
+
+  HttpHeaderStats[0].parsedCount =
+    HttpHeaderStats[hoRequest].parsedCount + HttpHeaderStats[hoReply].parsedCount;
+  HttpHeaderStats[0].ccParsedCount =
+    HttpHeaderStats[hoRequest].ccParsedCount + HttpHeaderStats[hoReply].ccParsedCount;
+  HttpHeaderStats[0].destroyedCount =
+    HttpHeaderStats[hoRequest].destroyedCount + HttpHeaderStats[hoReply].destroyedCount;
+  HttpHeaderStats[0].busyDestroyedCount =
+    HttpHeaderStats[hoRequest].busyDestroyedCount + HttpHeaderStats[hoReply].busyDestroyedCount;
+
+  for (i = 1; i < HttpHeaderStatCount; i++)
+    {
+      httpHeaderStatDump (HttpHeaderStats + i, e);
+      storeAppendPrintf (e, "%s\n", "<br>");
     }
-    /* field stats for all messages */
-    storeAppendPrintf(e, "\nHttp Fields Stats (replies and requests)\n");
-    storeAppendPrintf(e, "%2s\t %-20s\t %5s\t %6s\t %6s\n",
-       "id", "name", "#alive", "%err", "%repeat");
-    for (ht = 0; ht < HDR_ENUM_END; ht++) {
-       HttpHeaderFieldInfo *f = Headers + ht;
-       storeAppendPrintf(e, "%2d\t %-20s\t %5d\t %6.3f\t %6.3f\n",
-           f->id, strBuf(f->name), f->stat.aliveCount,
-           xpercent(f->stat.errCount, f->stat.parsCount),
-           xpercent(f->stat.repCount, f->stat.seenCount));
+  /* field stats for all messages */
+  storeAppendPrintf (e, "\nHttp Fields Stats (replies and requests)\n");
+  storeAppendPrintf (e, "%2s\t %-20s\t %5s\t %6s\t %6s\n",
+                    "id", "name", "#alive", "%err", "%repeat");
+  for (ht = 0; ht < HDR_ENUM_END; ht++)
+    {
+      HttpHeaderFieldInfo *f = Headers + ht;
+      storeAppendPrintf (e, "%2d\t %-20s\t %5d\t %6.3f\t %6.3f\n",
+                        f->id, strBuf (f->name), f->stat.aliveCount,
+                        xpercent (f->stat.errCount, f->stat.parsCount),
+                        xpercent (f->stat.repCount, f->stat.seenCount));
     }
-    storeAppendPrintf(e, "Headers Parsed: %d + %d = %d\n",
-       HttpHeaderStats[hoRequest].parsedCount,
-       HttpHeaderStats[hoReply].parsedCount,
-       HttpHeaderStats[0].parsedCount);
-    storeAppendPrintf(e, "Hdr Fields Parsed: %d\n", HeaderEntryParsedCount);
+  storeAppendPrintf (e, "Headers Parsed: %d + %d = %d\n",
+                    HttpHeaderStats[hoRequest].parsedCount,
+                    HttpHeaderStats[hoReply].parsedCount,
+                    HttpHeaderStats[0].parsedCount);
+  storeAppendPrintf (e, "Hdr Fields Parsed: %d\n", HeaderEntryParsedCount);
 }
 
 int
-httpHeaderIdByName(const char *name, int name_len, const HttpHeaderFieldInfo * info, int end)
+httpHeaderIdByName (const char *name, int name_len, const HttpHeaderFieldInfo * info, int end)
 {
-    int i;
-    for (i = 0; i < end; ++i) {
-       if (name_len >= 0 && name_len != strLen(info[i].name))
-           continue;
-       if (!strncasecmp(name, strBuf(info[i].name),
-               name_len < 0 ? strLen(info[i].name) + 1 : name_len))
-           return i;
+  int i;
+  for (i = 0; i < end; ++i)
+    {
+      if (name_len >= 0 && name_len != strLen (info[i].name))
+       continue;
+      if (!strncasecmp (name, strBuf (info[i].name),
+                       name_len < 0 ? strLen (info[i].name) + 1 : name_len))
+       return i;
     }
-    return -1;
+  return -1;
 }
 
 int
-httpHeaderIdByNameDef(const char *name, int name_len)
+httpHeaderIdByNameDef (const char *name, int name_len)
 {
-    if (!Headers)
-       Headers = httpHeaderBuildFieldsInfo(HeadersAttrs, HDR_ENUM_END);
-    return httpHeaderIdByName(name, name_len, Headers, HDR_ENUM_END);
+  if (!Headers)
+    Headers = httpHeaderBuildFieldsInfo (HeadersAttrs, HDR_ENUM_END);
+  return httpHeaderIdByName (name, name_len, Headers, HDR_ENUM_END);
 }
 
 const char *
-httpHeaderNameById(int id)
+httpHeaderNameById (int id)
 {
-    if (!Headers)
-       Headers = httpHeaderBuildFieldsInfo(HeadersAttrs, HDR_ENUM_END);
-    assert(id >= 0 && id < HDR_ENUM_END);
-    return HeadersAttrs[id].name;
+  if (!Headers)
+    Headers = httpHeaderBuildFieldsInfo (HeadersAttrs, HDR_ENUM_END);
+  assert (id >= 0 && id < HDR_ENUM_END);
+  return HeadersAttrs[id].name;
 }
index fca81ebb41035aebcf647fba9f7b674ceea2dc84..8fc859d21ba31c0f2fc094d30732d65bb81fed86 100644 (file)
@@ -1,6 +1,6 @@
 
 /*
- * $Id: access_log.cc,v 1.69 2001/08/22 23:26:05 robertc Exp $
+ * $Id: access_log.cc,v 1.70 2001/10/17 10:59:08 adrian Exp $
  *
  * DEBUG: section 46    Access Log
  * AUTHOR: Duane Wessels
@@ -36,8 +36,8 @@
 
 #include "squid.h"
 
-static void accessLogSquid(AccessLogEntry * al);
-static void accessLogCommon(AccessLogEntry * al);
+static void accessLogSquid (AccessLogEntry * al);
+static void accessLogCommon (AccessLogEntry * al);
 static Logfile *logfile = NULL;
 #if HEADERS_LOG
 static Logfile *headerslog = NULL;
@@ -46,50 +46,52 @@ static Logfile *headerslog = NULL;
 #if MULTICAST_MISS_STREAM
 static int mcast_miss_fd = -1;
 static struct sockaddr_in mcast_miss_to;
-static void mcast_encode(unsigned int *, size_t, const unsigned int *);
+static void mcast_encode (unsigned int *, size_t, const unsigned int *);
 #endif
 
 const char *log_tags[] =
 {
-    "NONE",
-    "TCP_HIT",
-    "TCP_MISS",
-    "TCP_REFRESH_HIT",
-    "TCP_REF_FAIL_HIT",
-    "TCP_REFRESH_MISS",
-    "TCP_CLIENT_REFRESH_MISS",
-    "TCP_IMS_HIT",
-    "TCP_SWAPFAIL_MISS",
-    "TCP_NEGATIVE_HIT",
-    "TCP_MEM_HIT",
-    "TCP_DENIED",
-    "TCP_OFFLINE_HIT",
+  "NONE",
+  "TCP_HIT",
+  "TCP_MISS",
+  "TCP_REFRESH_HIT",
+  "TCP_REF_FAIL_HIT",
+  "TCP_REFRESH_MISS",
+  "TCP_CLIENT_REFRESH_MISS",
+  "TCP_IMS_HIT",
+  "TCP_SWAPFAIL_MISS",
+  "TCP_NEGATIVE_HIT",
+  "TCP_MEM_HIT",
+  "TCP_DENIED",
+  "TCP_OFFLINE_HIT",
 #if LOG_TCP_REDIRECTS
-    "TCP_REDIRECT",
+  "TCP_REDIRECT",
 #endif
-    "UDP_HIT",
-    "UDP_MISS",
-    "UDP_DENIED",
-    "UDP_INVALID",
-    "UDP_MISS_NOFETCH",
-    "ICP_QUERY",
-    "LOG_TYPE_MAX"
+  "UDP_HIT",
+  "UDP_MISS",
+  "UDP_DENIED",
+  "UDP_INVALID",
+  "UDP_MISS_NOFETCH",
+  "ICP_QUERY",
+  "LOG_TYPE_MAX"
 };
 
 #if FORW_VIA_DB
-typedef struct {
+typedef struct
+  {
     hash_link hash;
     int n;
-} fvdb_entry;
+  }
+fvdb_entry;
 static hash_table *via_table = NULL;
 static hash_table *forw_table = NULL;
-static void fvdbInit(void);
-static void fvdbDumpTable(StoreEntry * e, hash_table * hash);
-static void fvdbCount(hash_table * hash, const char *key);
+static void fvdbInit (void);
+static void fvdbDumpTable (StoreEntry * e, hash_table * hash);
+static void fvdbCount (hash_table * hash, const char *key);
 static OBJH fvdbDumpVia;
 static OBJH fvdbDumpForw;
 static FREE fvdbFreeEntry;
-static void fvdbClear(void);
+static void fvdbClear (void);
 #endif
 
 static int LogfileStatus = LOG_DISABLE;
@@ -116,401 +118,429 @@ static const char c2x[] =
 /* log_quote -- URL-style encoding on MIME headers. */
 
 char *
-log_quote(const char *header)
+log_quote (const char *header)
 {
-    int c;
-    int i;
-    char *buf;
-    char *buf_cursor;
-    if (header == NULL) {
-       buf = xcalloc(1, 1);
-       *buf = '\0';
-       return buf;
+  int c;
+  int i;
+  char *buf;
+  char *buf_cursor;
+  if (header == NULL)
+    {
+      buf = xcalloc (1, 1);
+      *buf = '\0';
+      return buf;
     }
-    buf = xcalloc((strlen(header) * 3) + 1, 1);
-    buf_cursor = buf;
-    /*
-     * We escape: \x00-\x1F"#%;<>?{}|\\\\^~`\[\]\x7F-\xFF 
-     * which is the default escape list for the CPAN Perl5 URI module
-     * modulo the inclusion of space (x40) to make the raw logs a bit
-     * more readable.
-     */
-    while ((c = *(const unsigned char *) header++) != '\0') {
+  buf = xcalloc (1, (strlen (header) * 3) + 1);
+  buf_cursor = buf;
+  /*
+   * We escape: \x00-\x1F"#%;<>?{}|\\\\^~`\[\]\x7F-\xFF 
+   * which is the default escape list for the CPAN Perl5 URI module
+   * modulo the inclusion of space (x40) to make the raw logs a bit
+   * more readable.
+   */
+  while ((c = *(const unsigned char *) header++) != '\0')
+    {
 #if !OLD_LOG_MIME
-       if (c == '\r') {
-           *buf_cursor++ = '\\';
-           *buf_cursor++ = 'r';
-       } else if (c == '\n') {
-           *buf_cursor++ = '\\';
-           *buf_cursor++ = 'n';
-       } else
+      if (c == '\r')
+       {
+         *buf_cursor++ = '\\';
+         *buf_cursor++ = 'r';
+       }
+      else if (c == '\n')
+       {
+         *buf_cursor++ = '\\';
+         *buf_cursor++ = 'n';
+       }
+      else
 #endif
-           if (c <= 0x1F
-               || c >= 0x7F
+       if (c <= 0x1F
+           || c >= 0x7F
 #if OLD_LOG_MIME
-               || c == '"'
-               || c == '#'
-               || c == '%'
-               || c == ';'
-               || c == '<'
-               || c == '>'
-               || c == '?'
-               || c == '{'
-               || c == '}'
-               || c == '|'
-               || c == '\\'
-               || c == '^'
-               || c == '~'
-               || c == '`'
+           || c == '"'
+           || c == '#'
+           || c == '%'
+           || c == ';'
+           || c == '<'
+           || c == '>'
+           || c == '?'
+           || c == '{'
+           || c == '}'
+           || c == '|'
+           || c == '\\'
+           || c == '^'
+           || c == '~'
+           || c == '`'
 #endif
-               || c == '['
-           || c == ']') {
-           *buf_cursor++ = '%';
-           i = c * 2;
-           *buf_cursor++ = c2x[i];
-           *buf_cursor++ = c2x[i + 1];
+           || c == '['
+           || c == ']')
+       {
+         *buf_cursor++ = '%';
+         i = c * 2;
+         *buf_cursor++ = c2x[i];
+         *buf_cursor++ = c2x[i + 1];
 #if !OLD_LOG_MIME
-       } else if (c == '\\') {
-           *buf_cursor++ = '\\';
-           *buf_cursor++ = '\\';
+       }
+      else if (c == '\\')
+       {
+         *buf_cursor++ = '\\';
+         *buf_cursor++ = '\\';
 #endif
-       } else {
-           *buf_cursor++ = (char) c;
+       }
+      else
+       {
+         *buf_cursor++ = (char) c;
        }
     }
-    *buf_cursor = '\0';
-    return buf;
+  *buf_cursor = '\0';
+  return buf;
 }
 
 static char *
-username_quote(const char *header)
+username_quote (const char *header)
 /* copy of log_quote. Bugs there will be found here */
 {
-    int c;
-    int i;
-    char *buf;
-    char *buf_cursor;
-    if (header == NULL) {
-       buf = xcalloc(1, 1);
-       *buf = '\0';
-       return buf;
+  int c;
+  int i;
+  char *buf;
+  char *buf_cursor;
+  if (header == NULL)
+    {
+      buf = xcalloc (1, 1);
+      *buf = '\0';
+      return buf;
     }
-    buf = xcalloc((strlen(header) * 3) + 1, 1);
-    buf_cursor = buf;
-    /*
-     * We escape: space \x00-\x1F and space (0x40) and \x7F-\xFF
-     * to prevent garbage in the logs. CR and LF are also there just in case. 
-     */
-    while ((c = *(const unsigned char *) header++) != '\0') {
-       if (c == '\r') {
-           *buf_cursor++ = '\\';
-           *buf_cursor++ = 'r';
-       } else if (c == '\n') {
-           *buf_cursor++ = '\\';
-           *buf_cursor++ = 'n';
-       } else if (c <= 0x1F
-               || c >= 0x7F
-           || c == ' ') {
-           *buf_cursor++ = '%';
-           i = c * 2;
-           *buf_cursor++ = c2x[i];
-           *buf_cursor++ = c2x[i + 1];
-       } else {
-           *buf_cursor++ = (char) c;
+  buf = xcalloc (1, (strlen (header) * 3) + 1);
+  buf_cursor = buf;
+  /*
+   * We escape: space \x00-\x1F and space (0x40) and \x7F-\xFF
+   * to prevent garbage in the logs. CR and LF are also there just in case. 
+   */
+  while ((c = *(const unsigned char *) header++) != '\0')
+    {
+      if (c == '\r')
+       {
+         *buf_cursor++ = '\\';
+         *buf_cursor++ = 'r';
+       }
+      else if (c == '\n')
+       {
+         *buf_cursor++ = '\\';
+         *buf_cursor++ = 'n';
+       }
+      else if (c <= 0x1F
+              || c >= 0x7F
+              || c == ' ')
+       {
+         *buf_cursor++ = '%';
+         i = c * 2;
+         *buf_cursor++ = c2x[i];
+         *buf_cursor++ = c2x[i + 1];
+       }
+      else
+       {
+         *buf_cursor++ = (char) c;
        }
     }
-    *buf_cursor = '\0';
-    return buf;
+  *buf_cursor = '\0';
+  return buf;
 }
 
 static char *
-accessLogFormatName(const char *name)
+accessLogFormatName (const char *name)
 {
-    if (NULL == name)
-       return NULL;
-    return username_quote(name);
+  if (NULL == name)
+    return NULL;
+  return username_quote (name);
 }
 
 static void
-accessLogSquid(AccessLogEntry * al)
+accessLogSquid (AccessLogEntry * al)
 {
-    const char *client = NULL;
-    char *user = NULL;
-    if (Config.onoff.log_fqdn)
-       client = fqdncache_gethostbyaddr(al->cache.caddr, FQDN_LOOKUP_IF_MISS);
-    if (client == NULL)
-       client = inet_ntoa(al->cache.caddr);
-    user = accessLogFormatName(al->cache.authuser ?
-       al->cache.authuser : al->cache.rfc931);
-    logfilePrintf(logfile, "%9d.%03d %6d %s %s/%03d %d %s %s %s %s%s/%s %s",
-       (int) current_time.tv_sec,
-       (int) current_time.tv_usec / 1000,
-       al->cache.msec,
-       client,
-       log_tags[al->cache.code],
-       al->http.code,
-       al->cache.size,
-       al->private.method_str,
-       al->url,
-       user ? user : dash_str,
-       al->hier.ping.timedout ? "TIMEOUT_" : "",
-       hier_strings[al->hier.code],
-       al->hier.host,
-       al->http.content_type);
-    safe_free(user);
+  const char *client = NULL;
+  char *user = NULL;
+  if (Config.onoff.log_fqdn)
+    client = fqdncache_gethostbyaddr (al->cache.caddr, FQDN_LOOKUP_IF_MISS);
+  if (client == NULL)
+    client = inet_ntoa (al->cache.caddr);
+  user = accessLogFormatName (al->cache.authuser ?
+                             al->cache.authuser : al->cache.rfc931);
+  logfilePrintf (logfile, "%9d.%03d %6d %s %s/%03d %d %s %s %s %s%s/%s %s",
+                (int) current_time.tv_sec,
+                (int) current_time.tv_usec / 1000,
+                al->cache.msec,
+                client,
+                log_tags[al->cache.code],
+                al->http.code,
+                al->cache.size,
+                al->private.method_str,
+                al->url,
+                user ? user : dash_str,
+                al->hier.ping.timedout ? "TIMEOUT_" : "",
+                hier_strings[al->hier.code],
+                al->hier.host,
+                al->http.content_type);
+  safe_free (user);
 }
 
 static void
-accessLogCommon(AccessLogEntry * al)
+accessLogCommon (AccessLogEntry * al)
 {
-    const char *client = NULL;
-    char *user1 = NULL, *user2 = NULL;
-    if (Config.onoff.log_fqdn)
-       client = fqdncache_gethostbyaddr(al->cache.caddr, 0);
-    if (client == NULL)
-       client = inet_ntoa(al->cache.caddr);
-    user1 = accessLogFormatName(al->cache.authuser);
-    user2 = accessLogFormatName(al->cache.rfc931);
-    logfilePrintf(logfile, "%s %s %s [%s] \"%s %s HTTP/%d.%d\" %d %d %s:%s",
-       client,
-       user2 ? user2 : dash_str,
-       user1 ? user1 : dash_str,
-       mkhttpdlogtime(&squid_curtime),
-       al->private.method_str,
-       al->url,
-       al->http.version.major, al->http.version.minor,
-       al->http.code,
-       al->cache.size,
-       log_tags[al->cache.code],
-       hier_strings[al->hier.code]);
-    safe_free(user1);
-    safe_free(user2);
+  const char *client = NULL;
+  char *user1 = NULL, *user2 = NULL;
+  if (Config.onoff.log_fqdn)
+    client = fqdncache_gethostbyaddr (al->cache.caddr, 0);
+  if (client == NULL)
+    client = inet_ntoa (al->cache.caddr);
+  user1 = accessLogFormatName (al->cache.authuser);
+  user2 = accessLogFormatName (al->cache.rfc931);
+  logfilePrintf (logfile, "%s %s %s [%s] \"%s %s HTTP/%d.%d\" %d %d %s:%s",
+                client,
+                user2 ? user2 : dash_str,
+                user1 ? user1 : dash_str,
+                mkhttpdlogtime (&squid_curtime),
+                al->private.method_str,
+                al->url,
+                al->http.version.major, al->http.version.minor,
+                al->http.code,
+                al->cache.size,
+                log_tags[al->cache.code],
+                hier_strings[al->hier.code]);
+  safe_free (user1);
+  safe_free (user2);
 }
 
 void
-accessLogLog(AccessLogEntry * al)
+accessLogLog (AccessLogEntry * al)
 {
-    if (LogfileStatus != LOG_ENABLE)
-       return;
-    if (al->url == NULL)
-       al->url = dash_str;
-    if (!al->http.content_type || *al->http.content_type == '\0')
-       al->http.content_type = dash_str;
-    if (al->icp.opcode)
-       al->private.method_str = icp_opcode_str[al->icp.opcode];
-    else
-       al->private.method_str = RequestMethodStr[al->http.method];
-    if (al->hier.host[0] == '\0')
-       xstrncpy(al->hier.host, dash_str, SQUIDHOSTNAMELEN);
-
-    if (Config.onoff.common_log)
-       accessLogCommon(al);
-    else
-       accessLogSquid(al);
-    if (Config.onoff.log_mime_hdrs) {
-       char *ereq = log_quote(al->headers.request);
-       char *erep = log_quote(al->headers.reply);
-       logfilePrintf(logfile, " [%s] [%s]\n", ereq, erep);
-       safe_free(ereq);
-       safe_free(erep);
-    } else {
-       logfilePrintf(logfile, "\n");
+  if (LogfileStatus != LOG_ENABLE)
+    return;
+  if (al->url == NULL)
+    al->url = dash_str;
+  if (!al->http.content_type || *al->http.content_type == '\0')
+    al->http.content_type = dash_str;
+  if (al->icp.opcode)
+    al->private.method_str = icp_opcode_str[al->icp.opcode];
+  else
+    al->private.method_str = RequestMethodStr[al->http.method];
+  if (al->hier.host[0] == '\0')
+    xstrncpy (al->hier.host, dash_str, SQUIDHOSTNAMELEN);
+
+  if (Config.onoff.common_log)
+    accessLogCommon (al);
+  else
+    accessLogSquid (al);
+  if (Config.onoff.log_mime_hdrs)
+    {
+      char *ereq = log_quote (al->headers.request);
+      char *erep = log_quote (al->headers.reply);
+      logfilePrintf (logfile, " [%s] [%s]\n", ereq, erep);
+      safe_free (ereq);
+      safe_free (erep);
+    }
+  else
+    {
+      logfilePrintf (logfile, "\n");
     }
-    logfileFlush(logfile);
+  logfileFlush (logfile);
 #if MULTICAST_MISS_STREAM
-    if (al->cache.code != LOG_TCP_MISS)
-       (void) 0;
-    else if (al->http.method != METHOD_GET)
-       (void) 0;
-    else if (mcast_miss_fd < 0)
-       (void) 0;
-    else {
-       unsigned int ibuf[365];
-       size_t isize;
-       xstrncpy((char *) ibuf, al->url, 364 * sizeof(int));
-       isize = ((strlen(al->url) + 8) / 8) * 2;
-       if (isize > 364)
-           isize = 364;
-       mcast_encode((unsigned int *) ibuf, isize,
-           (const unsigned int *) Config.mcast_miss.encode_key);
-       comm_udp_sendto(mcast_miss_fd,
-           &mcast_miss_to, sizeof(mcast_miss_to),
-           ibuf, isize * sizeof(int));
+  if (al->cache.code != LOG_TCP_MISS)
+    (void) 0;
+  else if (al->http.method != METHOD_GET)
+    (void) 0;
+  else if (mcast_miss_fd < 0)
+    (void) 0;
+  else
+    {
+      unsigned int ibuf[365];
+      size_t isize;
+      xstrncpy ((char *) ibuf, al->url, 364 * sizeof (int));
+      isize = ((strlen (al->url) + 8) / 8) * 2;
+      if (isize > 364)
+       isize = 364;
+      mcast_encode ((unsigned int *) ibuf, isize,
+                   (const unsigned int *) Config.mcast_miss.encode_key);
+      comm_udp_sendto (mcast_miss_fd,
+                      &mcast_miss_to, sizeof (mcast_miss_to),
+                      ibuf, isize * sizeof (int));
     }
 #endif
 }
 
 void
-accessLogRotate(void)
+accessLogRotate (void)
 {
 #if FORW_VIA_DB
-    fvdbClear();
+  fvdbClear ();
 #endif
-    if (NULL == logfile)
-       return;
-    logfileRotate(logfile);
+  if (NULL == logfile)
+    return;
+  logfileRotate (logfile);
 #if HEADERS_LOG
-    logfileRotate(headerslog);
+  logfileRotate (headerslog);
 #endif
 }
 
 void
-accessLogClose(void)
+accessLogClose (void)
 {
-    logfileClose(logfile);
-    logfile = NULL;
+  logfileClose (logfile);
+  logfile = NULL;
 #if HEADERS_LOG
-    logfileClose(headerslog);
-    headerslog = NULL;
+  logfileClose (headerslog);
+  headerslog = NULL;
 #endif
 }
 
 void
-hierarchyNote(HierarchyLogEntry * hl,
-    hier_code code,
-    const char *cache_peer)
+hierarchyNote (HierarchyLogEntry * hl,
+              hier_code code,
+              const char *cache_peer)
 {
-    assert(hl != NULL);
-    hl->code = code;
-    xstrncpy(hl->host, cache_peer, SQUIDHOSTNAMELEN);
+  assert (hl != NULL);
+  hl->code = code;
+  xstrncpy (hl->host, cache_peer, SQUIDHOSTNAMELEN);
 }
 
 void
-accessLogInit(void)
+accessLogInit (void)
 {
-    assert(sizeof(log_tags) == (LOG_TYPE_MAX + 1) * sizeof(char *));
-    if (strcasecmp(Config.Log.access, "none") == 0)
-       return;
-    logfile = logfileOpen(Config.Log.access, MAX_URL << 1, 1);
-    LogfileStatus = LOG_ENABLE;
+  assert (sizeof (log_tags) == (LOG_TYPE_MAX + 1) * sizeof (char *));
+  if (strcasecmp (Config.Log.access, "none") == 0)
+    return;
+  logfile = logfileOpen (Config.Log.access, MAX_URL << 1, 1);
+  LogfileStatus = LOG_ENABLE;
 #if HEADERS_LOG
-    headerslog = logfileOpen("/usr/local/squid/logs/headers.log", 512);
-    assert(NULL != headerslog);
+  headerslog = logfileOpen ("/usr/local/squid/logs/headers.log", 512);
+  assert (NULL != headerslog);
 #endif
 #if FORW_VIA_DB
-    fvdbInit();
+  fvdbInit ();
 #endif
 #if MULTICAST_MISS_STREAM
-    if (Config.mcast_miss.addr.s_addr != no_addr.s_addr) {
-       memset(&mcast_miss_to, '\0', sizeof(mcast_miss_to));
-       mcast_miss_to.sin_family = AF_INET;
-       mcast_miss_to.sin_port = htons(Config.mcast_miss.port);
-       mcast_miss_to.sin_addr.s_addr = Config.mcast_miss.addr.s_addr;
-       mcast_miss_fd = comm_open(SOCK_DGRAM,
-           0,
-           Config.Addrs.udp_incoming,
-           Config.mcast_miss.port,
-           COMM_NONBLOCKING,
-           "Multicast Miss Stream");
-       if (mcast_miss_fd < 0)
-           fatal("Cannot open Multicast Miss Stream Socket");
-       debug(46, 1) ("Multicast Miss Stream Socket opened on FD %d\n",
-           mcast_miss_fd);
-       mcastSetTtl(mcast_miss_fd, Config.mcast_miss.ttl);
-       if (strlen(Config.mcast_miss.encode_key) < 16)
-           fatal("mcast_encode_key is too short, must be 16 characters");
+  if (Config.mcast_miss.addr.s_addr != no_addr.s_addr)
+    {
+      memset (&mcast_miss_to, '\0', sizeof (mcast_miss_to));
+      mcast_miss_to.sin_family = AF_INET;
+      mcast_miss_to.sin_port = htons (Config.mcast_miss.port);
+      mcast_miss_to.sin_addr.s_addr = Config.mcast_miss.addr.s_addr;
+      mcast_miss_fd = comm_open (SOCK_DGRAM,
+                                0,
+                                Config.Addrs.udp_incoming,
+                                Config.mcast_miss.port,
+                                COMM_NONBLOCKING,
+                                "Multicast Miss Stream");
+      if (mcast_miss_fd < 0)
+       fatal ("Cannot open Multicast Miss Stream Socket");
+      debug (46, 1) ("Multicast Miss Stream Socket opened on FD %d\n",
+                    mcast_miss_fd);
+      mcastSetTtl (mcast_miss_fd, Config.mcast_miss.ttl);
+      if (strlen (Config.mcast_miss.encode_key) < 16)
+       fatal ("mcast_encode_key is too short, must be 16 characters");
     }
 #endif
 }
 
 const char *
-accessLogTime(time_t t)
+accessLogTime (time_t t)
 {
-    struct tm *tm;
-    static char buf[128];
-    static time_t last_t = 0;
-    if (t != last_t) {
-       tm = localtime(&t);
-       strftime(buf, 127, "%Y/%m/%d %H:%M:%S", tm);
-       last_t = t;
+  struct tm *tm;
+  static char buf[128];
+  static time_t last_t = 0;
+  if (t != last_t)
+    {
+      tm = localtime (&t);
+      strftime (buf, 127, "%Y/%m/%d %H:%M:%S", tm);
+      last_t = t;
     }
-    return buf;
+  return buf;
 }
 
 
 #if FORW_VIA_DB
 
 static void
-fvdbInit(void)
+fvdbInit (void)
 {
-    via_table = hash_create((HASHCMP *) strcmp, 977, hash4);
-    forw_table = hash_create((HASHCMP *) strcmp, 977, hash4);
-    cachemgrRegister("via_headers", "Via Request Headers", fvdbDumpVia, 0, 1);
-    cachemgrRegister("forw_headers", "X-Forwarded-For Request Headers",
-       fvdbDumpForw, 0, 1);
+  via_table = hash_create ((HASHCMP *) strcmp, 977, hash4);
+  forw_table = hash_create ((HASHCMP *) strcmp, 977, hash4);
+  cachemgrRegister ("via_headers", "Via Request Headers", fvdbDumpVia, 0, 1);
+  cachemgrRegister ("forw_headers", "X-Forwarded-For Request Headers",
+                   fvdbDumpForw, 0, 1);
 }
 
 static void
-fvdbCount(hash_table * hash, const char *key)
+fvdbCount (hash_table * hash, const char *key)
 {
-    fvdb_entry *fv;
-    if (NULL == hash)
-       return;
-    fv = hash_lookup(hash, key);
-    if (NULL == fv) {
-       fv = xcalloc(1, sizeof(fvdb_entry));
-       fv->hash.key = xstrdup(key);
-       hash_join(hash, &fv->hash);
+  fvdb_entry *fv;
+  if (NULL == hash)
+    return;
+  fv = hash_lookup (hash, key);
+  if (NULL == fv)
+    {
+      fv = xcalloc (1, sizeof (fvdb_entry));
+      fv->hash.key = xstrdup (key);
+      hash_join (hash, &fv->hash);
     }
-    fv->n++;
+  fv->n++;
 }
 
 void
-fvdbCountVia(const char *key)
+fvdbCountVia (const char *key)
 {
-    fvdbCount(via_table, key);
+  fvdbCount (via_table, key);
 }
 
 void
-fvdbCountForw(const char *key)
+fvdbCountForw (const char *key)
 {
-    fvdbCount(forw_table, key);
+  fvdbCount (forw_table, key);
 }
 
 static void
-fvdbDumpTable(StoreEntry * e, hash_table * hash)
+fvdbDumpTable (StoreEntry * e, hash_table * hash)
 {
-    hash_link *h;
-    fvdb_entry *fv;
-    if (hash == NULL)
-       return;
-    hash_first(hash);
-    while ((h = hash_next(hash))) {
-       fv = (fvdb_entry *) h;
-       storeAppendPrintf(e, "%9d %s\n", fv->n, hashKeyStr(&fv->hash));
+  hash_link *h;
+  fvdb_entry *fv;
+  if (hash == NULL)
+    return;
+  hash_first (hash);
+  while ((h = hash_next (hash)))
+    {
+      fv = (fvdb_entry *) h;
+      storeAppendPrintf (e, "%9d %s\n", fv->n, hashKeyStr (&fv->hash));
     }
 }
 
 static void
-fvdbDumpVia(StoreEntry * e)
+fvdbDumpVia (StoreEntry * e)
 {
-    fvdbDumpTable(e, via_table);
+  fvdbDumpTable (e, via_table);
 }
 
 static void
-fvdbDumpForw(StoreEntry * e)
+fvdbDumpForw (StoreEntry * e)
 {
-    fvdbDumpTable(e, forw_table);
+  fvdbDumpTable (e, forw_table);
 }
 
 static
 void
-fvdbFreeEntry(void *data)
+fvdbFreeEntry (void *data)
 {
-    fvdb_entry *fv = data;
-    xfree(fv->hash.key);
-    xfree(fv);
+  fvdb_entry *fv = data;
+  xfree (fv->hash.key);
+  xfree (fv);
 }
 
 static void
-fvdbClear(void)
+fvdbClear (void)
 {
-    hashFreeItems(via_table, fvdbFreeEntry);
-    hashFreeMemory(via_table);
-    via_table = hash_create((HASHCMP *) strcmp, 977, hash4);
-    hashFreeItems(forw_table, fvdbFreeEntry);
-    hashFreeMemory(forw_table);
-    forw_table = hash_create((HASHCMP *) strcmp, 977, hash4);
+  hashFreeItems (via_table, fvdbFreeEntry);
+  hashFreeMemory (via_table);
+  via_table = hash_create ((HASHCMP *) strcmp, 977, hash4);
+  hashFreeItems (forw_table, fvdbFreeEntry);
+  hashFreeMemory (forw_table);
+  forw_table = hash_create ((HASHCMP *) strcmp, 977, hash4);
 }
 
 #endif
@@ -525,29 +555,31 @@ fvdbClear(void)
  * network byte order.
  */
 static void
-mcast_encode(unsigned int *ibuf, size_t isize, const unsigned int *key)
+mcast_encode (unsigned int *ibuf, size_t isize, const unsigned int *key)
 {
-    unsigned int y;
-    unsigned int z;
-    unsigned int sum;
-    const unsigned int delta = 0x9e3779b9;
-    unsigned int n = 32;
-    const unsigned int k0 = htonl(key[0]);
-    const unsigned int k1 = htonl(key[1]);
-    const unsigned int k2 = htonl(key[2]);
-    const unsigned int k3 = htonl(key[3]);
-    int i;
-    for (i = 0; i < isize; i += 2) {
-       y = htonl(ibuf[i]);
-       z = htonl(ibuf[i + 1]);
-       sum = 0;
-       for (n = 32; n; n--) {
-           sum += delta;
-           y += (z << 4) + (k0 ^ z) + (sum ^ (z >> 5)) + k1;
-           z += (y << 4) + (k2 ^ y) + (sum ^ (y >> 5)) + k3;
+  unsigned int y;
+  unsigned int z;
+  unsigned int sum;
+  const unsigned int delta = 0x9e3779b9;
+  unsigned int n = 32;
+  const unsigned int k0 = htonl (key[0]);
+  const unsigned int k1 = htonl (key[1]);
+  const unsigned int k2 = htonl (key[2]);
+  const unsigned int k3 = htonl (key[3]);
+  int i;
+  for (i = 0; i < isize; i += 2)
+    {
+      y = htonl (ibuf[i]);
+      z = htonl (ibuf[i + 1]);
+      sum = 0;
+      for (n = 32; n; n--)
+       {
+         sum += delta;
+         y += (z << 4) + (k0 ^ z) + (sum ^ (z >> 5)) + k1;
+         z += (y << 4) + (k2 ^ y) + (sum ^ (y >> 5)) + k3;
        }
-       ibuf[i] = htonl(y);
-       ibuf[i + 1] = htonl(z);
+      ibuf[i] = htonl (y);
+      ibuf[i + 1] = htonl (z);
     }
 }
 
@@ -555,51 +587,57 @@ mcast_encode(unsigned int *ibuf, size_t isize, const unsigned int *key)
 
 #if HEADERS_LOG
 void
-headersLog(int cs, int pq, method_t m, void *data)
+headersLog (int cs, int pq, method_t m, void *data)
 {
-    HttpReply *rep;
-    request_t *req;
-    unsigned short magic = 0;
-    unsigned char M = (unsigned char) m;
-    unsigned short S;
-    char *hmask;
-    int ccmask = 0;
-    if (0 == pq) {
-       /* reply */
-       rep = data;
-       req = NULL;
-       magic = 0x0050;
-       hmask = rep->header.mask;
-       if (rep->cache_control)
-           ccmask = rep->cache_control->mask;
-    } else {
-       /* request */
-       req = data;
-       rep = NULL;
-       magic = 0x0051;
-       hmask = req->header.mask;
-       if (req->cache_control)
-           ccmask = req->cache_control->mask;
+  HttpReply *rep;
+  request_t *req;
+  unsigned short magic = 0;
+  unsigned char M = (unsigned char) m;
+  unsigned short S;
+  char *hmask;
+  int ccmask = 0;
+  if (0 == pq)
+    {
+      /* reply */
+      rep = data;
+      req = NULL;
+      magic = 0x0050;
+      hmask = rep->header.mask;
+      if (rep->cache_control)
+       ccmask = rep->cache_control->mask;
+    }
+  else
+    {
+      /* request */
+      req = data;
+      rep = NULL;
+      magic = 0x0051;
+      hmask = req->header.mask;
+      if (req->cache_control)
+       ccmask = req->cache_control->mask;
+    }
+  if (0 == cs)
+    {
+      /* client */
+      magic |= 0x4300;
     }
-    if (0 == cs) {
-       /* client */
-       magic |= 0x4300;
-    } else {
-       /* server */
-       magic |= 0x5300;
+  else
+    {
+      /* server */
+      magic |= 0x5300;
     }
-    magic = htons(magic);
-    ccmask = htonl(ccmask);
-    if (0 == pq)
-       S = (unsigned short) rep->sline.status;
-    else
-       S = (unsigned short) HTTP_STATUS_NONE;
-    logfileWrite(headerslog, &magic, sizeof(magic));
-    logfileWrite(headerslog, &M, sizeof(M));
-    logfileWrite(headerslog, &S, sizeof(S));
-    logfileWrite(headerslog, hmask, sizeof(HttpHeaderMask));
-    logfileWrite(headerslog, &ccmask, sizeof(int));
-    logfileFlush(headerslog);
+  magic = htons (magic);
+  ccmask = htonl (ccmask);
+  if (0 == pq)
+    S = (unsigned short) rep->sline.status;
+  else
+    S = (unsigned short) HTTP_STATUS_NONE;
+  logfileWrite (headerslog, &magic, sizeof (magic));
+  logfileWrite (headerslog, &M, sizeof (M));
+  logfileWrite (headerslog, &S, sizeof (S));
+  logfileWrite (headerslog, hmask, sizeof (HttpHeaderMask));
+  logfileWrite (headerslog, &ccmask, sizeof (int));
+  logfileFlush (headerslog);
 }
 
 #endif
index 3237239851bce3bce37704596a812d558af5fbc9..69ff8b4c600d1c3034f93c7d0d5c5379abc71b75 100644 (file)
@@ -1,6 +1,6 @@
 
 /*
- * $Id: acl.cc,v 1.261 2001/10/11 13:12:57 hno Exp $
+ * $Id: acl.cc,v 1.262 2001/10/17 10:59:08 adrian Exp $
  *
  * DEBUG: section 28    Access Control
  * AUTHOR: Duane Wessels
 static int aclFromFile = 0;
 static FILE *aclFile;
 
-static void aclParseDomainList(void *curlist);
-static void aclParseUserList(void **current);
-static void aclParseIpList(void *curlist);
-static void aclParseIntlist(void *curlist);
+static void aclParseDomainList (void *curlist);
+static void aclParseUserList (void **current);
+static void aclParseIpList (void *curlist);
+static void aclParseIntlist (void *curlist);
 #if SQUID_SNMP
-static void aclParseWordList(void *curlist);
+static void aclParseWordList (void *curlist);
 #endif
-static void aclParseProtoList(void *curlist);
-static void aclParseMethodList(void *curlist);
-static void aclParseTimeSpec(void *curlist);
-static void aclParseIntRange(void *curlist);
-static char *strtokFile(void);
-static void aclDestroyTimeList(acl_time_data * data);
-static void aclDestroyIntRange(intrange *);
-static void aclLookupProxyAuthStart(aclCheck_t * checklist);
-static void aclLookupProxyAuthDone(void *data, char *result);
-static struct _acl *aclFindByName(const char *name);
-static int aclMatchAcl(struct _acl *, aclCheck_t *);
-static int aclMatchIntegerRange(intrange * data, int i);
-static int aclMatchTime(acl_time_data * data, time_t when);
-static int aclMatchUser(void *proxyauth_acl, char *user);
-static int aclMatchIp(void *dataptr, struct in_addr c);
-static int aclMatchDomainList(void *dataptr, const char *);
-static int aclMatchIntegerRange(intrange * data, int i);
+static void aclParseProtoList (void *curlist);
+static void aclParseMethodList (void *curlist);
+static void aclParseTimeSpec (void *curlist);
+static void aclParseIntRange (void *curlist);
+static char *strtokFile (void);
+static void aclDestroyTimeList (acl_time_data * data);
+static void aclDestroyIntRange (intrange *);
+static void aclLookupProxyAuthStart (aclCheck_t * checklist);
+static void aclLookupProxyAuthDone (void *data, char *result);
+static struct _acl *aclFindByName (const char *name);
+static int aclMatchAcl (struct _acl *, aclCheck_t *);
+static int aclMatchTime (acl_time_data * data, time_t when);
+static int aclMatchUser (void *proxyauth_acl, char *user);
+static int aclMatchIp (void *dataptr, struct in_addr c);
+static int aclMatchDomainList (void *dataptr, const char *);
+static int aclMatchIntegerRange (intrange * data, int i);
 #if SQUID_SNMP
-static int aclMatchWordList(wordlist *, const char *);
+static int aclMatchWordList (wordlist *, const char *);
 #endif
-static void aclParseUserMaxIP(void *data);
-static void aclDestroyUserMaxIP(void *data);
-static wordlist *aclDumpUserMaxIP(void *data);
-static int aclMatchUserMaxIP(void *, auth_user_request_t *, struct in_addr);
-static squid_acl aclStrToType(const char *s);
-static int decode_addr(const char *, struct in_addr *, struct in_addr *);
-static void aclCheck(aclCheck_t * checklist);
-static void aclCheckCallback(aclCheck_t * checklist, allow_t answer);
+static void aclParseUserMaxIP (void *data);
+static void aclDestroyUserMaxIP (void *data);
+static wordlist *aclDumpUserMaxIP (void *data);
+static int aclMatchUserMaxIP (void *, auth_user_request_t *, struct in_addr);
+static squid_acl aclStrToType (const char *s);
+static int decode_addr (const char *, struct in_addr *, struct in_addr *);
+static void aclCheck (aclCheck_t * checklist);
+static void aclCheckCallback (aclCheck_t * checklist, allow_t answer);
 #if USE_IDENT
 static IDCB aclLookupIdentDone;
 #endif
@@ -81,14 +80,14 @@ static IPH aclLookupDstIPDone;
 static IPH aclLookupDstIPforASNDone;
 static FQDNH aclLookupSrcFQDNDone;
 static FQDNH aclLookupDstFQDNDone;
-static wordlist *aclDumpIpList(void *);
-static wordlist *aclDumpDomainList(void *data);
-static wordlist *aclDumpTimeSpecList(acl_time_data *);
-static wordlist *aclDumpRegexList(relist * data);
-static wordlist *aclDumpIntlistList(intlist * data);
-static wordlist *aclDumpIntRangeList(intrange * data);
-static wordlist *aclDumpProtoList(intlist * data);
-static wordlist *aclDumpMethodList(intlist * data);
+static wordlist *aclDumpIpList (void *);
+static wordlist *aclDumpDomainList (void *data);
+static wordlist *aclDumpTimeSpecList (acl_time_data *);
+static wordlist *aclDumpRegexList (relist * data);
+static wordlist *aclDumpIntlistList (intlist * data);
+static wordlist *aclDumpIntRangeList (intrange * data);
+static wordlist *aclDumpProtoList (intlist * data);
+static wordlist *aclDumpMethodList (intlist * data);
 static SPLAYCMP aclIpNetworkCompare;
 static SPLAYCMP aclHostDomainCompare;
 static SPLAYCMP aclDomainCompare;
@@ -97,279 +96,291 @@ static SPLAYWALKEE aclDumpDomainListWalkee;
 static SPLAYFREE aclFreeIpData;
 
 #if USE_ARP_ACL
-static void aclParseArpList(void *curlist);
-static int decode_eth(const char *asc, char *eth);
-static int aclMatchArp(void *dataptr, struct in_addr c);
-static wordlist *aclDumpArpList(void *);
+static void aclParseArpList (void *curlist);
+static int decode_eth (const char *asc, char *eth);
+static int aclMatchArp (void *dataptr, struct in_addr c);
+static wordlist *aclDumpArpList (void *);
 static SPLAYCMP aclArpCompare;
 static SPLAYWALKEE aclDumpArpListWalkee;
 #endif
-static int aclCacheMatchAcl(dlink_list * cache, squid_acl acltype, void *data, char *MatchParam);
+static int aclCacheMatchAcl (dlink_list * cache, squid_acl acltype, void *data, char *MatchParam);
 
 static char *
-strtokFile(void)
-{
-    char *t, *fn;
-    LOCAL_ARRAY(char, buf, 256);
-
-  strtok_again:
-    if (!aclFromFile) {
-       t = (strtok(NULL, w_space));
-       if (t && (*t == '\"' || *t == '\'')) {
-           /* quote found, start reading from file */
-           fn = ++t;
-           while (*t && *t != '\"' && *t != '\'')
-               t++;
-           *t = '\0';
-           if ((aclFile = fopen(fn, "r")) == NULL) {
-               debug(28, 0) ("strtokFile: %s not found\n", fn);
-               return (NULL);
+strtokFile (void)
+{
+  char *t, *fn;
+  LOCAL_ARRAY (char, buf, 256);
+
+strtok_again:
+  if (!aclFromFile)
+    {
+      t = (strtok (NULL, w_space));
+      if (t && (*t == '\"' || *t == '\''))
+       {
+         /* quote found, start reading from file */
+         fn = ++t;
+         while (*t && *t != '\"' && *t != '\'')
+           t++;
+         *t = '\0';
+         if ((aclFile = fopen (fn, "r")) == NULL)
+           {
+             debug (28, 0) ("strtokFile: %s not found\n", fn);
+             return (NULL);
            }
 #if defined(_SQUID_CYGWIN_)
-           setmode(fileno(aclFile), O_TEXT);
+         setmode (fileno (aclFile), O_TEXT);
 #endif
-           aclFromFile = 1;
-       } else {
-           return t;
+         aclFromFile = 1;
+       }
+      else
+       {
+         return t;
        }
     }
-    /* aclFromFile */
-    if (fgets(buf, 256, aclFile) == NULL) {
-       /* stop reading from file */
-       fclose(aclFile);
-       aclFromFile = 0;
+  /* aclFromFile */
+  if (fgets (buf, 256, aclFile) == NULL)
+    {
+      /* stop reading from file */
+      fclose (aclFile);
+      aclFromFile = 0;
+      goto strtok_again;
+    }
+  else
+    {
+      t = buf;
+      /* skip leading and trailing white space */
+      t += strspn (buf, w_space);
+      t[strcspn (t, w_space)] = '\0';
+      /* skip comments */
+      if (*t == '#')
+       goto strtok_again;
+      /* skip blank lines */
+      if (!*t)
        goto strtok_again;
-    } else {
-       t = buf;
-       /* skip leading and trailing white space */
-       t += strspn(buf, w_space);
-       t[strcspn(t, w_space)] = '\0';
-       /* skip comments */
-       if (*t == '#')
-           goto strtok_again;
-       /* skip blank lines */
-       if (!*t)
-           goto strtok_again;
-       return t;
+      return t;
     }
 }
 
 static squid_acl
-aclStrToType(const char *s)
-{
-    if (!strcmp(s, "src"))
-       return ACL_SRC_IP;
-    if (!strcmp(s, "dst"))
-       return ACL_DST_IP;
-    if (!strcmp(s, "myip"))
-       return ACL_MY_IP;
-    if (!strcmp(s, "domain"))
-       return ACL_DST_DOMAIN;
-    if (!strcmp(s, "dstdomain"))
-       return ACL_DST_DOMAIN;
-    if (!strcmp(s, "srcdomain"))
-       return ACL_SRC_DOMAIN;
-    if (!strcmp(s, "dstdom_regex"))
-       return ACL_DST_DOM_REGEX;
-    if (!strcmp(s, "srcdom_regex"))
-       return ACL_SRC_DOM_REGEX;
-    if (!strcmp(s, "time"))
-       return ACL_TIME;
-    if (!strcmp(s, "pattern"))
-       return ACL_URLPATH_REGEX;
-    if (!strcmp(s, "urlpath_regex"))
-       return ACL_URLPATH_REGEX;
-    if (!strcmp(s, "url_regex"))
-       return ACL_URL_REGEX;
-    if (!strcmp(s, "port"))
-       return ACL_URL_PORT;
-    if (!strcmp(s, "myport"))
-       return ACL_MY_PORT;
-    if (!strcmp(s, "maxconn"))
-       return ACL_MAXCONN;
+aclStrToType (const char *s)
+{
+  if (!strcmp (s, "src"))
+    return ACL_SRC_IP;
+  if (!strcmp (s, "dst"))
+    return ACL_DST_IP;
+  if (!strcmp (s, "myip"))
+    return ACL_MY_IP;
+  if (!strcmp (s, "domain"))
+    return ACL_DST_DOMAIN;
+  if (!strcmp (s, "dstdomain"))
+    return ACL_DST_DOMAIN;
+  if (!strcmp (s, "srcdomain"))
+    return ACL_SRC_DOMAIN;
+  if (!strcmp (s, "dstdom_regex"))
+    return ACL_DST_DOM_REGEX;
+  if (!strcmp (s, "srcdom_regex"))
+    return ACL_SRC_DOM_REGEX;
+  if (!strcmp (s, "time"))
+    return ACL_TIME;
+  if (!strcmp (s, "pattern"))
+    return ACL_URLPATH_REGEX;
+  if (!strcmp (s, "urlpath_regex"))
+    return ACL_URLPATH_REGEX;
+  if (!strcmp (s, "url_regex"))
+    return ACL_URL_REGEX;
+  if (!strcmp (s, "port"))
+    return ACL_URL_PORT;
+  if (!strcmp (s, "myport"))
+    return ACL_MY_PORT;
+  if (!strcmp (s, "maxconn"))
+    return ACL_MAXCONN;
 #if USE_IDENT
-    if (!strcmp(s, "ident"))
-       return ACL_IDENT;
-    if (!strcmp(s, "ident_regex"))
-       return ACL_IDENT_REGEX;
+  if (!strcmp (s, "ident"))
+    return ACL_IDENT;
+  if (!strcmp (s, "ident_regex"))
+    return ACL_IDENT_REGEX;
 #endif
-    if (!strncmp(s, "proto", 5))
-       return ACL_PROTO;
-    if (!strcmp(s, "method"))
-       return ACL_METHOD;
-    if (!strcmp(s, "browser"))
-       return ACL_BROWSER;
-    if (!strcmp(s, "proxy_auth"))
-       return ACL_PROXY_AUTH;
-    if (!strcmp(s, "proxy_auth_regex"))
-       return ACL_PROXY_AUTH_REGEX;
-    if (!strcmp(s, "src_as"))
-       return ACL_SRC_ASN;
-    if (!strcmp(s, "dst_as"))
-       return ACL_DST_ASN;
+  if (!strncmp (s, "proto", 5))
+    return ACL_PROTO;
+  if (!strcmp (s, "method"))
+    return ACL_METHOD;
+  if (!strcmp (s, "browser"))
+    return ACL_BROWSER;
+  if (!strcmp (s, "proxy_auth"))
+    return ACL_PROXY_AUTH;
+  if (!strcmp (s, "proxy_auth_regex"))
+    return ACL_PROXY_AUTH_REGEX;
+  if (!strcmp (s, "src_as"))
+    return ACL_SRC_ASN;
+  if (!strcmp (s, "dst_as"))
+    return ACL_DST_ASN;
 #if SQUID_SNMP
-    if (!strcmp(s, "snmp_community"))
-       return ACL_SNMP_COMMUNITY;
+  if (!strcmp (s, "snmp_community"))
+    return ACL_SNMP_COMMUNITY;
 #endif
 #if SRC_RTT_NOT_YET_FINISHED
-    if (!strcmp(s, "src_rtt"))
-       return ACL_NETDB_SRC_RTT;
+  if (!strcmp (s, "src_rtt"))
+    return ACL_NETDB_SRC_RTT;
 #endif
 #if USE_ARP_ACL
-    if (!strcmp(s, "arp"))
-       return ACL_SRC_ARP;
+  if (!strcmp (s, "arp"))
+    return ACL_SRC_ARP;
 #endif
-    if (!strcmp(s, "req_mime_type"))
-       return ACL_REQ_MIME_TYPE;
-    if (!strcmp(s, "rep_mime_type"))
-       return ACL_REP_MIME_TYPE;
-    if (!strcmp(s, "max_user_ip"))
-       return ACL_MAX_USER_IP;
-    return ACL_NONE;
+  if (!strcmp (s, "req_mime_type"))
+    return ACL_REQ_MIME_TYPE;
+  if (!strcmp (s, "rep_mime_type"))
+    return ACL_REP_MIME_TYPE;
+  if (!strcmp (s, "max_user_ip"))
+    return ACL_MAX_USER_IP;
+  return ACL_NONE;
 }
 
 const char *
-aclTypeToStr(squid_acl type)
-{
-    if (type == ACL_SRC_IP)
-       return "src";
-    if (type == ACL_DST_IP)
-       return "dst";
-    if (type == ACL_MY_IP)
-       return "myip";
-    if (type == ACL_DST_DOMAIN)
-       return "dstdomain";
-    if (type == ACL_SRC_DOMAIN)
-       return "srcdomain";
-    if (type == ACL_DST_DOM_REGEX)
-       return "dstdom_regex";
-    if (type == ACL_SRC_DOM_REGEX)
-       return "srcdom_regex";
-    if (type == ACL_TIME)
-       return "time";
-    if (type == ACL_URLPATH_REGEX)
-       return "urlpath_regex";
-    if (type == ACL_URL_REGEX)
-       return "url_regex";
-    if (type == ACL_URL_PORT)
-       return "port";
-    if (type == ACL_MY_PORT)
-       return "myport";
-    if (type == ACL_MAXCONN)
-       return "maxconn";
+aclTypeToStr (squid_acl type)
+{
+  if (type == ACL_SRC_IP)
+    return "src";
+  if (type == ACL_DST_IP)
+    return "dst";
+  if (type == ACL_MY_IP)
+    return "myip";
+  if (type == ACL_DST_DOMAIN)
+    return "dstdomain";
+  if (type == ACL_SRC_DOMAIN)
+    return "srcdomain";
+  if (type == ACL_DST_DOM_REGEX)
+    return "dstdom_regex";
+  if (type == ACL_SRC_DOM_REGEX)
+    return "srcdom_regex";
+  if (type == ACL_TIME)
+    return "time";
+  if (type == ACL_URLPATH_REGEX)
+    return "urlpath_regex";
+  if (type == ACL_URL_REGEX)
+    return "url_regex";
+  if (type == ACL_URL_PORT)
+    return "port";
+  if (type == ACL_MY_PORT)
+    return "myport";
+  if (type == ACL_MAXCONN)
+    return "maxconn";
 #if USE_IDENT
-    if (type == ACL_IDENT)
-       return "ident";
-    if (type == ACL_IDENT_REGEX)
-       return "ident_regex";
+  if (type == ACL_IDENT)
+    return "ident";
+  if (type == ACL_IDENT_REGEX)
+    return "ident_regex";
 #endif
-    if (type == ACL_PROTO)
-       return "proto";
-    if (type == ACL_METHOD)
-       return "method";
-    if (type == ACL_BROWSER)
-       return "browser";
-    if (type == ACL_PROXY_AUTH)
-       return "proxy_auth";
-    if (type == ACL_PROXY_AUTH_REGEX)
-       return "proxy_auth_regex";
-    if (type == ACL_SRC_ASN)
-       return "src_as";
-    if (type == ACL_DST_ASN)
-       return "dst_as";
+  if (type == ACL_PROTO)
+    return "proto";
+  if (type == ACL_METHOD)
+    return "method";
+  if (type == ACL_BROWSER)
+    return "browser";
+  if (type == ACL_PROXY_AUTH)
+    return "proxy_auth";
+  if (type == ACL_PROXY_AUTH_REGEX)
+    return "proxy_auth_regex";
+  if (type == ACL_SRC_ASN)
+    return "src_as";
+  if (type == ACL_DST_ASN)
+    return "dst_as";
 #if SQUID_SNMP
-    if (type == ACL_SNMP_COMMUNITY)
-       return "snmp_community";
+  if (type == ACL_SNMP_COMMUNITY)
+    return "snmp_community";
 #endif
 #if SRC_RTT_NOT_YET_FINISHED
-    if (type == ACL_NETDB_SRC_RTT)
-       return "src_rtt";
+  if (type == ACL_NETDB_SRC_RTT)
+    return "src_rtt";
 #endif
 #if USE_ARP_ACL
-    if (type == ACL_SRC_ARP)
-       return "arp";
+  if (type == ACL_SRC_ARP)
+    return "arp";
 #endif
-    if (type == ACL_REQ_MIME_TYPE)
-       return "req_mime_type";
-    if (type == ACL_REP_MIME_TYPE)
-       return "rep_mime_type";
-    if (type == ACL_MAX_USER_IP)
-       return "max_user_ip";
-    return "ERROR";
+  if (type == ACL_REQ_MIME_TYPE)
+    return "req_mime_type";
+  if (type == ACL_REP_MIME_TYPE)
+    return "rep_mime_type";
+  if (type == ACL_MAX_USER_IP)
+    return "max_user_ip";
+  return "ERROR";
 }
 
 static acl *
-aclFindByName(const char *name)
+aclFindByName (const char *name)
 {
-    acl *a;
-    for (a = Config.aclList; a; a = a->next)
-       if (!strcasecmp(a->name, name))
-           return a;
-    return NULL;
+  acl *a;
+  for (a = Config.aclList; a; a = a->next)
+    if (!strcasecmp (a->name, name))
+      return a;
+  return NULL;
 }
 
 static void
-aclParseIntlist(void *curlist)
+aclParseIntlist (void *curlist)
 {
-    intlist **Tail;
-    intlist *q = NULL;
-    char *t = NULL;
-    for (Tail = curlist; *Tail; Tail = &((*Tail)->next));
-    while ((t = strtokFile())) {
-       q = memAllocate(MEM_INTLIST);
-       q->i = atoi(t);
-       *(Tail) = q;
-       Tail = &q->next;
+  intlist **Tail;
+  intlist *q = NULL;
+  char *t = NULL;
+  for (Tail = curlist; *Tail; Tail = &((*Tail)->next));
+  while ((t = strtokFile ()))
+    {
+      q = memAllocate (MEM_INTLIST);
+      q->i = atoi (t);
+      *(Tail) = q;
+      Tail = &q->next;
     }
 }
 
 static void
-aclParseIntRange(void *curlist)
-{
-    intrange **Tail;
-    intrange *q = NULL;
-    char *t = NULL;
-    for (Tail = curlist; *Tail; Tail = &((*Tail)->next));
-    while ((t = strtokFile())) {
-       q = xcalloc(1, sizeof(intrange));
-       q->i = atoi(t);
-       t = strchr(t, '-');
-       if (t && *(++t))
-           q->j = atoi(t);
-       else
-           q->j = q->i;
-       *(Tail) = q;
-       Tail = &q->next;
+aclParseIntRange (void *curlist)
+{
+  intrange **Tail;
+  intrange *q = NULL;
+  char *t = NULL;
+  for (Tail = curlist; *Tail; Tail = &((*Tail)->next));
+  while ((t = strtokFile ()))
+    {
+      q = xcalloc (1, sizeof (intrange));
+      q->i = atoi (t);
+      t = strchr (t, '-');
+      if (t && *(++t))
+       q->j = atoi (t);
+      else
+       q->j = q->i;
+      *(Tail) = q;
+      Tail = &q->next;
     }
 }
 
 static void
-aclParseProtoList(void *curlist)
+aclParseProtoList (void *curlist)
 {
-    intlist **Tail;
-    intlist *q = NULL;
-    char *t = NULL;
-    for (Tail = curlist; *Tail; Tail = &((*Tail)->next));
-    while ((t = strtokFile())) {
-       q = memAllocate(MEM_INTLIST);
-       q->i = (int) urlParseProtocol(t);
-       *(Tail) = q;
-       Tail = &q->next;
+  intlist **Tail;
+  intlist *q = NULL;
+  char *t = NULL;
+  for (Tail = curlist; *Tail; Tail = &((*Tail)->next));
+  while ((t = strtokFile ()))
+    {
+      q = memAllocate (MEM_INTLIST);
+      q->i = (int) urlParseProtocol (t);
+      *(Tail) = q;
+      Tail = &q->next;
     }
 }
 
 static void
-aclParseMethodList(void *curlist)
+aclParseMethodList (void *curlist)
 {
-    intlist **Tail;
-    intlist *q = NULL;
-    char *t = NULL;
-    for (Tail = curlist; *Tail; Tail = &((*Tail)->next));
-    while ((t = strtokFile())) {
-       q = memAllocate(MEM_INTLIST);
-       q->i = (int) urlParseMethod(t);
-       *(Tail) = q;
-       Tail = &q->next;
+  intlist **Tail;
+  intlist *q = NULL;
+  char *t = NULL;
+  for (Tail = curlist; *Tail; Tail = &((*Tail)->next));
+  while ((t = strtokFile ()))
+    {
+      q = memAllocate (MEM_INTLIST);
+      q->i = (int) urlParseMethod (t);
+      *(Tail) = q;
+      Tail = &q->next;
     }
 }
 
@@ -379,44 +390,48 @@ aclParseMethodList(void *curlist)
  * This function should NOT be called if 'asc' is a hostname!
  */
 static int
-decode_addr(const char *asc, struct in_addr *addr, struct in_addr *mask)
+decode_addr (const char *asc, struct in_addr *addr, struct in_addr *mask)
 {
-    u_num32 a;
-    int a1 = 0, a2 = 0, a3 = 0, a4 = 0;
+  u_num32 a;
+  int a1 = 0, a2 = 0, a3 = 0, a4 = 0;
 
-    switch (sscanf(asc, "%d.%d.%d.%d", &a1, &a2, &a3, &a4)) {
+  switch (sscanf (asc, "%d.%d.%d.%d", &a1, &a2, &a3, &a4))
+    {
     case 4:                    /* a dotted quad */
-       if (!safe_inet_addr(asc, addr)) {
-           debug(28, 0) ("decode_addr: unsafe IP address: '%s'\n", asc);
-           fatal("decode_addr: unsafe IP address");
+      if (!safe_inet_addr (asc, addr))
+       {
+         debug (28, 0) ("decode_addr: unsafe IP address: '%s'\n", asc);
+         fatal ("decode_addr: unsafe IP address");
        }
-       break;
+      break;
     case 1:                    /* a significant bits value for a mask */
-       if (a1 >= 0 && a1 < 33) {
-           addr->s_addr = a1 ? htonl(0xfffffffful << (32 - a1)) : 0;
-           break;
+      if (a1 >= 0 && a1 < 33)
+       {
+         addr->s_addr = a1 ? htonl (0xfffffffful << (32 - a1)) : 0;
+         break;
        }
     default:
-       debug(28, 0) ("decode_addr: Invalid IP address '%s'\n", asc);
-       return 0;               /* This is not valid address */
+      debug (28, 0) ("decode_addr: Invalid IP address '%s'\n", asc);
+      return 0;                        /* This is not valid address */
     }
 
-    if (mask != NULL) {                /* mask == NULL if called to decode a netmask */
+  if (mask != NULL)
+    {                          /* mask == NULL if called to decode a netmask */
 
-       /* Guess netmask */
-       a = (u_num32) ntohl(addr->s_addr);
-       if (!(a & 0xFFFFFFFFul))
-           mask->s_addr = htonl(0x00000000ul);
-       else if (!(a & 0x00FFFFFF))
-           mask->s_addr = htonl(0xFF000000ul);
-       else if (!(a & 0x0000FFFF))
-           mask->s_addr = htonl(0xFFFF0000ul);
-       else if (!(a & 0x000000FF))
-           mask->s_addr = htonl(0xFFFFFF00ul);
-       else
-           mask->s_addr = htonl(0xFFFFFFFFul);
+      /* Guess netmask */
+      a = (u_num32) ntohl (addr->s_addr);
+      if (!(a & 0xFFFFFFFFul))
+       mask->s_addr = htonl (0x00000000ul);
+      else if (!(a & 0x00FFFFFF))
+       mask->s_addr = htonl (0xFF000000ul);
+      else if (!(a & 0x0000FFFF))
+       mask->s_addr = htonl (0xFFFF0000ul);
+      else if (!(a & 0x000000FF))
+       mask->s_addr = htonl (0xFFFFFF00ul);
+      else
+       mask->s_addr = htonl (0xFFFFFFFFul);
     }
-    return 1;
+  return 1;
 }
 
 
@@ -426,92 +441,111 @@ decode_addr(const char *asc, struct in_addr *addr, struct in_addr *mask)
 #define SCAN_ACL4       "%[0123456789.]%c"
 
 static acl_ip_data *
-aclParseIpData(const char *t)
-{
-    LOCAL_ARRAY(char, addr1, 256);
-    LOCAL_ARRAY(char, addr2, 256);
-    LOCAL_ARRAY(char, mask, 256);
-    acl_ip_data *q = memAllocate(MEM_ACL_IP_DATA);
-    acl_ip_data *r;
-    acl_ip_data **Q;
-    struct hostent *hp;
-    char **x;
-    char c;
-    debug(28, 5) ("aclParseIpData: %s\n", t);
-    if (!strcasecmp(t, "all")) {
-       q->addr1.s_addr = 0;
-       q->addr2.s_addr = 0;
-       q->mask.s_addr = 0;
-       return q;
-    }
-    if (sscanf(t, SCAN_ACL1, addr1, addr2, mask) == 3) {
-       (void) 0;
-    } else if (sscanf(t, SCAN_ACL2, addr1, addr2, &c) == 2) {
-       mask[0] = '\0';
-    } else if (sscanf(t, SCAN_ACL3, addr1, mask) == 2) {
-       addr2[0] = '\0';
-    } else if (sscanf(t, SCAN_ACL4, addr1, &c) == 1) {
-       addr2[0] = '\0';
-       mask[0] = '\0';
-    } else if (sscanf(t, "%[^/]/%s", addr1, mask) == 2) {
-       addr2[0] = '\0';
-    } else if (sscanf(t, "%s", addr1) == 1) {
-       /*
-        * Note, must use plain gethostbyname() here because at startup
-        * ipcache hasn't been initialized
-        */
-       if ((hp = gethostbyname(addr1)) == NULL) {
-           debug(28, 0) ("aclParseIpData: Bad host/IP: '%s'\n", t);
-           safe_free(q);
-           return NULL;
-       }
-       Q = &q;
-       for (x = hp->h_addr_list; x != NULL && *x != NULL; x++) {
-           if ((r = *Q) == NULL)
-               r = *Q = memAllocate(MEM_ACL_IP_DATA);
-           xmemcpy(&r->addr1.s_addr, *x, sizeof(r->addr1.s_addr));
-           r->addr2.s_addr = 0;
-           r->mask.s_addr = no_addr.s_addr;    /* 255.255.255.255 */
-           Q = &r->next;
-           debug(28, 3) ("%s --> %s\n", addr1, inet_ntoa(r->addr1));
-       }
-       return q;
-    } else {
-       debug(28, 0) ("aclParseIpData: Bad host/IP: '%s'\n", t);
-       safe_free(q);
-       return NULL;
-    }
-    /* Decode addr1 */
-    if (!decode_addr(addr1, &q->addr1, &q->mask)) {
-       debug(28, 0) ("%s line %d: %s\n",
-           cfg_filename, config_lineno, config_input_line);
-       debug(28, 0) ("aclParseIpData: Ignoring invalid IP acl entry: unknown first address '%s'\n", addr1);
-       safe_free(q);
-       return NULL;
-    }
-    /* Decode addr2 */
-    if (*addr2 && !decode_addr(addr2, &q->addr2, &q->mask)) {
-       debug(28, 0) ("%s line %d: %s\n",
-           cfg_filename, config_lineno, config_input_line);
-       debug(28, 0) ("aclParseIpData: Ignoring invalid IP acl entry: unknown second address '%s'\n", addr2);
-       safe_free(q);
-       return NULL;
-    }
-    /* Decode mask */
-    if (*mask && !decode_addr(mask, &q->mask, NULL)) {
-       debug(28, 0) ("%s line %d: %s\n",
-           cfg_filename, config_lineno, config_input_line);
-       debug(28, 0) ("aclParseIpData: Ignoring invalid IP acl entry: unknown netmask '%s'\n", mask);
-       safe_free(q);
-       return NULL;
-    }
-    if ((q->addr1.s_addr & q->mask.s_addr) != q->addr1.s_addr ||
-       (q->addr2.s_addr & q->mask.s_addr) != q->addr2.s_addr)
-       debug(28, 0) ("aclParseIpData: WARNING: Netmask masks away part of the specified IP in '%s'\n", t);
-    q->addr1.s_addr &= q->mask.s_addr;
-    q->addr2.s_addr &= q->mask.s_addr;
-    /* 1.2.3.4/255.255.255.0  --> 1.2.3.0 */
-    return q;
+aclParseIpData (const char *t)
+{
+  LOCAL_ARRAY (char, addr1, 256);
+  LOCAL_ARRAY (char, addr2, 256);
+  LOCAL_ARRAY (char, mask, 256);
+  acl_ip_data *q = memAllocate (MEM_ACL_IP_DATA);
+  acl_ip_data *r;
+  acl_ip_data **Q;
+  struct hostent *hp;
+  char **x;
+  char c;
+  debug (28, 5) ("aclParseIpData: %s\n", t);
+  if (!strcasecmp (t, "all"))
+    {
+      q->addr1.s_addr = 0;
+      q->addr2.s_addr = 0;
+      q->mask.s_addr = 0;
+      return q;
+    }
+  if (sscanf (t, SCAN_ACL1, addr1, addr2, mask) == 3)
+    {
+      (void) 0;
+    }
+  else if (sscanf (t, SCAN_ACL2, addr1, addr2, &c) == 2)
+    {
+      mask[0] = '\0';
+    }
+  else if (sscanf (t, SCAN_ACL3, addr1, mask) == 2)
+    {
+      addr2[0] = '\0';
+    }
+  else if (sscanf (t, SCAN_ACL4, addr1, &c) == 1)
+    {
+      addr2[0] = '\0';
+      mask[0] = '\0';
+    }
+  else if (sscanf (t, "%[^/]/%s", addr1, mask) == 2)
+    {
+      addr2[0] = '\0';
+    }
+  else if (sscanf (t, "%s", addr1) == 1)
+    {
+      /*
+       * Note, must use plain gethostbyname() here because at startup
+       * ipcache hasn't been initialized
+       */
+      if ((hp = gethostbyname (addr1)) == NULL)
+       {
+         debug (28, 0) ("aclParseIpData: Bad host/IP: '%s'\n", t);
+         safe_free (q);
+         return NULL;
+       }
+      Q = &q;
+      for (x = hp->h_addr_list; x != NULL && *x != NULL; x++)
+       {
+         if ((r = *Q) == NULL)
+           r = *Q = memAllocate (MEM_ACL_IP_DATA);
+         xmemcpy (&r->addr1.s_addr, *x, sizeof (r->addr1.s_addr));
+         r->addr2.s_addr = 0;
+         r->mask.s_addr = no_addr.s_addr;      /* 255.255.255.255 */
+         Q = &r->next;
+         debug (28, 3) ("%s --> %s\n", addr1, inet_ntoa (r->addr1));
+       }
+      return q;
+    }
+  else
+    {
+      debug (28, 0) ("aclParseIpData: Bad host/IP: '%s'\n", t);
+      safe_free (q);
+      return NULL;
+    }
+  /* Decode addr1 */
+  if (!decode_addr (addr1, &q->addr1, &q->mask))
+    {
+      debug (28, 0) ("%s line %d: %s\n",
+                    cfg_filename, config_lineno, config_input_line);
+      debug (28, 0) ("aclParseIpData: Ignoring invalid IP acl entry: unknown first address '%s'\n", addr1);
+      safe_free (q);
+      return NULL;
+    }
+  /* Decode addr2 */
+  if (*addr2 && !decode_addr (addr2, &q->addr2, &q->mask))
+    {
+      debug (28, 0) ("%s line %d: %s\n",
+                    cfg_filename, config_lineno, config_input_line);
+      debug (28, 0) ("aclParseIpData: Ignoring invalid IP acl entry: unknown second address '%s'\n", addr2);
+      safe_free (q);
+      return NULL;
+    }
+  /* Decode mask */
+  if (*mask && !decode_addr (mask, &q->mask, NULL))
+    {
+      debug (28, 0) ("%s line %d: %s\n",
+                    cfg_filename, config_lineno, config_input_line);
+      debug (28, 0) ("aclParseIpData: Ignoring invalid IP acl entry: unknown netmask '%s'\n", mask);
+      safe_free (q);
+      return NULL;
+    }
+  if ((q->addr1.s_addr & q->mask.s_addr) != q->addr1.s_addr ||
+      (q->addr2.s_addr & q->mask.s_addr) != q->addr2.s_addr)
+    debug (28, 0) ("aclParseIpData: WARNING: Netmask masks away part of the specified IP in '%s'\n", t);
+  q->addr1.s_addr &= q->mask.s_addr;
+  q->addr2.s_addr &= q->mask.s_addr;
+  /* 1.2.3.4/255.255.255.0  --> 1.2.3.0 */
+  return q;
 }
 
 /******************/
@@ -519,182 +553,204 @@ aclParseIpData(const char *t)
 /******************/
 
 static void
-aclParseIpList(void *curlist)
-{
-    char *t = NULL;
-    splayNode **Top = curlist;
-    acl_ip_data *q = NULL;
-    while ((t = strtokFile())) {
-       q = aclParseIpData(t);
-       while (q != NULL) {
-           *Top = splay_insert(q, *Top, aclIpNetworkCompare);
-           q = q->next;
+aclParseIpList (void *curlist)
+{
+  char *t = NULL;
+  splayNode **Top = curlist;
+  acl_ip_data *q = NULL;
+  while ((t = strtokFile ()))
+    {
+      q = aclParseIpData (t);
+      while (q != NULL)
+       {
+         *Top = splay_insert (q, *Top, aclIpNetworkCompare);
+         q = q->next;
        }
     }
 }
 
 static void
-aclParseTimeSpec(void *curlist)
-{
-    acl_time_data *q = NULL;
-    acl_time_data **Tail;
-    int h1, m1, h2, m2;
-    char *t = NULL;
-    for (Tail = curlist; *Tail; Tail = &((*Tail)->next));
-    q = memAllocate(MEM_ACL_TIME_DATA);
-    while ((t = strtokFile())) {
-       if (*t < '0' || *t > '9') {
-           /* assume its day-of-week spec */
-           while (*t) {
-               switch (*t++) {
+aclParseTimeSpec (void *curlist)
+{
+  acl_time_data *q = NULL;
+  acl_time_data **Tail;
+  int h1, m1, h2, m2;
+  char *t = NULL;
+  for (Tail = curlist; *Tail; Tail = &((*Tail)->next));
+  q = memAllocate (MEM_ACL_TIME_DATA);
+  while ((t = strtokFile ()))
+    {
+      if (*t < '0' || *t > '9')
+       {
+         /* assume its day-of-week spec */
+         while (*t)
+           {
+             switch (*t++)
+               {
                case 'S':
-                   q->weekbits |= ACL_SUNDAY;
-                   break;
+                 q->weekbits |= ACL_SUNDAY;
+                 break;
                case 'M':
-                   q->weekbits |= ACL_MONDAY;
-                   break;
+                 q->weekbits |= ACL_MONDAY;
+                 break;
                case 'T':
-                   q->weekbits |= ACL_TUESDAY;
-                   break;
+                 q->weekbits |= ACL_TUESDAY;
+                 break;
                case 'W':
-                   q->weekbits |= ACL_WEDNESDAY;
-                   break;
+                 q->weekbits |= ACL_WEDNESDAY;
+                 break;
                case 'H':
-                   q->weekbits |= ACL_THURSDAY;
-                   break;
+                 q->weekbits |= ACL_THURSDAY;
+                 break;
                case 'F':
-                   q->weekbits |= ACL_FRIDAY;
-                   break;
+                 q->weekbits |= ACL_FRIDAY;
+                 break;
                case 'A':
-                   q->weekbits |= ACL_SATURDAY;
-                   break;
+                 q->weekbits |= ACL_SATURDAY;
+                 break;
                case 'D':
-                   q->weekbits |= ACL_WEEKDAYS;
-                   break;
+                 q->weekbits |= ACL_WEEKDAYS;
+                 break;
                case '-':
-                   /* ignore placeholder */
-                   break;
+                 /* ignore placeholder */
+                 break;
                default:
-                   debug(28, 0) ("%s line %d: %s\n",
-                       cfg_filename, config_lineno, config_input_line);
-                   debug(28, 0) ("aclParseTimeSpec: Bad Day '%c'\n", *t);
-                   break;
+                 debug (28, 0) ("%s line %d: %s\n",
+                           cfg_filename, config_lineno, config_input_line);
+                 debug (28, 0) ("aclParseTimeSpec: Bad Day '%c'\n", *t);
+                 break;
                }
            }
-       } else {
-           /* assume its time-of-day spec */
-           if (sscanf(t, "%d:%d-%d:%d", &h1, &m1, &h2, &m2) < 4) {
-               debug(28, 0) ("%s line %d: %s\n",
-                   cfg_filename, config_lineno, config_input_line);
-               debug(28, 0) ("aclParseTimeSpec: IGNORING Bad time range\n");
-               memFree(q, MEM_ACL_TIME_DATA);
-               return;
+       }
+      else
+       {
+         /* assume its time-of-day spec */
+         if (sscanf (t, "%d:%d-%d:%d", &h1, &m1, &h2, &m2) < 4)
+           {
+             debug (28, 0) ("%s line %d: %s\n",
+                            cfg_filename, config_lineno, config_input_line);
+             debug (28, 0) ("aclParseTimeSpec: IGNORING Bad time range\n");
+             memFree (q, MEM_ACL_TIME_DATA);
+             return;
            }
-           q->start = h1 * 60 + m1;
-           q->stop = h2 * 60 + m2;
-           if (q->start > q->stop) {
-               debug(28, 0) ("%s line %d: %s\n",
-                   cfg_filename, config_lineno, config_input_line);
-               debug(28, 0) ("aclParseTimeSpec: IGNORING Reversed time range\n");
-               memFree(q, MEM_ACL_TIME_DATA);
-               return;
+         q->start = h1 * 60 + m1;
+         q->stop = h2 * 60 + m2;
+         if (q->start > q->stop)
+           {
+             debug (28, 0) ("%s line %d: %s\n",
+                            cfg_filename, config_lineno, config_input_line);
+             debug (28, 0) ("aclParseTimeSpec: IGNORING Reversed time range\n");
+             memFree (q, MEM_ACL_TIME_DATA);
+             return;
            }
        }
     }
-    if (q->start == 0 && q->stop == 0)
-       q->stop = 23 * 60 + 59;
-    if (q->weekbits == 0)
-       q->weekbits = ACL_ALLWEEK;
-    *(Tail) = q;
-    Tail = &q->next;
+  if (q->start == 0 && q->stop == 0)
+    q->stop = 23 * 60 + 59;
+  if (q->weekbits == 0)
+    q->weekbits = ACL_ALLWEEK;
+  *(Tail) = q;
+  Tail = &q->next;
 }
 
 void
-aclParseRegexList(void *curlist)
-{
-    relist **Tail;
-    relist *q = NULL;
-    char *t = NULL;
-    regex_t comp;
-    int errcode;
-    int flags = REG_EXTENDED | REG_NOSUB;
-    for (Tail = curlist; *Tail; Tail = &((*Tail)->next));
-    while ((t = strtokFile())) {
-       if (strcmp(t, "-i") == 0) {
-           flags |= REG_ICASE;
-           continue;
+aclParseRegexList (void *curlist)
+{
+  relist **Tail;
+  relist *q = NULL;
+  char *t = NULL;
+  regex_t comp;
+  int errcode;
+  int flags = REG_EXTENDED | REG_NOSUB;
+  for (Tail = curlist; *Tail; Tail = &((*Tail)->next));
+  while ((t = strtokFile ()))
+    {
+      if (strcmp (t, "-i") == 0)
+       {
+         flags |= REG_ICASE;
+         continue;
        }
-       if (strcmp(t, "+i") == 0) {
-           flags &= ~REG_ICASE;
-           continue;
+      if (strcmp (t, "+i") == 0)
+       {
+         flags &= ~REG_ICASE;
+         continue;
        }
-       if ((errcode = regcomp(&comp, t, flags)) != 0) {
-           char errbuf[256];
-           regerror(errcode, &comp, errbuf, sizeof errbuf);
-           debug(28, 0) ("%s line %d: %s\n",
-               cfg_filename, config_lineno, config_input_line);
-           debug(28, 0) ("aclParseRegexList: Invalid regular expression '%s': %s\n",
-               t, errbuf);
-           continue;
+      if ((errcode = regcomp (&comp, t, flags)) != 0)
+       {
+         char errbuf[256];
+         regerror (errcode, &comp, errbuf, sizeof errbuf);
+         debug (28, 0) ("%s line %d: %s\n",
+                        cfg_filename, config_lineno, config_input_line);
+         debug (28, 0) ("aclParseRegexList: Invalid regular expression '%s': %s\n",
+                        t, errbuf);
+         continue;
        }
-       q = memAllocate(MEM_RELIST);
-       q->pattern = xstrdup(t);
-       q->regex = comp;
-       *(Tail) = q;
-       Tail = &q->next;
+      q = memAllocate (MEM_RELIST);
+      q->pattern = xstrdup (t);
+      q->regex = comp;
+      *(Tail) = q;
+      Tail = &q->next;
     }
 }
 
 #if SQUID_SNMP
 static void
-aclParseWordList(void *curlist)
+aclParseWordList (void *curlist)
 {
-    char *t = NULL;
-    while ((t = strtokFile()))
-       wordlistAdd(curlist, t);
+  char *t = NULL;
+  while ((t = strtokFile ()))
+    wordlistAdd (curlist, t);
 }
 #endif
 
 static void
-aclParseUserList(void **current)
-{
-    char *t = NULL;
-    acl_user_data *data;
-    splayNode *Top = NULL;
-
-    debug(28, 2) ("aclParseUserList: parsing user list\n");
-    if (*current == NULL) {
-       debug(28, 3) ("aclParseUserList: current is null. Creating\n");
-       *current = memAllocate(MEM_ACL_USER_DATA);
-    }
-    data = *current;
-    Top = data->names;
-    if ((t = strtokFile())) {
-       debug(28, 5) ("aclParseUserList: First token is %s\n", t);
-       if (strcmp("-i", t) == 0) {
-           debug(28, 5) ("aclParseUserList: Going case-insensitive\n");
-           data->flags.case_insensitive = 1;
-       } else if (strcmp("REQUIRED", t) == 0) {
-           debug(28, 5) ("aclParseUserList: REQUIRED-type enabled\n");
-           data->flags.required = 1;
-       } else {
-           if (data->flags.case_insensitive)
-               Tolower(t);
-           Top = splay_insert(xstrdup(t), Top, (SPLAYCMP *) strcmp);
+aclParseUserList (void **current)
+{
+  char *t = NULL;
+  acl_user_data *data;
+  splayNode *Top = NULL;
+
+  debug (28, 2) ("aclParseUserList: parsing user list\n");
+  if (*current == NULL)
+    {
+      debug (28, 3) ("aclParseUserList: current is null. Creating\n");
+      *current = memAllocate (MEM_ACL_USER_DATA);
+    }
+  data = *current;
+  Top = data->names;
+  if ((t = strtokFile ()))
+    {
+      debug (28, 5) ("aclParseUserList: First token is %s\n", t);
+      if (strcmp ("-i", t) == 0)
+       {
+         debug (28, 5) ("aclParseUserList: Going case-insensitive\n");
+         data->flags.case_insensitive = 1;
+       }
+      else if (strcmp ("REQUIRED", t) == 0)
+       {
+         debug (28, 5) ("aclParseUserList: REQUIRED-type enabled\n");
+         data->flags.required = 1;
+       }
+      else
+       {
+         if (data->flags.case_insensitive)
+           Tolower (t);
+         Top = splay_insert (xstrdup (t), Top, (SPLAYCMP *) strcmp);
        }
     }
-    debug(28, 3) ("aclParseUserList: Case-insensitive-switch is %d\n",
-       data->flags.case_insensitive);
-    /* we might inherit from a previous declaration */
+  debug (28, 3) ("aclParseUserList: Case-insensitive-switch is %d\n",
+                data->flags.case_insensitive);
+  /* we might inherit from a previous declaration */
 
-    debug(28, 4) ("aclParseUserList: parsing user list\n");
-    while ((t = strtokFile())) {
-       debug(28, 6) ("aclParseUserList: Got token: %s\n", t);
-       if (data->flags.case_insensitive)
-           Tolower(t);
-       Top = splay_insert(xstrdup(t), Top, (SPLAYCMP *) strcmp);
+  debug (28, 4) ("aclParseUserList: parsing user list\n");
+  while ((t = strtokFile ()))
+    {
+      debug (28, 6) ("aclParseUserList: Got token: %s\n", t);
+      if (data->flags.case_insensitive)
+       Tolower (t);
+      Top = splay_insert (xstrdup (t), Top, (SPLAYCMP *) strcmp);
     }
-    data->names = Top;
+  data->names = Top;
 }
 
 
@@ -703,80 +759,89 @@ aclParseUserList(void **current)
 /**********************/
 
 static void
-aclParseDomainList(void *curlist)
+aclParseDomainList (void *curlist)
 {
-    char *t = NULL;
-    splayNode **Top = curlist;
-    while ((t = strtokFile())) {
-       Tolower(t);
-       *Top = splay_insert(xstrdup(t), *Top, aclDomainCompare);
+  char *t = NULL;
+  splayNode **Top = curlist;
+  while ((t = strtokFile ()))
+    {
+      Tolower (t);
+      *Top = splay_insert (xstrdup (t), *Top, aclDomainCompare);
     }
 }
 
 void
-aclParseAclLine(acl ** head)
-{
-    /* we're already using strtok() to grok the line */
-    char *t = NULL;
-    acl *A = NULL;
-    LOCAL_ARRAY(char, aclname, ACL_NAME_SZ);
-    squid_acl acltype;
-    int new_acl = 0;
-
-    /* snarf the ACL name */
-    if ((t = strtok(NULL, w_space)) == NULL) {
-       debug(28, 0) ("%s line %d: %s\n",
-           cfg_filename, config_lineno, config_input_line);
-       debug(28, 0) ("aclParseAclLine: missing ACL name.\n");
-       return;
-    }
-    xstrncpy(aclname, t, ACL_NAME_SZ);
-    /* snarf the ACL type */
-    if ((t = strtok(NULL, w_space)) == NULL) {
-       debug(28, 0) ("%s line %d: %s\n",
-           cfg_filename, config_lineno, config_input_line);
-       debug(28, 0) ("aclParseAclLine: missing ACL type.\n");
-       return;
-    }
-    if ((acltype = aclStrToType(t)) == ACL_NONE) {
-       debug(28, 0) ("%s line %d: %s\n",
-           cfg_filename, config_lineno, config_input_line);
-       debug(28, 0) ("aclParseAclLine: Invalid ACL type '%s'\n", t);
-       return;
-    }
-    if ((A = aclFindByName(aclname)) == NULL) {
-       debug(28, 3) ("aclParseAclLine: Creating ACL '%s'\n", aclname);
-       A = memAllocate(MEM_ACL);
-       xstrncpy(A->name, aclname, ACL_NAME_SZ);
-       A->type = acltype;
-       A->cfgline = xstrdup(config_input_line);
-       new_acl = 1;
-    } else {
-       if (acltype != A->type) {
-           debug(28, 0) ("aclParseAclLine: ACL '%s' already exists with different type, skipping.\n", A->name);
-           return;
-       }
-       debug(28, 3) ("aclParseAclLine: Appending to '%s'\n", aclname);
-       new_acl = 0;
-    }
-    /*
-     * Here we set AclMatchedName in case we need to use it in a
-     * warning message in aclDomainCompare().
-     */
-    AclMatchedName = aclname;  /* ugly */
-    switch (A->type) {
+aclParseAclLine (acl ** head)
+{
+  /* we're already using strtok() to grok the line */
+  char *t = NULL;
+  acl *A = NULL;
+  LOCAL_ARRAY (char, aclname, ACL_NAME_SZ);
+  squid_acl acltype;
+  int new_acl = 0;
+
+  /* snarf the ACL name */
+  if ((t = strtok (NULL, w_space)) == NULL)
+    {
+      debug (28, 0) ("%s line %d: %s\n",
+                    cfg_filename, config_lineno, config_input_line);
+      debug (28, 0) ("aclParseAclLine: missing ACL name.\n");
+      return;
+    }
+  xstrncpy (aclname, t, ACL_NAME_SZ);
+  /* snarf the ACL type */
+  if ((t = strtok (NULL, w_space)) == NULL)
+    {
+      debug (28, 0) ("%s line %d: %s\n",
+                    cfg_filename, config_lineno, config_input_line);
+      debug (28, 0) ("aclParseAclLine: missing ACL type.\n");
+      return;
+    }
+  if ((acltype = aclStrToType (t)) == ACL_NONE)
+    {
+      debug (28, 0) ("%s line %d: %s\n",
+                    cfg_filename, config_lineno, config_input_line);
+      debug (28, 0) ("aclParseAclLine: Invalid ACL type '%s'\n", t);
+      return;
+    }
+  if ((A = aclFindByName (aclname)) == NULL)
+    {
+      debug (28, 3) ("aclParseAclLine: Creating ACL '%s'\n", aclname);
+      A = memAllocate (MEM_ACL);
+      xstrncpy (A->name, aclname, ACL_NAME_SZ);
+      A->type = acltype;
+      A->cfgline = xstrdup (config_input_line);
+      new_acl = 1;
+    }
+  else
+    {
+      if (acltype != A->type)
+       {
+         debug (28, 0) ("aclParseAclLine: ACL '%s' already exists with different type, skipping.\n", A->name);
+         return;
+       }
+      debug (28, 3) ("aclParseAclLine: Appending to '%s'\n", aclname);
+      new_acl = 0;
+    }
+  /*
+   * Here we set AclMatchedName in case we need to use it in a
+   * warning message in aclDomainCompare().
+   */
+  AclMatchedName = aclname;    /* ugly */
+  switch (A->type)
+    {
     case ACL_SRC_IP:
     case ACL_DST_IP:
     case ACL_MY_IP:
-       aclParseIpList(&A->data);
-       break;
+      aclParseIpList (&A->data);
+      break;
     case ACL_SRC_DOMAIN:
     case ACL_DST_DOMAIN:
-       aclParseDomainList(&A->data);
-       break;
+      aclParseDomainList (&A->data);
+      break;
     case ACL_TIME:
-       aclParseTimeSpec(&A->data);
-       break;
+      aclParseTimeSpec (&A->data);
+      break;
     case ACL_URL_REGEX:
     case ACL_URLPATH_REGEX:
     case ACL_BROWSER:
@@ -784,128 +849,141 @@ aclParseAclLine(acl ** head)
     case ACL_DST_DOM_REGEX:
     case ACL_REQ_MIME_TYPE:
     case ACL_REP_MIME_TYPE:
-       aclParseRegexList(&A->data);
-       break;
+      aclParseRegexList (&A->data);
+      break;
     case ACL_SRC_ASN:
     case ACL_MAXCONN:
     case ACL_DST_ASN:
-       aclParseIntlist(&A->data);
-       break;
+      aclParseIntlist (&A->data);
+      break;
     case ACL_MAX_USER_IP:
-       aclParseUserMaxIP(&A->data);
-       break;
+      aclParseUserMaxIP (&A->data);
+      break;
 #if SRC_RTT_NOT_YET_FINISHED
     case ACL_NETDB_SRC_RTT:
-       aclParseIntlist(&A->data);
-       break;
+      aclParseIntlist (&A->data);
+      break;
 #endif
     case ACL_URL_PORT:
     case ACL_MY_PORT:
-       aclParseIntRange(&A->data);
-       break;
+      aclParseIntRange (&A->data);
+      break;
 #if USE_IDENT
     case ACL_IDENT:
-       aclParseUserList(&A->data);
-       break;
+      aclParseUserList (&A->data);
+      break;
     case ACL_IDENT_REGEX:
-       aclParseRegexList(&A->data);
-       break;
+      aclParseRegexList (&A->data);
+      break;
 #endif
     case ACL_PROTO:
-       aclParseProtoList(&A->data);
-       break;
+      aclParseProtoList (&A->data);
+      break;
     case ACL_METHOD:
-       aclParseMethodList(&A->data);
-       break;
+      aclParseMethodList (&A->data);
+      break;
     case ACL_PROXY_AUTH:
-       if (authenticateSchemeCount() == 0) {
-           debug(28, 0) ("aclParseAclLine: IGNORING: Proxy Auth ACL '%s' \
+      if (authenticateSchemeCount () == 0)
+       {
+         debug (28, 0) ("aclParseAclLine: IGNORING: Proxy Auth ACL '%s' \
 because no authentication schemes were compiled.\n", A->cfgline);
-       } else if (authenticateActiveSchemeCount() == 0) {
-           debug(28, 0) ("aclParseAclLine: IGNORING: Proxy Auth ACL '%s' \
+       }
+      else if (authenticateActiveSchemeCount () == 0)
+       {
+         debug (28, 0) ("aclParseAclLine: IGNORING: Proxy Auth ACL '%s' \
 because no authentication schemes are fully configured.\n", A->cfgline);
-       } else {
-           aclParseUserList(&A->data);
        }
-       break;
+      else
+       {
+         aclParseUserList (&A->data);
+       }
+      break;
     case ACL_PROXY_AUTH_REGEX:
-       if (authenticateSchemeCount() == 0) {
-           debug(28, 0) ("aclParseAclLine: IGNORING: Proxy Auth ACL '%s' \
+      if (authenticateSchemeCount () == 0)
+       {
+         debug (28, 0) ("aclParseAclLine: IGNORING: Proxy Auth ACL '%s' \
 because no authentication schemes were compiled.\n", A->cfgline);
-       } else if (authenticateActiveSchemeCount() == 0) {
-           debug(28, 0) ("aclParseAclLine: IGNORING: Proxy Auth ACL '%s' \
+       }
+      else if (authenticateActiveSchemeCount () == 0)
+       {
+         debug (28, 0) ("aclParseAclLine: IGNORING: Proxy Auth ACL '%s' \
 because no authentication schemes are fully configured.\n", A->cfgline);
-       } else {
-           aclParseRegexList(&A->data);
        }
-       break;
+      else
+       {
+         aclParseRegexList (&A->data);
+       }
+      break;
 #if SQUID_SNMP
     case ACL_SNMP_COMMUNITY:
-       aclParseWordList(&A->data);
-       break;
+      aclParseWordList (&A->data);
+      break;
 #endif
 #if USE_ARP_ACL
     case ACL_SRC_ARP:
-       aclParseArpList(&A->data);
-       break;
+      aclParseArpList (&A->data);
+      break;
 #endif
     case ACL_NONE:
     case ACL_ENUM_MAX:
-       fatal("Bad ACL type");
-       break;
-    }
-    /*
-     * Clear AclMatchedName from our temporary hack
-     */
-    AclMatchedName = NULL;     /* ugly */
-    if (!new_acl)
-       return;
-    if (A->data == NULL) {
-       debug(28, 0) ("aclParseAclLine: IGNORING invalid ACL: %s\n",
-           A->cfgline);
-       memFree(A, MEM_ACL);
-       return;
-    }
-    /* append */
-    while (*head)
-       head = &(*head)->next;
-    *head = A;
+      fatal ("Bad ACL type");
+      break;
+    }
+  /*
+   * Clear AclMatchedName from our temporary hack
+   */
+  AclMatchedName = NULL;       /* ugly */
+  if (!new_acl)
+    return;
+  if (A->data == NULL)
+    {
+      debug (28, 0) ("aclParseAclLine: IGNORING invalid ACL: %s\n",
+                    A->cfgline);
+      memFree (A, MEM_ACL);
+      return;
+    }
+  /* append */
+  while (*head)
+    head = &(*head)->next;
+  *head = A;
 }
 
 /* does name lookup, returns page_id */
 err_type
-aclGetDenyInfoPage(acl_deny_info_list ** head, const char *name)
+aclGetDenyInfoPage (acl_deny_info_list ** head, const char *name)
 {
-    acl_deny_info_list *A = NULL;
-    acl_name_list *L = NULL;
+  acl_deny_info_list *A = NULL;
+  acl_name_list *L = NULL;
 
-    A = *head;
-    if (NULL == *head)         /* empty list */
-       return ERR_NONE;
-    while (A) {
-       L = A->acl_list;
-       if (NULL == L)          /* empty list should never happen, but in case */
-           continue;
-       while (L) {
-           if (!strcmp(name, L->name))
-               return A->err_page_id;
-           L = L->next;
+  A = *head;
+  if (NULL == *head)           /* empty list */
+    return ERR_NONE;
+  while (A)
+    {
+      L = A->acl_list;
+      if (NULL == L)           /* empty list should never happen, but in case */
+       continue;
+      while (L)
+       {
+         if (!strcmp (name, L->name))
+           return A->err_page_id;
+         L = L->next;
        }
-       A = A->next;
+      A = A->next;
     }
-    return ERR_NONE;
+  return ERR_NONE;
 }
 
 /* does name lookup, returns if it is a proxy_auth acl */
 int
-aclIsProxyAuth(const char *name)
+aclIsProxyAuth (const char *name)
 {
-    acl *a;
-    if (NULL == name)
-       return 0;
-    if ((a = aclFindByName(name)))
-       return a->type == ACL_PROXY_AUTH;
+  acl *a;
+  if (NULL == name)
     return 0;
+  if ((a = aclFindByName (name)))
+    return a->type == ACL_PROXY_AUTH;
+  return 0;
 }
 
 
@@ -919,118 +997,127 @@ aclIsProxyAuth(const char *name)
  */
 
 void
-aclParseDenyInfoLine(acl_deny_info_list ** head)
-{
-    char *t = NULL;
-    acl_deny_info_list *A = NULL;
-    acl_deny_info_list *B = NULL;
-    acl_deny_info_list **T = NULL;
-    acl_name_list *L = NULL;
-    acl_name_list **Tail = NULL;
-
-    /* first expect a page name */
-    if ((t = strtok(NULL, w_space)) == NULL) {
-       debug(28, 0) ("%s line %d: %s\n",
-           cfg_filename, config_lineno, config_input_line);
-       debug(28, 0) ("aclParseDenyInfoLine: missing 'error page' parameter.\n");
-       return;
-    }
-    A = memAllocate(MEM_ACL_DENY_INFO_LIST);
-    A->err_page_id = errorReservePageId(t);
-    A->err_page_name = xstrdup(t);
-    A->next = (acl_deny_info_list *) NULL;
-    /* next expect a list of ACL names */
-    Tail = &A->acl_list;
-    while ((t = strtok(NULL, w_space))) {
-       L = memAllocate(MEM_ACL_NAME_LIST);
-       xstrncpy(L->name, t, ACL_NAME_SZ);
-       *Tail = L;
-       Tail = &L->next;
-    }
-    if (A->acl_list == NULL) {
-       debug(28, 0) ("%s line %d: %s\n",
-           cfg_filename, config_lineno, config_input_line);
-       debug(28, 0) ("aclParseDenyInfoLine: deny_info line contains no ACL's, skipping\n");
-       memFree(A, MEM_ACL_DENY_INFO_LIST);
-       return;
-    }
-    for (B = *head, T = head; B; T = &B->next, B = B->next);   /* find the tail */
-    *T = A;
+aclParseDenyInfoLine (acl_deny_info_list ** head)
+{
+  char *t = NULL;
+  acl_deny_info_list *A = NULL;
+  acl_deny_info_list *B = NULL;
+  acl_deny_info_list **T = NULL;
+  acl_name_list *L = NULL;
+  acl_name_list **Tail = NULL;
+
+  /* first expect a page name */
+  if ((t = strtok (NULL, w_space)) == NULL)
+    {
+      debug (28, 0) ("%s line %d: %s\n",
+                    cfg_filename, config_lineno, config_input_line);
+      debug (28, 0) ("aclParseDenyInfoLine: missing 'error page' parameter.\n");
+      return;
+    }
+  A = memAllocate (MEM_ACL_DENY_INFO_LIST);
+  A->err_page_id = errorReservePageId (t);
+  A->err_page_name = xstrdup (t);
+  A->next = (acl_deny_info_list *) NULL;
+  /* next expect a list of ACL names */
+  Tail = &A->acl_list;
+  while ((t = strtok (NULL, w_space)))
+    {
+      L = memAllocate (MEM_ACL_NAME_LIST);
+      xstrncpy (L->name, t, ACL_NAME_SZ);
+      *Tail = L;
+      Tail = &L->next;
+    }
+  if (A->acl_list == NULL)
+    {
+      debug (28, 0) ("%s line %d: %s\n",
+                    cfg_filename, config_lineno, config_input_line);
+      debug (28, 0) ("aclParseDenyInfoLine: deny_info line contains no ACL's, skipping\n");
+      memFree (A, MEM_ACL_DENY_INFO_LIST);
+      return;
+    }
+  for (B = *head, T = head; B; T = &B->next, B = B->next);     /* find the tail */
+  *T = A;
 }
 
 void
-aclParseAccessLine(acl_access ** head)
-{
-    char *t = NULL;
-    acl_access *A = NULL;
-    acl_access *B = NULL;
-    acl_access **T = NULL;
-
-    /* first expect either 'allow' or 'deny' */
-    if ((t = strtok(NULL, w_space)) == NULL) {
-       debug(28, 0) ("%s line %d: %s\n",
-           cfg_filename, config_lineno, config_input_line);
-       debug(28, 0) ("aclParseAccessLine: missing 'allow' or 'deny'.\n");
-       return;
-    }
-    A = cbdataAlloc(acl_access);
-
-    if (!strcmp(t, "allow"))
-       A->allow = 1;
-    else if (!strcmp(t, "deny"))
-       A->allow = 0;
-    else {
-       debug(28, 0) ("%s line %d: %s\n",
-           cfg_filename, config_lineno, config_input_line);
-       debug(28, 0) ("aclParseAccessLine: expecting 'allow' or 'deny', got '%s'.\n", t);
-       cbdataFree(A);
-       return;
-    }
-    aclParseAclList(&A->acl_list);
-    if (A->acl_list == NULL) {
-       debug(28, 0) ("%s line %d: %s\n",
-           cfg_filename, config_lineno, config_input_line);
-       debug(28, 0) ("aclParseAccessLine: Access line contains no ACL's, skipping\n");
-       cbdataFree(A);
-       return;
-    }
-    A->cfgline = xstrdup(config_input_line);
-    /* Append to the end of this list */
-    for (B = *head, T = head; B; T = &B->next, B = B->next);
-    *T = A;
-    /* We lock _acl_access structures in aclCheck() */
+aclParseAccessLine (acl_access ** head)
+{
+  char *t = NULL;
+  acl_access *A = NULL;
+  acl_access *B = NULL;
+  acl_access **T = NULL;
+
+  /* first expect either 'allow' or 'deny' */
+  if ((t = strtok (NULL, w_space)) == NULL)
+    {
+      debug (28, 0) ("%s line %d: %s\n",
+                    cfg_filename, config_lineno, config_input_line);
+      debug (28, 0) ("aclParseAccessLine: missing 'allow' or 'deny'.\n");
+      return;
+    }
+  A = cbdataAlloc (acl_access);
+
+  if (!strcmp (t, "allow"))
+    A->allow = 1;
+  else if (!strcmp (t, "deny"))
+    A->allow = 0;
+  else
+    {
+      debug (28, 0) ("%s line %d: %s\n",
+                    cfg_filename, config_lineno, config_input_line);
+      debug (28, 0) ("aclParseAccessLine: expecting 'allow' or 'deny', got '%s'.\n", t);
+      cbdataFree (A);
+      return;
+    }
+  aclParseAclList (&A->acl_list);
+  if (A->acl_list == NULL)
+    {
+      debug (28, 0) ("%s line %d: %s\n",
+                    cfg_filename, config_lineno, config_input_line);
+      debug (28, 0) ("aclParseAccessLine: Access line contains no ACL's, skipping\n");
+      cbdataFree (A);
+      return;
+    }
+  A->cfgline = xstrdup (config_input_line);
+  /* Append to the end of this list */
+  for (B = *head, T = head; B; T = &B->next, B = B->next);
+  *T = A;
+  /* We lock _acl_access structures in aclCheck() */
 }
 
 void
-aclParseAclList(acl_list ** head)
-{
-    acl_list *L = NULL;
-    acl_list **Tail = head;    /* sane name in the use below */
-    acl *a = NULL;
-    char *t;
-
-    /* next expect a list of ACL names, possibly preceeded
-     * by '!' for negation */
-    while ((t = strtok(NULL, w_space))) {
-       L = memAllocate(MEM_ACL_LIST);
-       L->op = 1;              /* defaults to non-negated */
-       if (*t == '!') {
-           /* negated ACL */
-           L->op = 0;
-           t++;
+aclParseAclList (acl_list ** head)
+{
+  acl_list *L = NULL;
+  acl_list **Tail = head;      /* sane name in the use below */
+  acl *a = NULL;
+  char *t;
+
+  /* next expect a list of ACL names, possibly preceeded
+   * by '!' for negation */
+  while ((t = strtok (NULL, w_space)))
+    {
+      L = memAllocate (MEM_ACL_LIST);
+      L->op = 1;               /* defaults to non-negated */
+      if (*t == '!')
+       {
+         /* negated ACL */
+         L->op = 0;
+         t++;
        }
-       debug(28, 3) ("aclParseAccessLine: looking for ACL name '%s'\n", t);
-       a = aclFindByName(t);
-       if (a == NULL) {
-           debug(28, 0) ("%s line %d: %s\n",
-               cfg_filename, config_lineno, config_input_line);
-           debug(28, 0) ("aclParseAccessLine: ACL name '%s' not found.\n", t);
-           memFree(L, MEM_ACL_LIST);
-           continue;
+      debug (28, 3) ("aclParseAccessLine: looking for ACL name '%s'\n", t);
+      a = aclFindByName (t);
+      if (a == NULL)
+       {
+         debug (28, 0) ("%s line %d: %s\n",
+                        cfg_filename, config_lineno, config_input_line);
+         debug (28, 0) ("aclParseAccessLine: ACL name '%s' not found.\n", t);
+         memFree (L, MEM_ACL_LIST);
+         continue;
        }
-       L->acl = a;
-       *Tail = L;
-       Tail = &L->next;
+      L->acl = a;
+      *Tail = L;
+      Tail = &L->next;
     }
 }
 
@@ -1039,13 +1126,13 @@ aclParseAclList(acl_list ** head)
 /**************/
 
 static int
-aclMatchIp(void *dataptr, struct in_addr c)
+aclMatchIp (void *dataptr, struct in_addr c)
 {
-    splayNode **Top = dataptr;
-    *Top = splay_splay(&c, *Top, aclIpNetworkCompare);
-    debug(28, 3) ("aclMatchIp: '%s' %s\n",
-       inet_ntoa(c), splayLastResult ? "NOT found" : "found");
-    return !splayLastResult;
+  splayNode **Top = dataptr;
+  *Top = splay_splay (&c, *Top, aclIpNetworkCompare);
+  debug (28, 3) ("aclMatchIp: '%s' %s\n",
+                inet_ntoa (c), splayLastResult ? "NOT found" : "found");
+  return !splayLastResult;
 }
 
 /**********************/
@@ -1053,72 +1140,76 @@ aclMatchIp(void *dataptr, struct in_addr c)
 /**********************/
 
 static int
-aclMatchDomainList(void *dataptr, const char *host)
+aclMatchDomainList (void *dataptr, const char *host)
 {
-    splayNode **Top = dataptr;
-    if (host == NULL)
-       return 0;
-    debug(28, 3) ("aclMatchDomainList: checking '%s'\n", host);
-    *Top = splay_splay(host, *Top, aclHostDomainCompare);
-    debug(28, 3) ("aclMatchDomainList: '%s' %s\n",
-       host, splayLastResult ? "NOT found" : "found");
-    return !splayLastResult;
+  splayNode **Top = dataptr;
+  if (host == NULL)
+    return 0;
+  debug (28, 3) ("aclMatchDomainList: checking '%s'\n", host);
+  *Top = splay_splay (host, *Top, aclHostDomainCompare);
+  debug (28, 3) ("aclMatchDomainList: '%s' %s\n",
+                host, splayLastResult ? "NOT found" : "found");
+  return !splayLastResult;
 }
 
 int
-aclMatchRegex(relist * data, const char *word)
+aclMatchRegex (relist * data, const char *word)
 {
-    relist *first, *prev;
-    if (word == NULL)
-       return 0;
-    debug(28, 3) ("aclMatchRegex: checking '%s'\n", word);
-    first = data;
-    prev = NULL;
-    while (data) {
-       debug(28, 3) ("aclMatchRegex: looking for '%s'\n", data->pattern);
-       if (regexec(&data->regex, word, 0, 0, 0) == 0) {
-           if (prev != NULL) {
-               /* shift the element just found to the second position
-                * in the list */
-               prev->next = data->next;
-               data->next = first->next;
-               first->next = data;
+  relist *first, *prev;
+  if (word == NULL)
+    return 0;
+  debug (28, 3) ("aclMatchRegex: checking '%s'\n", word);
+  first = data;
+  prev = NULL;
+  while (data)
+    {
+      debug (28, 3) ("aclMatchRegex: looking for '%s'\n", data->pattern);
+      if (regexec (&data->regex, word, 0, 0, 0) == 0)
+       {
+         if (prev != NULL)
+           {
+             /* shift the element just found to the second position
+              * in the list */
+             prev->next = data->next;
+             data->next = first->next;
+             first->next = data;
            }
-           return 1;
+         return 1;
        }
-       prev = data;
-       data = data->next;
+      prev = data;
+      data = data->next;
     }
-    return 0;
+  return 0;
 }
 
 static int
-aclMatchUser(void *proxyauth_acl, char *user)
+aclMatchUser (void *proxyauth_acl, char *user)
 {
-    acl_user_data *data = (acl_user_data *) proxyauth_acl;
-    splayNode *Top = data->names;
+  acl_user_data *data = (acl_user_data *) proxyauth_acl;
+  splayNode *Top = data->names;
 
-    debug(28, 7) ("aclMatchUser: user is %s, case_insensitive is %d\n",
-       user, data->flags.case_insensitive);
-    debug(28, 8) ("Top is %p, Top->data is %s\n", Top,
-       (Top != NULL ? (Top)->data : "Unavailable"));
+  debug (28, 7) ("aclMatchUser: user is %s, case_insensitive is %d\n",
+                user, data->flags.case_insensitive);
+  debug (28, 8) ("Top is %p, Top->data is %s\n", Top,
+                (Top != NULL ? (Top)->data : "Unavailable"));
 
-    if (user == NULL)
-       return 0;
+  if (user == NULL)
+    return 0;
 
-    if (data->flags.required) {
-       debug(28, 7) ("aclMatchUser: user REQUIRED and auth-info present.\n");
-       return 1;
+  if (data->flags.required)
+    {
+      debug (28, 7) ("aclMatchUser: user REQUIRED and auth-info present.\n");
+      return 1;
     }
-    if (data->flags.case_insensitive)
-       Top = splay_splay(user, Top, (SPLAYCMP *) strcasecmp);
-    else
-       Top = splay_splay(user, Top, (SPLAYCMP *) strcmp);
-    /* Top=splay_splay(user,Top,(SPLAYCMP *)dumping_strcmp); */
-    debug(28, 7) ("aclMatchUser: returning %d,Top is %p, Top->data is %s\n",
-       !splayLastResult, Top, (Top ? Top->data : "Unavailable"));
-    data->names = Top;
-    return !splayLastResult;
+  if (data->flags.case_insensitive)
+    Top = splay_splay (user, Top, (SPLAYCMP *) strcasecmp);
+  else
+    Top = splay_splay (user, Top, (SPLAYCMP *) strcmp);
+  /* Top=splay_splay(user,Top,(SPLAYCMP *)dumping_strcmp); */
+  debug (28, 7) ("aclMatchUser: returning %d,Top is %p, Top->data is %s\n",
+                !splayLastResult, Top, (Top ? Top->data : "Unavailable"));
+  data->names = Top;
+  return !splayLastResult;
 }
 
 /* ACL result caching routines */
@@ -1138,54 +1229,58 @@ aclMatchUser(void *proxyauth_acl, char *user)
  * RBC
  */
 static int
-aclCacheMatchAcl(dlink_list * cache, squid_acl acltype, void *data,
-    char *MatchParam)
-{
-    int matchrv;
-    acl_proxy_auth_match_cache *auth_match;
-    dlink_node *link;
-    link = cache->head;
-    while (link) {
-       auth_match = link->data;
-       if (auth_match->acl_data == data) {
-           debug(28, 4) ("aclCacheMatchAcl: cache hit on acl '%d'\n", data);
-           return auth_match->matchrv;
-       }
-       link = link->next;
-    }
-    auth_match = NULL;
-    /* match the user in the acl. They are not cached. */
-    switch (acltype) {
+aclCacheMatchAcl (dlink_list * cache, squid_acl acltype, void *data,
+                 char *MatchParam)
+{
+  int matchrv;
+  acl_proxy_auth_match_cache *auth_match;
+  dlink_node *link;
+  link = cache->head;
+  while (link)
+    {
+      auth_match = link->data;
+      if (auth_match->acl_data == data)
+       {
+         debug (28, 4) ("aclCacheMatchAcl: cache hit on acl '%d'\n", data);
+         return auth_match->matchrv;
+       }
+      link = link->next;
+    }
+  auth_match = NULL;
+  /* match the user in the acl. They are not cached. */
+  switch (acltype)
+    {
     case ACL_PROXY_AUTH:
-       matchrv = aclMatchUser(data, MatchParam);
-       break;
+      matchrv = aclMatchUser (data, MatchParam);
+      break;
     case ACL_PROXY_AUTH_REGEX:
-       matchrv = aclMatchRegex(data, MatchParam);
+      matchrv = aclMatchRegex (data, MatchParam);
     default:
-       /* This is a fatal to ensure that aclCacheMatchAcl calls are _only_
-        * made for supported acl types */
-       fatal("aclCacheMatchAcl: unknown or unexpected ACL type");
-       return 0;               /* NOTREACHED */
+      /* This is a fatal to ensure that aclCacheMatchAcl calls are _only_
+       * made for supported acl types */
+      fatal ("aclCacheMatchAcl: unknown or unexpected ACL type");
+      return 0;                        /* NOTREACHED */
     }
-    auth_match = memAllocate(MEM_ACL_PROXY_AUTH_MATCH);
-    auth_match->matchrv = matchrv;
-    auth_match->acl_data = data;
-    dlinkAddTail(auth_match, &auth_match->link, cache);
-    return matchrv;
+  auth_match = memAllocate (MEM_ACL_PROXY_AUTH_MATCH);
+  auth_match->matchrv = matchrv;
+  auth_match->acl_data = data;
+  dlinkAddTail (auth_match, &auth_match->link, cache);
+  return matchrv;
 }
 
 void
-aclCacheMatchFlush(dlink_list * cache)
+aclCacheMatchFlush (dlink_list * cache)
 {
-    acl_proxy_auth_match_cache *auth_match;
-    dlink_node *link, *tmplink;
-    link = cache->head;
-    while (link) {
-       auth_match = link->data;
-       tmplink = link;
-       link = link->next;
-       dlinkDelete(tmplink, cache);
-       memFree(auth_match, MEM_ACL_PROXY_AUTH_MATCH);
+  acl_proxy_auth_match_cache *auth_match;
+  dlink_node *link, *tmplink;
+  link = cache->head;
+  while (link)
+    {
+      auth_match = link->data;
+      tmplink = link;
+      link = link->next;
+      dlinkDelete (tmplink, cache);
+      memFree (auth_match, MEM_ACL_PROXY_AUTH_MATCH);
     }
 }
 
@@ -1194,78 +1289,84 @@ aclCacheMatchFlush(dlink_list * cache)
  * 1 : Authorisation OK. (Matched)
  */
 static int
-aclMatchProxyAuth(void *data, http_hdr_type headertype,
-    auth_user_request_t * auth_user_request, aclCheck_t * checklist,
-    squid_acl acltype)
+aclMatchProxyAuth (void *data, http_hdr_type headertype,
+           auth_user_request_t * auth_user_request, aclCheck_t * checklist,
+                  squid_acl acltype)
 {
-    /* checklist is used to register user name when identified, nothing else */
+  /* checklist is used to register user name when identified, nothing else */
 
-    /* General program flow in proxy_auth acls
-     * 1. Consistency checks: are we getting sensible data
-     * 2. Call the authenticate* functions to establish a authenticated user
-     * 4. look up the username in acltype (and cache the result against the 
-     *     username
-     */
+  /* General program flow in proxy_auth acls
+   * 1. Consistency checks: are we getting sensible data
+   * 2. Call the authenticate* functions to establish a authenticated user
+   * 4. look up the username in acltype (and cache the result against the 
+   *     username
+   */
 
-    /* for completeness */
-    authenticateAuthUserRequestLock(auth_user_request);
+  /* for completeness */
+  authenticateAuthUserRequestLock (auth_user_request);
 
-    /* consistent parameters ? */
-    assert(authenticateUserAuthenticated(auth_user_request));
-    /* this ACL check completed */
-    authenticateAuthUserRequestUnlock(auth_user_request);
-    /* check to see if we have matched the user-acl before */
-    return aclCacheMatchAcl(&auth_user_request->auth_user->
-       proxy_match_cache, acltype, data,
-       authenticateUserRequestUsername(auth_user_request));
+  /* consistent parameters ? */
+  assert (authenticateUserAuthenticated (auth_user_request));
+  /* this ACL check completed */
+  authenticateAuthUserRequestUnlock (auth_user_request);
+  /* check to see if we have matched the user-acl before */
+  return aclCacheMatchAcl (&auth_user_request->auth_user->
+                          proxy_match_cache, acltype, data,
+                      authenticateUserRequestUsername (auth_user_request));
 }
 
-CBDATA_TYPE(acl_user_ip_data);
+CBDATA_TYPE (acl_user_ip_data);
 
 void
-aclParseUserMaxIP(void *data)
-{
-    acl_user_ip_data **acldata = data;
-    char *t = NULL;
-    CBDATA_INIT_TYPE(acl_user_ip_data);
-    if (*acldata) {
-       debug(28, 1) ("Attempting to alter already set User max IP acl\n");
-       return;
-    }
-    *acldata = cbdataAlloc(acl_user_ip_data);
-    if ((t = strtokFile())) {
-       debug(28, 5) ("aclParseUserMaxIP: First token is %s\n", t);
-       if (strcmp("-s", t) == 0) {
-           debug(28, 5) ("aclParseUserMaxIP: Going strict\n");
-           (*acldata)->flags.strict = 1;
-       } else {
-           (*acldata)->max = atoi(t);
-           debug(28, 5) ("aclParseUserMaxIP: Max IP address's %d\n", (*acldata)->max);
+aclParseUserMaxIP (void *data)
+{
+  acl_user_ip_data **acldata = data;
+  char *t = NULL;
+  CBDATA_INIT_TYPE (acl_user_ip_data);
+  if (*acldata)
+    {
+      debug (28, 1) ("Attempting to alter already set User max IP acl\n");
+      return;
+    }
+  *acldata = cbdataAlloc (acl_user_ip_data);
+  if ((t = strtokFile ()))
+    {
+      debug (28, 5) ("aclParseUserMaxIP: First token is %s\n", t);
+      if (strcmp ("-s", t) == 0)
+       {
+         debug (28, 5) ("aclParseUserMaxIP: Going strict\n");
+         (*acldata)->flags.strict = 1;
+       }
+      else
+       {
+         (*acldata)->max = atoi (t);
+         debug (28, 5) ("aclParseUserMaxIP: Max IP address's %d\n", (*acldata)->max);
        }
-    } else
-       fatal("aclParseUserMaxIP: Malformed ACL %d\n");
+    }
+  else
+    fatal ("aclParseUserMaxIP: Malformed ACL %d\n");
 }
 
 void
-aclDestroyUserMaxIP(void *data)
+aclDestroyUserMaxIP (void *data)
 {
-    acl_user_ip_data **acldata = data;
-    if (*acldata)
-       cbdataFree(*acldata);
-    *acldata = NULL;
+  acl_user_ip_data **acldata = data;
+  if (*acldata)
+    cbdataFree (*acldata);
+  *acldata = NULL;
 }
 
 wordlist *
-aclDumpUserMaxIP(void *data)
+aclDumpUserMaxIP (void *data)
 {
-    acl_user_ip_data *acldata = data;
-    wordlist *W = NULL;
-    char buf[128];
-    if (acldata->flags.strict)
-       wordlistAdd(&W, "-s");
-    snprintf(buf, sizeof(buf), "%d", acldata->max);
-    wordlistAdd(&W, buf);
-    return W;
+  acl_user_ip_data *acldata = data;
+  wordlist *W = NULL;
+  char buf[128];
+  if (acldata->flags.strict)
+    wordlistAdd (&W, "-s");
+  snprintf (buf, sizeof (buf), "%d", acldata->max);
+  wordlistAdd (&W, buf);
+  return W;
 }
 
 /* aclMatchUserMaxIP - check for users logging in from multiple IP's 
@@ -1273,155 +1374,171 @@ aclDumpUserMaxIP(void *data)
  * 1 : Match 
  */
 int
-aclMatchUserMaxIP(void *data, auth_user_request_t * auth_user_request,
-    struct in_addr src_addr)
+aclMatchUserMaxIP (void *data, auth_user_request_t * auth_user_request,
+                  struct in_addr src_addr)
 {
 /*
  * > the logic for flush the ip list when the limit is hit vs keep it sorted in most recent access order and just drop the oldest one off is currently undecided
  */
-    acl_user_ip_data *acldata = data;
+  acl_user_ip_data *acldata = data;
 
-    if (authenticateAuthUserRequestIPCount(auth_user_request) <= acldata->max)
-       return 0;
+  if (authenticateAuthUserRequestIPCount (auth_user_request) <= acldata->max)
+    return 0;
 
-    /* this is a match */
-    if (acldata->flags.strict) {
-       /* simply deny access - the user name is already associated with
-        * the request 
-        */
-       /* remove _this_ ip, as it is the culprit for going over the limit */
-       authenticateAuthUserRequestRemoveIp(auth_user_request, src_addr);
-       debug(28, 4) ("aclMatchUserMaxIP: Denying access in strict mode\n");
-    } else {
-       /* non-strict - remove some/all of the cached entries 
-        * ie to allow the user to move machines easily
-        */
-       authenticateAuthUserRequestClearIp(auth_user_request);
-       debug(28, 4) ("aclMatchUserMaxIP: Denying access in non-strict mode - flushing the user ip cache\n");
-    }
-    /* We had reports about the username being lost when denying due to 
-     * IP limits. That should be fixed in the new lazy-proxy code, but
-     * This note note is a reminder!
-     */
-    debug(28, 1) ("XXX aclMatchUserMaxIP returned 0, somebody "
-       "make sure the username gets logged to access.log.\n");
-    debug(28, 1) ("XXX if it works, tell developers to remove this "
-       "message\n");
-
-    return 1;
+  /* this is a match */
+  if (acldata->flags.strict)
+    {
+      /* simply deny access - the user name is already associated with
+       * the request 
+       */
+      /* remove _this_ ip, as it is the culprit for going over the limit */
+      authenticateAuthUserRequestRemoveIp (auth_user_request, src_addr);
+      debug (28, 4) ("aclMatchUserMaxIP: Denying access in strict mode\n");
+    }
+  else
+    {
+      /* non-strict - remove some/all of the cached entries 
+       * ie to allow the user to move machines easily
+       */
+      authenticateAuthUserRequestClearIp (auth_user_request);
+      debug (28, 4) ("aclMatchUserMaxIP: Denying access in non-strict mode - flushing the user ip cache\n");
+    }
+  /* We had reports about the username being lost when denying due to 
+   * IP limits. That should be fixed in the new lazy-proxy code, but
+   * This note note is a reminder!
+   */
+  debug (28, 1) ("XXX aclMatchUserMaxIP returned 0, somebody "
+                "make sure the username gets logged to access.log.\n");
+  debug (28, 1) ("XXX if it works, tell developers to remove this "
+                "message\n");
+
+  return 1;
 }
 
 static void
-aclLookupProxyAuthStart(aclCheck_t * checklist)
+aclLookupProxyAuthStart (aclCheck_t * checklist)
 {
-    auth_user_request_t *auth_user_request;
-    assert(checklist->auth_user_request != NULL);      /* this is created for us */
-    auth_user_request = checklist->auth_user_request;
+  auth_user_request_t *auth_user_request;
+  assert (checklist->auth_user_request != NULL);       /* this is created for us */
+  auth_user_request = checklist->auth_user_request;
 
-    assert(authenticateValidateUser(auth_user_request));
-    authenticateStart(auth_user_request, aclLookupProxyAuthDone, checklist);
+  assert (authenticateValidateUser (auth_user_request));
+  authenticateStart (auth_user_request, aclLookupProxyAuthDone, checklist);
 }
 
 static int
-aclMatchInteger(intlist * data, int i)
-{
-    intlist *first, *prev;
-    first = data;
-    prev = NULL;
-    while (data) {
-       if (data->i == i) {
-           if (prev != NULL) {
-               /* shift the element just found to the second position
-                * in the list */
-               prev->next = data->next;
-               data->next = first->next;
-               first->next = data;
+aclMatchInteger (intlist * data, int i)
+{
+  intlist *first, *prev;
+  first = data;
+  prev = NULL;
+  while (data)
+    {
+      if (data->i == i)
+       {
+         if (prev != NULL)
+           {
+             /* shift the element just found to the second position
+              * in the list */
+             prev->next = data->next;
+             data->next = first->next;
+             first->next = data;
            }
-           return 1;
+         return 1;
        }
-       prev = data;
-       data = data->next;
+      prev = data;
+      data = data->next;
     }
-    return 0;
+  return 0;
 }
 
 static int
-aclMatchIntegerRange(intrange * data, int i)
-{
-    intrange *first, *prev;
-    first = data;
-    prev = NULL;
-    while (data) {
-       if (i < data->i) {
-           (void) 0;
-       } else if (i > data->j) {
-           (void) 0;
-       } else {
-           /* matched */
-           if (prev != NULL) {
-               /* shift the element just found to the second position
-                * in the list */
-               prev->next = data->next;
-               data->next = first->next;
-               first->next = data;
+aclMatchIntegerRange (intrange * data, int i)
+{
+  intrange *first, *prev;
+  first = data;
+  prev = NULL;
+  while (data)
+    {
+      if (i < data->i)
+       {
+         (void) 0;
+       }
+      else if (i > data->j)
+       {
+         (void) 0;
+       }
+      else
+       {
+         /* matched */
+         if (prev != NULL)
+           {
+             /* shift the element just found to the second position
+              * in the list */
+             prev->next = data->next;
+             data->next = first->next;
+             first->next = data;
            }
-           return 1;
+         return 1;
        }
-       prev = data;
-       data = data->next;
+      prev = data;
+      data = data->next;
     }
-    return 0;
+  return 0;
 }
 
 static int
-aclMatchTime(acl_time_data * data, time_t when)
-{
-    static time_t last_when = 0;
-    static struct tm tm;
-    time_t t;
-    assert(data != NULL);
-    if (when != last_when) {
-       last_when = when;
-       xmemcpy(&tm, localtime(&when), sizeof(struct tm));
-    }
-    t = (time_t) (tm.tm_hour * 60 + tm.tm_min);
-    debug(28, 3) ("aclMatchTime: checking %d in %d-%d, weekbits=%x\n",
-       (int) t, (int) data->start, (int) data->stop, data->weekbits);
-
-    if (t < data->start || t > data->stop)
-       return 0;
-    return data->weekbits & (1 << tm.tm_wday) ? 1 : 0;
+aclMatchTime (acl_time_data * data, time_t when)
+{
+  static time_t last_when = 0;
+  static struct tm tm;
+  time_t t;
+  assert (data != NULL);
+  if (when != last_when)
+    {
+      last_when = when;
+      xmemcpy (&tm, localtime (&when), sizeof (struct tm));
+    }
+  t = (time_t) (tm.tm_hour * 60 + tm.tm_min);
+  debug (28, 3) ("aclMatchTime: checking %d in %d-%d, weekbits=%x\n",
+             (int) t, (int) data->start, (int) data->stop, data->weekbits);
+
+  if (t < data->start || t > data->stop)
+    return 0;
+  return data->weekbits & (1 << tm.tm_wday) ? 1 : 0;
 }
 
 #if SQUID_SNMP
 static int
-aclMatchWordList(wordlist * w, const char *word)
+aclMatchWordList (wordlist * w, const char *word)
 {
-    debug(28, 3) ("aclMatchWordList: looking for '%s'\n", word);
-    while (w != NULL) {
-       debug(28, 3) ("aclMatchWordList: checking '%s'\n", w->key);
-       if (!strcmp(w->key, word))
-           return 1;
-       w = w->next;
+  debug (28, 3) ("aclMatchWordList: looking for '%s'\n", word);
+  while (w != NULL)
+    {
+      debug (28, 3) ("aclMatchWordList: checking '%s'\n", w->key);
+      if (!strcmp (w->key, word))
+       return 1;
+      w = w->next;
     }
-    return 0;
+  return 0;
 }
 #endif
 
 static int
-aclMatchAcl(acl * ae, aclCheck_t * checklist)
-{
-    request_t *r = checklist->request;
-    const ipcache_addrs *ia = NULL;
-    const char *fqdn = NULL;
-    char *esc_buf;
-    const char *header;
-    const char *browser;
-    int k, ti;
-    http_hdr_type headertype;
-    if (!ae)
-       return 0;
-    switch (ae->type) {
+aclMatchAcl (acl * ae, aclCheck_t * checklist)
+{
+  request_t *r = checklist->request;
+  const ipcache_addrs *ia = NULL;
+  const char *fqdn = NULL;
+  char *esc_buf;
+  const char *header;
+  const char *browser;
+  int k, ti;
+  http_hdr_type headertype;
+  if (!ae)
+    return 0;
+  switch (ae->type)
+    {
     case ACL_DST_IP:
     case ACL_DST_DOMAIN:
     case ACL_DST_DOM_REGEX:
@@ -1430,554 +1547,623 @@ aclMatchAcl(acl * ae, aclCheck_t * checklist)
     case ACL_PROTO:
     case ACL_METHOD:
     case ACL_DST_ASN:
-       /* These ACL types require checklist->request */
-       if (NULL == r) {
-           debug(28, 1) ("WARNING: '%s' ACL is used but there is no"
-               " HTTP request -- access denied.\n", ae->name);
-           return 0;
+      /* These ACL types require checklist->request */
+      if (NULL == r)
+       {
+         debug (28, 1) ("WARNING: '%s' ACL is used but there is no"
+                        " HTTP request -- access denied.\n", ae->name);
+         return 0;
        }
-       break;
+      break;
     default:
-       break;
+      break;
     }
-    debug(28, 3) ("aclMatchAcl: checking '%s'\n", ae->cfgline);
-    switch (ae->type) {
+  debug (28, 3) ("aclMatchAcl: checking '%s'\n", ae->cfgline);
+  switch (ae->type)
+    {
     case ACL_SRC_IP:
-       return aclMatchIp(&ae->data, checklist->src_addr);
-       /* NOTREACHED */
+      return aclMatchIp (&ae->data, checklist->src_addr);
+      /* NOTREACHED */
     case ACL_MY_IP:
-       return aclMatchIp(&ae->data, checklist->my_addr);
-       /* NOTREACHED */
+      return aclMatchIp (&ae->data, checklist->my_addr);
+      /* NOTREACHED */
     case ACL_DST_IP:
-       ia = ipcache_gethostbyname(r->host, IP_LOOKUP_IF_MISS);
-       if (ia) {
-           for (k = 0; k < (int) ia->count; k++) {
-               if (aclMatchIp(&ae->data, ia->in_addrs[k]))
-                   return 1;
+      ia = ipcache_gethostbyname (r->host, IP_LOOKUP_IF_MISS);
+      if (ia)
+       {
+         for (k = 0; k < (int) ia->count; k++)
+           {
+             if (aclMatchIp (&ae->data, ia->in_addrs[k]))
+               return 1;
            }
-           return 0;
-       } else if (checklist->state[ACL_DST_IP] == ACL_LOOKUP_NONE) {
-           debug(28, 3) ("aclMatchAcl: Can't yet compare '%s' ACL for '%s'\n",
-               ae->name, r->host);
-           checklist->state[ACL_DST_IP] = ACL_LOOKUP_NEEDED;
-           return 0;
-       } else {
-           return aclMatchIp(&ae->data, no_addr);
-       }
-       /* NOTREACHED */
+         return 0;
+       }
+      else if (checklist->state[ACL_DST_IP] == ACL_LOOKUP_NONE)
+       {
+         debug (28, 3) ("aclMatchAcl: Can't yet compare '%s' ACL for '%s'\n",
+                        ae->name, r->host);
+         checklist->state[ACL_DST_IP] = ACL_LOOKUP_NEEDED;
+         return 0;
+       }
+      else
+       {
+         return aclMatchIp (&ae->data, no_addr);
+       }
+      /* NOTREACHED */
     case ACL_DST_DOMAIN:
-       if ((ia = ipcacheCheckNumeric(r->host)) == NULL)
-           return aclMatchDomainList(&ae->data, r->host);
-       fqdn = fqdncache_gethostbyaddr(ia->in_addrs[0], FQDN_LOOKUP_IF_MISS);
-       if (fqdn)
-           return aclMatchDomainList(&ae->data, fqdn);
-       if (checklist->state[ACL_DST_DOMAIN] == ACL_LOOKUP_NONE) {
-           debug(28, 3) ("aclMatchAcl: Can't yet compare '%s' ACL for '%s'\n",
-               ae->name, inet_ntoa(ia->in_addrs[0]));
-           checklist->state[ACL_DST_DOMAIN] = ACL_LOOKUP_NEEDED;
-           return 0;
-       }
-       return aclMatchDomainList(&ae->data, "none");
-       /* NOTREACHED */
+      if ((ia = ipcacheCheckNumeric (r->host)) == NULL)
+       return aclMatchDomainList (&ae->data, r->host);
+      fqdn = fqdncache_gethostbyaddr (ia->in_addrs[0], FQDN_LOOKUP_IF_MISS);
+      if (fqdn)
+       return aclMatchDomainList (&ae->data, fqdn);
+      if (checklist->state[ACL_DST_DOMAIN] == ACL_LOOKUP_NONE)
+       {
+         debug (28, 3) ("aclMatchAcl: Can't yet compare '%s' ACL for '%s'\n",
+                        ae->name, inet_ntoa (ia->in_addrs[0]));
+         checklist->state[ACL_DST_DOMAIN] = ACL_LOOKUP_NEEDED;
+         return 0;
+       }
+      return aclMatchDomainList (&ae->data, "none");
+      /* NOTREACHED */
     case ACL_SRC_DOMAIN:
-       fqdn = fqdncache_gethostbyaddr(checklist->src_addr, FQDN_LOOKUP_IF_MISS);
-       if (fqdn) {
-           return aclMatchDomainList(&ae->data, fqdn);
-       } else if (checklist->state[ACL_SRC_DOMAIN] == ACL_LOOKUP_NONE) {
-           debug(28, 3) ("aclMatchAcl: Can't yet compare '%s' ACL for '%s'\n",
-               ae->name, inet_ntoa(checklist->src_addr));
-           checklist->state[ACL_SRC_DOMAIN] = ACL_LOOKUP_NEEDED;
-           return 0;
-       }
-       return aclMatchDomainList(&ae->data, "none");
-       /* NOTREACHED */
+      fqdn = fqdncache_gethostbyaddr (checklist->src_addr, FQDN_LOOKUP_IF_MISS);
+      if (fqdn)
+       {
+         return aclMatchDomainList (&ae->data, fqdn);
+       }
+      else if (checklist->state[ACL_SRC_DOMAIN] == ACL_LOOKUP_NONE)
+       {
+         debug (28, 3) ("aclMatchAcl: Can't yet compare '%s' ACL for '%s'\n",
+                        ae->name, inet_ntoa (checklist->src_addr));
+         checklist->state[ACL_SRC_DOMAIN] = ACL_LOOKUP_NEEDED;
+         return 0;
+       }
+      return aclMatchDomainList (&ae->data, "none");
+      /* NOTREACHED */
     case ACL_DST_DOM_REGEX:
-       if ((ia = ipcacheCheckNumeric(r->host)) == NULL)
-           return aclMatchRegex(ae->data, r->host);
-       fqdn = fqdncache_gethostbyaddr(ia->in_addrs[0], FQDN_LOOKUP_IF_MISS);
-       if (fqdn)
-           return aclMatchRegex(ae->data, fqdn);
-       if (checklist->state[ACL_DST_DOMAIN] == ACL_LOOKUP_NONE) {
-           debug(28, 3) ("aclMatchAcl: Can't yet compare '%s' ACL for '%s'\n",
-               ae->name, inet_ntoa(ia->in_addrs[0]));
-           checklist->state[ACL_DST_DOMAIN] = ACL_LOOKUP_NEEDED;
-           return 0;
-       }
-       return aclMatchRegex(ae->data, "none");
-       /* NOTREACHED */
+      if ((ia = ipcacheCheckNumeric (r->host)) == NULL)
+       return aclMatchRegex (ae->data, r->host);
+      fqdn = fqdncache_gethostbyaddr (ia->in_addrs[0], FQDN_LOOKUP_IF_MISS);
+      if (fqdn)
+       return aclMatchRegex (ae->data, fqdn);
+      if (checklist->state[ACL_DST_DOMAIN] == ACL_LOOKUP_NONE)
+       {
+         debug (28, 3) ("aclMatchAcl: Can't yet compare '%s' ACL for '%s'\n",
+                        ae->name, inet_ntoa (ia->in_addrs[0]));
+         checklist->state[ACL_DST_DOMAIN] = ACL_LOOKUP_NEEDED;
+         return 0;
+       }
+      return aclMatchRegex (ae->data, "none");
+      /* NOTREACHED */
     case ACL_SRC_DOM_REGEX:
-       fqdn = fqdncache_gethostbyaddr(checklist->src_addr, FQDN_LOOKUP_IF_MISS);
-       if (fqdn) {
-           return aclMatchRegex(ae->data, fqdn);
-       } else if (checklist->state[ACL_SRC_DOMAIN] == ACL_LOOKUP_NONE) {
-           debug(28, 3) ("aclMatchAcl: Can't yet compare '%s' ACL for '%s'\n",
-               ae->name, inet_ntoa(checklist->src_addr));
-           checklist->state[ACL_SRC_DOMAIN] = ACL_LOOKUP_NEEDED;
-           return 0;
-       }
-       return aclMatchRegex(ae->data, "none");
-       /* NOTREACHED */
+      fqdn = fqdncache_gethostbyaddr (checklist->src_addr, FQDN_LOOKUP_IF_MISS);
+      if (fqdn)
+       {
+         return aclMatchRegex (ae->data, fqdn);
+       }
+      else if (checklist->state[ACL_SRC_DOMAIN] == ACL_LOOKUP_NONE)
+       {
+         debug (28, 3) ("aclMatchAcl: Can't yet compare '%s' ACL for '%s'\n",
+                        ae->name, inet_ntoa (checklist->src_addr));
+         checklist->state[ACL_SRC_DOMAIN] = ACL_LOOKUP_NEEDED;
+         return 0;
+       }
+      return aclMatchRegex (ae->data, "none");
+      /* NOTREACHED */
     case ACL_TIME:
-       return aclMatchTime(ae->data, squid_curtime);
-       /* NOTREACHED */
+      return aclMatchTime (ae->data, squid_curtime);
+      /* NOTREACHED */
     case ACL_URLPATH_REGEX:
-       esc_buf = xstrdup(strBuf(r->urlpath));
-       rfc1738_unescape(esc_buf);
-       k = aclMatchRegex(ae->data, esc_buf);
-       safe_free(esc_buf);
-       return k;
-       /* NOTREACHED */
+      esc_buf = xstrdup (strBuf (r->urlpath));
+      rfc1738_unescape (esc_buf);
+      k = aclMatchRegex (ae->data, esc_buf);
+      safe_free (esc_buf);
+      return k;
+      /* NOTREACHED */
     case ACL_URL_REGEX:
-       esc_buf = xstrdup(urlCanonical(r));
-       rfc1738_unescape(esc_buf);
-       k = aclMatchRegex(ae->data, esc_buf);
-       safe_free(esc_buf);
-       return k;
-       /* NOTREACHED */
+      esc_buf = xstrdup (urlCanonical (r));
+      rfc1738_unescape (esc_buf);
+      k = aclMatchRegex (ae->data, esc_buf);
+      safe_free (esc_buf);
+      return k;
+      /* NOTREACHED */
     case ACL_MAXCONN:
-       k = clientdbEstablished(checklist->src_addr, 0);
-       return ((k > ((intlist *) ae->data)->i) ? 1 : 0);
-       /* NOTREACHED */
+      k = clientdbEstablished (checklist->src_addr, 0);
+      return ((k > ((intlist *) ae->data)->i) ? 1 : 0);
+      /* NOTREACHED */
     case ACL_URL_PORT:
-       return aclMatchIntegerRange(ae->data, (int) r->port);
-       /* NOTREACHED */
+      return aclMatchIntegerRange (ae->data, (int) r->port);
+      /* NOTREACHED */
     case ACL_MY_PORT:
-       return aclMatchIntegerRange(ae->data, (int) checklist->my_port);
-       /* NOTREACHED */
+      return aclMatchIntegerRange (ae->data, (int) checklist->my_port);
+      /* NOTREACHED */
 #if USE_IDENT
     case ACL_IDENT:
-       if (checklist->rfc931[0]) {
-           return aclMatchUser(ae->data, checklist->rfc931);
-       } else {
-           checklist->state[ACL_IDENT] = ACL_LOOKUP_NEEDED;
-           return 0;
+      if (checklist->rfc931[0])
+       {
+         return aclMatchUser (ae->data, checklist->rfc931);
        }
-       /* NOTREACHED */
+      else
+       {
+         checklist->state[ACL_IDENT] = ACL_LOOKUP_NEEDED;
+         return 0;
+       }
+      /* NOTREACHED */
     case ACL_IDENT_REGEX:
-       if (checklist->rfc931[0]) {
-           return aclMatchRegex(ae->data, checklist->rfc931);
-       } else {
-           checklist->state[ACL_IDENT] = ACL_LOOKUP_NEEDED;
-           return 0;
+      if (checklist->rfc931[0])
+       {
+         return aclMatchRegex (ae->data, checklist->rfc931);
+       }
+      else
+       {
+         checklist->state[ACL_IDENT] = ACL_LOOKUP_NEEDED;
+         return 0;
        }
-       /* NOTREACHED */
+      /* NOTREACHED */
 #endif
     case ACL_PROTO:
-       return aclMatchInteger(ae->data, r->protocol);
-       /* NOTREACHED */
+      return aclMatchInteger (ae->data, r->protocol);
+      /* NOTREACHED */
     case ACL_METHOD:
-       return aclMatchInteger(ae->data, r->method);
-       /* NOTREACHED */
+      return aclMatchInteger (ae->data, r->method);
+      /* NOTREACHED */
     case ACL_BROWSER:
-       browser = httpHeaderGetStr(&checklist->request->header, HDR_USER_AGENT);
-       if (NULL == browser)
-           return 0;
-       return aclMatchRegex(ae->data, browser);
-       /* NOTREACHED */
+      browser = httpHeaderGetStr (&checklist->request->header, HDR_USER_AGENT);
+      if (NULL == browser)
+       return 0;
+      return aclMatchRegex (ae->data, browser);
+      /* NOTREACHED */
     case ACL_PROXY_AUTH:
     case ACL_PROXY_AUTH_REGEX:
     case ACL_MAX_USER_IP:
-       /* ALL authentication predicated ACL's live here */
-       if (NULL == r) {
-           return -1;
-       } else if (!r->flags.accelerated) {
-           /* Proxy authorization on proxy requests */
-           headertype = HDR_PROXY_AUTHORIZATION;
-       } else if (r->flags.internal) {
-           /* WWW authorization on accelerated internal requests */
-           headertype = HDR_AUTHORIZATION;
-       } else {
+      /* ALL authentication predicated ACL's live here */
+      if (NULL == r)
+       {
+         return -1;
+       }
+      else if (!r->flags.accelerated)
+       {
+         /* Proxy authorization on proxy requests */
+         headertype = HDR_PROXY_AUTHORIZATION;
+       }
+      else if (r->flags.internal)
+       {
+         /* WWW authorization on accelerated internal requests */
+         headertype = HDR_AUTHORIZATION;
+       }
+      else
+       {
 #if AUTH_ON_ACCELERATION
-           /* WWW authorization on accelerated requests */
-           headertype = HDR_AUTHORIZATION;
+         /* WWW authorization on accelerated requests */
+         headertype = HDR_AUTHORIZATION;
 #else
-           debug(28, 1) ("aclMatchAcl: proxy_auth %s not applicable on accelerated requests.\n", ae->name);
-           return -1;
+         debug (28, 1) ("aclMatchAcl: proxy_auth %s not applicable on accelerated requests.\n", ae->name);
+         return -1;
 #endif
        }
-       /* get authed here */
-       if ((ti = authenticateAuthenticate(&checklist->auth_user_request, headertype, checklist->request, checklist->conn, checklist->src_addr)) != AUTH_AUTHENTICATED) {
-           switch (ti) {
+      /* get authed here */
+      if ((ti = authenticateAuthenticate (&checklist->auth_user_request, headertype, checklist->request, checklist->conn, checklist->src_addr)) != AUTH_AUTHENTICATED)
+       {
+         switch (ti)
+           {
            case 0:
-               /* Authenticated but not Authorised for this ACL */
-               debug(28, 4) ("aclMatchAcl: returning  0 user authenticated but not authorised.\n");
-               return 0;
+             /* Authenticated but not Authorised for this ACL */
+             debug (28, 4) ("aclMatchAcl: returning  0 user authenticated but not authorised.\n");
+             return 0;
            case 1:
-               fatal("AUTH_AUTHENTICATED == 1\n");
-               break;
+             fatal ("AUTH_AUTHENTICATED == 1\n");
+             break;
            case -1:
-               /* Send data to the helper */
-               debug(28, 4) ("aclMatchAcl: returning 0 sending authentication challenge.\n");
-               checklist->state[ACL_PROXY_AUTH] = ACL_LOOKUP_NEEDED;
-               return 0;
+             /* Send data to the helper */
+             debug (28, 4) ("aclMatchAcl: returning 0 sending authentication challenge.\n");
+             checklist->state[ACL_PROXY_AUTH] = ACL_LOOKUP_NEEDED;
+             return 0;
            case -2:
-               /* Send a challenge to the client */
-               debug(28, 4) ("aclMatchAcl: returning 0 sending credentials to helper.\n");
-               checklist->state[ACL_PROXY_AUTH] = ACL_PROXY_AUTH_NEEDED;
-               return 0;
+             /* Send a challenge to the client */
+             debug (28, 4) ("aclMatchAcl: returning 0 sending credentials to helper.\n");
+             checklist->state[ACL_PROXY_AUTH] = ACL_PROXY_AUTH_NEEDED;
+             return 0;
            }
        }
-       /* then, switch on type again to do the correct match routine :> */
-       switch (ae->type) {
+      /* then, switch on type again to do the correct match routine :> */
+      switch (ae->type)
+       {
        case ACL_PROXY_AUTH:
        case ACL_PROXY_AUTH_REGEX:
-           ti = aclMatchProxyAuth(ae->data, headertype,
-               checklist->auth_user_request, checklist, ae->type);
-           break;
+         ti = aclMatchProxyAuth (ae->data, headertype,
+                        checklist->auth_user_request, checklist, ae->type);
+         break;
        case ACL_MAX_USER_IP:
-           ti = aclMatchUserMaxIP(ae->data, checklist->auth_user_request,
-               checklist->src_addr);
-           break;
+         ti = aclMatchUserMaxIP (ae->data, checklist->auth_user_request,
+                                 checklist->src_addr);
+         break;
        default:
-           /* Keep GCC happy */
-           break;
+         /* Keep GCC happy */
+         break;
        }
-       checklist->auth_user_request = NULL;
-       /* Check the credentials */
-       switch (ti) {
+      checklist->auth_user_request = NULL;
+      /* Check the credentials */
+      switch (ti)
+       {
        case 0:
-           debug(28, 4) ("aclMatchAcl: returning  0 user authenticated but not authorised.\n");
-           /* Authenticated but not Authorised for this ACL */
-           return 0;
+         debug (28, 4) ("aclMatchAcl: returning  0 user authenticated but not authorised.\n");
+         /* Authenticated but not Authorised for this ACL */
+         return 0;
        case 1:
-           debug(28, 4) ("aclMatchAcl: returning  1 user authenticated and authorised.\n");
-           /* Authenticated and Authorised for this ACL */
-           return 1;
+         debug (28, 4) ("aclMatchAcl: returning  1 user authenticated and authorised.\n");
+         /* Authenticated and Authorised for this ACL */
+         return 1;
        case -2:
        case -1:
-           fatal("Invalid response from match routine\n");
-           break;
+         fatal ("Invalid response from match routine\n");
+         break;
        }
 
-       /* NOTREACHED */
+      /* NOTREACHED */
 #if SQUID_SNMP
     case ACL_SNMP_COMMUNITY:
-       return aclMatchWordList(ae->data, checklist->snmp_community);
+      return aclMatchWordList (ae->data, checklist->snmp_community);
 #endif
     case ACL_SRC_ASN:
-       return asnMatchIp(ae->data, checklist->src_addr);
+      return asnMatchIp (ae->data, checklist->src_addr);
     case ACL_DST_ASN:
-       ia = ipcache_gethostbyname(r->host, IP_LOOKUP_IF_MISS);
-       if (ia) {
-           for (k = 0; k < (int) ia->count; k++) {
-               if (asnMatchIp(ae->data, ia->in_addrs[k]))
-                   return 1;
+      ia = ipcache_gethostbyname (r->host, IP_LOOKUP_IF_MISS);
+      if (ia)
+       {
+         for (k = 0; k < (int) ia->count; k++)
+           {
+             if (asnMatchIp (ae->data, ia->in_addrs[k]))
+               return 1;
            }
-           return 0;
-       } else if (checklist->state[ACL_DST_ASN] == ACL_LOOKUP_NONE) {
-           debug(28, 3) ("asnMatchAcl: Can't yet compare '%s' ACL for '%s'\n",
-               ae->name, r->host);
-           checklist->state[ACL_DST_ASN] = ACL_LOOKUP_NEEDED;
-       } else {
-           return asnMatchIp(ae->data, no_addr);
+         return 0;
        }
-       return 0;
+      else if (checklist->state[ACL_DST_ASN] == ACL_LOOKUP_NONE)
+       {
+         debug (28, 3) ("asnMatchAcl: Can't yet compare '%s' ACL for '%s'\n",
+                        ae->name, r->host);
+         checklist->state[ACL_DST_ASN] = ACL_LOOKUP_NEEDED;
+       }
+      else
+       {
+         return asnMatchIp (ae->data, no_addr);
+       }
+      return 0;
 #if USE_ARP_ACL
     case ACL_SRC_ARP:
-       return aclMatchArp(&ae->data, checklist->src_addr);
+      return aclMatchArp (&ae->data, checklist->src_addr);
 #endif
     case ACL_REQ_MIME_TYPE:
-       header = httpHeaderGetStr(&checklist->request->header,
-           HDR_CONTENT_TYPE);
-       if (NULL == header)
-           header = "";
-       return aclMatchRegex(ae->data, header);
-       /* NOTREACHED */
+      header = httpHeaderGetStr (&checklist->request->header,
+                                HDR_CONTENT_TYPE);
+      if (NULL == header)
+       header = "";
+      return aclMatchRegex (ae->data, header);
+      /* NOTREACHED */
     case ACL_REP_MIME_TYPE:
-       if (!checklist->reply)
-           return 0;
-       header = httpHeaderGetStr(&checklist->reply->header, HDR_CONTENT_TYPE);
-       if (NULL == header)
-           header = "";
-       return aclMatchRegex(ae->data, header);
-       /* NOTREACHED */
+      if (!checklist->reply)
+       return 0;
+      header = httpHeaderGetStr (&checklist->reply->header, HDR_CONTENT_TYPE);
+      if (NULL == header)
+       header = "";
+      return aclMatchRegex (ae->data, header);
+      /* NOTREACHED */
     case ACL_NONE:
     case ACL_ENUM_MAX:
-       break;
+      break;
     }
-    debug(28, 0) ("aclMatchAcl: '%s' has bad type %d\n",
-       ae->name, ae->type);
-    return 0;
+  debug (28, 0) ("aclMatchAcl: '%s' has bad type %d\n",
+                ae->name, ae->type);
+  return 0;
 }
 
 int
-aclMatchAclList(const acl_list * list, aclCheck_t * checklist)
-{
-    while (list) {
-       AclMatchedName = list->acl->name;
-       debug(28, 3) ("aclMatchAclList: checking %s%s\n",
-           list->op ? null_string : "!", list->acl->name);
-       if (aclMatchAcl(list->acl, checklist) != list->op) {
-           debug(28, 3) ("aclMatchAclList: returning 0\n");
-           return 0;
+aclMatchAclList (const acl_list * list, aclCheck_t * checklist)
+{
+  while (list)
+    {
+      AclMatchedName = list->acl->name;
+      debug (28, 3) ("aclMatchAclList: checking %s%s\n",
+                    list->op ? null_string : "!", list->acl->name);
+      if (aclMatchAcl (list->acl, checklist) != list->op)
+       {
+         debug (28, 3) ("aclMatchAclList: returning 0\n");
+         return 0;
        }
-       list = list->next;
+      list = list->next;
     }
-    debug(28, 3) ("aclMatchAclList: returning 1\n");
-    return 1;
+  debug (28, 3) ("aclMatchAclList: returning 1\n");
+  return 1;
 }
 
 int
-aclCheckFast(const acl_access * A, aclCheck_t * checklist)
+aclCheckFast (const acl_access * A, aclCheck_t * checklist)
 {
-    allow_t allow = ACCESS_DENIED;
-    debug(28, 5) ("aclCheckFast: list: %p\n", A);
-    while (A) {
-       allow = A->allow;
-       if (aclMatchAclList(A->acl_list, checklist))
-           return allow == ACCESS_ALLOWED;
-       A = A->next;
+  allow_t allow = ACCESS_DENIED;
+  debug (28, 5) ("aclCheckFast: list: %p\n", A);
+  while (A)
+    {
+      allow = A->allow;
+      if (aclMatchAclList (A->acl_list, checklist))
+       return allow == ACCESS_ALLOWED;
+      A = A->next;
     }
-    debug(28, 5) ("aclCheckFast: no matches, returning: %d\n", allow == ACCESS_DENIED);
-    return allow == ACCESS_DENIED;
+  debug (28, 5) ("aclCheckFast: no matches, returning: %d\n", allow == ACCESS_DENIED);
+  return allow == ACCESS_DENIED;
 }
 
 static void
-aclCheck(aclCheck_t * checklist)
-{
-    allow_t allow = ACCESS_DENIED;
-    const acl_access *A;
-    int match;
-    ipcache_addrs *ia;
-    while ((A = checklist->access_list) != NULL) {
-       /*
-        * If the _acl_access is no longer valid (i.e. its been
-        * freed because of a reconfigure), then bail on this
-        * access check.  For now, return ACCESS_DENIED.
-        */
-       if (!cbdataValid(A)) {
-           cbdataUnlock(A);
-           break;
+aclCheck (aclCheck_t * checklist)
+{
+  allow_t allow = ACCESS_DENIED;
+  const acl_access *A;
+  int match;
+  ipcache_addrs *ia;
+  while ((A = checklist->access_list) != NULL)
+    {
+      /*
+       * If the _acl_access is no longer valid (i.e. its been
+       * freed because of a reconfigure), then bail on this
+       * access check.  For now, return ACCESS_DENIED.
+       */
+      if (!cbdataValid (A))
+       {
+         cbdataUnlock (A);
+         break;
+       }
+      debug (28, 3) ("aclCheck: checking '%s'\n", A->cfgline);
+      allow = A->allow;
+      match = aclMatchAclList (A->acl_list, checklist);
+      if (checklist->state[ACL_DST_IP] == ACL_LOOKUP_NEEDED)
+       {
+         checklist->state[ACL_DST_IP] = ACL_LOOKUP_PENDING;
+         ipcache_nbgethostbyname (checklist->request->host,
+                                  aclLookupDstIPDone, checklist);
+         return;
+       }
+      else if (checklist->state[ACL_DST_ASN] == ACL_LOOKUP_NEEDED)
+       {
+         checklist->state[ACL_DST_ASN] = ACL_LOOKUP_PENDING;
+         ipcache_nbgethostbyname (checklist->request->host,
+                                  aclLookupDstIPforASNDone, checklist);
+         return;
        }
-       debug(28, 3) ("aclCheck: checking '%s'\n", A->cfgline);
-       allow = A->allow;
-       match = aclMatchAclList(A->acl_list, checklist);
-       if (checklist->state[ACL_DST_IP] == ACL_LOOKUP_NEEDED) {
-           checklist->state[ACL_DST_IP] = ACL_LOOKUP_PENDING;
-           ipcache_nbgethostbyname(checklist->request->host,
-               aclLookupDstIPDone, checklist);
-           return;
-       } else if (checklist->state[ACL_DST_ASN] == ACL_LOOKUP_NEEDED) {
-           checklist->state[ACL_DST_ASN] = ACL_LOOKUP_PENDING;
-           ipcache_nbgethostbyname(checklist->request->host,
-               aclLookupDstIPforASNDone, checklist);
-           return;
-       } else if (checklist->state[ACL_SRC_DOMAIN] == ACL_LOOKUP_NEEDED) {
-           checklist->state[ACL_SRC_DOMAIN] = ACL_LOOKUP_PENDING;
-           fqdncache_nbgethostbyaddr(checklist->src_addr,
-               aclLookupSrcFQDNDone, checklist);
-           return;
-       } else if (checklist->state[ACL_DST_DOMAIN] == ACL_LOOKUP_NEEDED) {
-           ia = ipcacheCheckNumeric(checklist->request->host);
-           if (ia == NULL) {
-               checklist->state[ACL_DST_DOMAIN] = ACL_LOOKUP_DONE;
-               return;
+      else if (checklist->state[ACL_SRC_DOMAIN] == ACL_LOOKUP_NEEDED)
+       {
+         checklist->state[ACL_SRC_DOMAIN] = ACL_LOOKUP_PENDING;
+         fqdncache_nbgethostbyaddr (checklist->src_addr,
+                                    aclLookupSrcFQDNDone, checklist);
+         return;
+       }
+      else if (checklist->state[ACL_DST_DOMAIN] == ACL_LOOKUP_NEEDED)
+       {
+         ia = ipcacheCheckNumeric (checklist->request->host);
+         if (ia == NULL)
+           {
+             checklist->state[ACL_DST_DOMAIN] = ACL_LOOKUP_DONE;
+             return;
            }
-           checklist->dst_addr = ia->in_addrs[0];
-           checklist->state[ACL_DST_DOMAIN] = ACL_LOOKUP_PENDING;
-           fqdncache_nbgethostbyaddr(checklist->dst_addr,
-               aclLookupDstFQDNDone, checklist);
-           return;
-       } else if (checklist->state[ACL_PROXY_AUTH] == ACL_LOOKUP_NEEDED) {
-           debug(28, 3)
-               ("aclCheck: checking password via authenticator\n");
-           aclLookupProxyAuthStart(checklist);
-           checklist->state[ACL_PROXY_AUTH] = ACL_LOOKUP_PENDING;
-           return;
-       } else if (checklist->state[ACL_PROXY_AUTH] == ACL_PROXY_AUTH_NEEDED) {
-           /* Client is required to resend the request with correct authentication
-            * credentials. (This may be part of a stateful auth protocol.
-            * The request is denied.
-            */
-           debug(28, 6) ("aclCheck: requiring Proxy Auth header.\n");
-           allow = ACCESS_REQ_PROXY_AUTH;
-           match = -1;
+         checklist->dst_addr = ia->in_addrs[0];
+         checklist->state[ACL_DST_DOMAIN] = ACL_LOOKUP_PENDING;
+         fqdncache_nbgethostbyaddr (checklist->dst_addr,
+                                    aclLookupDstFQDNDone, checklist);
+         return;
+       }
+      else if (checklist->state[ACL_PROXY_AUTH] == ACL_LOOKUP_NEEDED)
+       {
+         debug (28, 3)
+           ("aclCheck: checking password via authenticator\n");
+         aclLookupProxyAuthStart (checklist);
+         checklist->state[ACL_PROXY_AUTH] = ACL_LOOKUP_PENDING;
+         return;
+       }
+      else if (checklist->state[ACL_PROXY_AUTH] == ACL_PROXY_AUTH_NEEDED)
+       {
+         /* Client is required to resend the request with correct authentication
+          * credentials. (This may be part of a stateful auth protocol.
+          * The request is denied.
+          */
+         debug (28, 6) ("aclCheck: requiring Proxy Auth header.\n");
+         allow = ACCESS_REQ_PROXY_AUTH;
+         match = -1;
        }
 #if USE_IDENT
-       else if (checklist->state[ACL_IDENT] == ACL_LOOKUP_NEEDED) {
-           debug(28, 3) ("aclCheck: Doing ident lookup\n");
-           if (cbdataValid(checklist->conn)) {
-               identStart(&checklist->conn->me, &checklist->conn->peer,
-                   aclLookupIdentDone, checklist);
-               checklist->state[ACL_IDENT] = ACL_LOOKUP_PENDING;
-               return;
-           } else {
-               debug(28, 1) ("aclCheck: Can't start ident lookup. No client connection\n");
-               cbdataUnlock(checklist->conn);
-               checklist->conn = NULL;
-               allow = 0;
-               match = -1;
+      else if (checklist->state[ACL_IDENT] == ACL_LOOKUP_NEEDED)
+       {
+         debug (28, 3) ("aclCheck: Doing ident lookup\n");
+         if (cbdataValid (checklist->conn))
+           {
+             identStart (&checklist->conn->me, &checklist->conn->peer,
+                         aclLookupIdentDone, checklist);
+             checklist->state[ACL_IDENT] = ACL_LOOKUP_PENDING;
+             return;
+           }
+         else
+           {
+             debug (28, 1) ("aclCheck: Can't start ident lookup. No client connection\n");
+             cbdataUnlock (checklist->conn);
+             checklist->conn = NULL;
+             allow = 0;
+             match = -1;
            }
        }
 #endif
-       /*
-        * We are done with this _acl_access entry.  Either the request
-        * is allowed, denied, requires authentication, or we move on to
-        * the next entry.
-        */
-       cbdataUnlock(A);
-       if (match) {
-           debug(28, 3) ("aclCheck: match found, returning %d\n", allow);
-           aclCheckCallback(checklist, allow);
-           return;
-       }
-       checklist->access_list = A->next;
-       /*
-        * Lock the next _acl_access entry
-        */
-       if (A->next)
-           cbdataLock(A->next);
-    }
-    debug(28, 3) ("aclCheck: NO match found, returning %d\n", allow != ACCESS_DENIED ? ACCESS_DENIED : ACCESS_ALLOWED);
-    aclCheckCallback(checklist, allow != ACCESS_DENIED ? ACCESS_DENIED : ACCESS_ALLOWED);
+      /*
+       * We are done with this _acl_access entry.  Either the request
+       * is allowed, denied, requires authentication, or we move on to
+       * the next entry.
+       */
+      cbdataUnlock (A);
+      if (match)
+       {
+         debug (28, 3) ("aclCheck: match found, returning %d\n", allow);
+         aclCheckCallback (checklist, allow);
+         return;
+       }
+      checklist->access_list = A->next;
+      /*
+       * Lock the next _acl_access entry
+       */
+      if (A->next)
+       cbdataLock (A->next);
+    }
+  debug (28, 3) ("aclCheck: NO match found, returning %d\n", allow != ACCESS_DENIED ? ACCESS_DENIED : ACCESS_ALLOWED);
+  aclCheckCallback (checklist, allow != ACCESS_DENIED ? ACCESS_DENIED : ACCESS_ALLOWED);
 }
 
 void
-aclChecklistFree(aclCheck_t * checklist)
+aclChecklistFree (aclCheck_t * checklist)
 {
-    if (checklist->request)
-       requestUnlink(checklist->request);
-    checklist->request = NULL;
-    if (checklist->conn) {
-       cbdataUnlock(checklist->conn);
-       checklist->conn = NULL;
+  if (checklist->request)
+    requestUnlink (checklist->request);
+  checklist->request = NULL;
+  if (checklist->conn)
+    {
+      cbdataUnlock (checklist->conn);
+      checklist->conn = NULL;
     }
-    cbdataFree(checklist);
+  cbdataFree (checklist);
 }
 
 static void
-aclCheckCallback(aclCheck_t * checklist, allow_t answer)
-{
-    debug(28, 3) ("aclCheckCallback: answer=%d\n", answer);
-    /* During reconfigure, we can end up not finishing call sequences into the auth code */
-    if (checklist->auth_user_request) {
-       /* the checklist lock */
-       authenticateAuthUserRequestUnlock(checklist->auth_user_request);
-       /* it might have been connection based */
-       assert(checklist->conn);
-       checklist->conn->auth_user_request = NULL;
-       checklist->conn->auth_type = AUTH_BROKEN;
-       checklist->auth_user_request = NULL;
-    }
-    if (cbdataValid(checklist->callback_data))
-       checklist->callback(answer, checklist->callback_data);
-    cbdataUnlock(checklist->callback_data);
-    checklist->callback = NULL;
-    checklist->callback_data = NULL;
-    aclChecklistFree(checklist);
+aclCheckCallback (aclCheck_t * checklist, allow_t answer)
+{
+  debug (28, 3) ("aclCheckCallback: answer=%d\n", answer);
+  /* During reconfigure, we can end up not finishing call sequences into the auth code */
+  if (checklist->auth_user_request)
+    {
+      /* the checklist lock */
+      authenticateAuthUserRequestUnlock (checklist->auth_user_request);
+      /* it might have been connection based */
+      assert (checklist->conn);
+      checklist->conn->auth_user_request = NULL;
+      checklist->conn->auth_type = AUTH_BROKEN;
+      checklist->auth_user_request = NULL;
+    }
+  if (cbdataValid (checklist->callback_data))
+    checklist->callback (answer, checklist->callback_data);
+  cbdataUnlock (checklist->callback_data);
+  checklist->callback = NULL;
+  checklist->callback_data = NULL;
+  aclChecklistFree (checklist);
 }
 
 #if USE_IDENT
 static void
-aclLookupIdentDone(const char *ident, void *data)
+aclLookupIdentDone (const char *ident, void *data)
 {
-    aclCheck_t *checklist = data;
-    if (ident) {
-       xstrncpy(checklist->rfc931, ident, USER_IDENT_SZ);
+  aclCheck_t *checklist = data;
+  if (ident)
+    {
+      xstrncpy (checklist->rfc931, ident, USER_IDENT_SZ);
 #if DONT
-       xstrncpy(checklist->request->authuser, ident, USER_IDENT_SZ);
+      xstrncpy (checklist->request->authuser, ident, USER_IDENT_SZ);
 #endif
-    } else {
-       xstrncpy(checklist->rfc931, dash_str, USER_IDENT_SZ);
     }
-    /*
-     * Cache the ident result in the connection, to avoid redoing ident lookup
-     * over and over on persistent connections
-     */
-    if (cbdataValid(checklist->conn) && !checklist->conn->rfc931[0])
-       xstrncpy(checklist->conn->rfc931, checklist->rfc931, USER_IDENT_SZ);
-    aclCheck(checklist);
+  else
+    {
+      xstrncpy (checklist->rfc931, dash_str, USER_IDENT_SZ);
+    }
+  /*
+   * Cache the ident result in the connection, to avoid redoing ident lookup
+   * over and over on persistent connections
+   */
+  if (cbdataValid (checklist->conn) && !checklist->conn->rfc931[0])
+    xstrncpy (checklist->conn->rfc931, checklist->rfc931, USER_IDENT_SZ);
+  aclCheck (checklist);
 }
 #endif
 
 static void
-aclLookupDstIPDone(const ipcache_addrs * ia, void *data)
+aclLookupDstIPDone (const ipcache_addrs * ia, void *data)
 {
-    aclCheck_t *checklist = data;
-    checklist->state[ACL_DST_IP] = ACL_LOOKUP_DONE;
-    aclCheck(checklist);
+  aclCheck_t *checklist = data;
+  checklist->state[ACL_DST_IP] = ACL_LOOKUP_DONE;
+  aclCheck (checklist);
 }
 
 static void
-aclLookupDstIPforASNDone(const ipcache_addrs * ia, void *data)
+aclLookupDstIPforASNDone (const ipcache_addrs * ia, void *data)
 {
-    aclCheck_t *checklist = data;
-    checklist->state[ACL_DST_ASN] = ACL_LOOKUP_DONE;
-    aclCheck(checklist);
+  aclCheck_t *checklist = data;
+  checklist->state[ACL_DST_ASN] = ACL_LOOKUP_DONE;
+  aclCheck (checklist);
 }
 
 static void
-aclLookupSrcFQDNDone(const char *fqdn, void *data)
+aclLookupSrcFQDNDone (const char *fqdn, void *data)
 {
-    aclCheck_t *checklist = data;
-    checklist->state[ACL_SRC_DOMAIN] = ACL_LOOKUP_DONE;
-    aclCheck(checklist);
+  aclCheck_t *checklist = data;
+  checklist->state[ACL_SRC_DOMAIN] = ACL_LOOKUP_DONE;
+  aclCheck (checklist);
 }
 
 static void
-aclLookupDstFQDNDone(const char *fqdn, void *data)
+aclLookupDstFQDNDone (const char *fqdn, void *data)
 {
-    aclCheck_t *checklist = data;
-    checklist->state[ACL_DST_DOMAIN] = ACL_LOOKUP_DONE;
-    aclCheck(checklist);
+  aclCheck_t *checklist = data;
+  checklist->state[ACL_DST_DOMAIN] = ACL_LOOKUP_DONE;
+  aclCheck (checklist);
 }
 
 static void
-aclLookupProxyAuthDone(void *data, char *result)
-{
-    aclCheck_t *checklist = data;
-    checklist->state[ACL_PROXY_AUTH] = ACL_LOOKUP_DONE;
-    if (result != NULL)
-       fatal("AclLookupProxyAuthDone: Old code floating around somewhere.\nMake clean and if that doesn't work, report a bug to the squid developers.\n");
-    if (!authenticateValidateUser(checklist->auth_user_request) || checklist->conn == NULL) {
-       /* credentials could not be checked either way
-        * restart the whole process */
-       /* OR the connection was closed, there's no way to continue */
-       authenticateAuthUserRequestUnlock(checklist->auth_user_request);
-       if (checklist->conn) {
-           checklist->conn->auth_user_request = NULL;
-           checklist->conn->auth_type = AUTH_BROKEN;
+aclLookupProxyAuthDone (void *data, char *result)
+{
+  aclCheck_t *checklist = data;
+  checklist->state[ACL_PROXY_AUTH] = ACL_LOOKUP_DONE;
+  if (result != NULL)
+    fatal ("AclLookupProxyAuthDone: Old code floating around somewhere.\nMake clean and if that doesn't work, report a bug to the squid developers.\n");
+  if (!authenticateValidateUser (checklist->auth_user_request) || checklist->conn == NULL)
+    {
+      /* credentials could not be checked either way
+       * restart the whole process */
+      /* OR the connection was closed, there's no way to continue */
+      authenticateAuthUserRequestUnlock (checklist->auth_user_request);
+      if (checklist->conn)
+       {
+         checklist->conn->auth_user_request = NULL;
+         checklist->conn->auth_type = AUTH_BROKEN;
        }
-       checklist->auth_user_request = NULL;
+      checklist->auth_user_request = NULL;
     }
-    aclCheck(checklist);
+  aclCheck (checklist);
 }
 
 aclCheck_t *
-aclChecklistCreate(const acl_access * A, request_t * request, const char *ident)
-{
-    int i;
-    aclCheck_t *checklist;
-    checklist = cbdataAlloc(aclCheck_t);
-    checklist->access_list = A;
-    /*
-     * aclCheck() makes sure checklist->access_list is a valid
-     * pointer, so lock it.
-     */
-    cbdataLock(A);
-    if (request != NULL) {
-       checklist->request = requestLink(request);
-       checklist->src_addr = request->client_addr;
-       checklist->my_addr = request->my_addr;
-       checklist->my_port = request->my_port;
-    }
-    for (i = 0; i < ACL_ENUM_MAX; i++)
-       checklist->state[i] = ACL_LOOKUP_NONE;
+aclChecklistCreate (const acl_access * A, request_t * request, const char *ident)
+{
+  int i;
+  aclCheck_t *checklist;
+  checklist = cbdataAlloc (aclCheck_t);
+  checklist->access_list = A;
+  /*
+   * aclCheck() makes sure checklist->access_list is a valid
+   * pointer, so lock it.
+   */
+  cbdataLock (A);
+  if (request != NULL)
+    {
+      checklist->request = requestLink (request);
+      checklist->src_addr = request->client_addr;
+      checklist->my_addr = request->my_addr;
+      checklist->my_port = request->my_port;
+    }
+  for (i = 0; i < ACL_ENUM_MAX; i++)
+    checklist->state[i] = ACL_LOOKUP_NONE;
 #if USE_IDENT
-    if (ident)
-       xstrncpy(checklist->rfc931, ident, USER_IDENT_SZ);
+  if (ident)
+    xstrncpy (checklist->rfc931, ident, USER_IDENT_SZ);
 #endif
-    checklist->auth_user_request = NULL;
-    return checklist;
+  checklist->auth_user_request = NULL;
+  return checklist;
 }
 
 void
-aclNBCheck(aclCheck_t * checklist, PF * callback, void *callback_data)
+aclNBCheck (aclCheck_t * checklist, PF * callback, void *callback_data)
 {
-    checklist->callback = callback;
-    checklist->callback_data = callback_data;
-    cbdataLock(callback_data);
-    aclCheck(checklist);
+  checklist->callback = callback;
+  checklist->callback_data = callback_data;
+  cbdataLock (callback_data);
+  aclCheck (checklist);
 }
 
 
@@ -1991,80 +2177,84 @@ aclNBCheck(aclCheck_t * checklist, PF * callback, void *callback_data)
 /*********************/
 
 static void
-aclDestroyTimeList(acl_time_data * data)
+aclDestroyTimeList (acl_time_data * data)
 {
-    acl_time_data *next = NULL;
-    for (; data; data = next) {
-       next = data->next;
-       memFree(data, MEM_ACL_TIME_DATA);
+  acl_time_data *next = NULL;
+  for (; data; data = next)
+    {
+      next = data->next;
+      memFree (data, MEM_ACL_TIME_DATA);
     }
 }
 
 void
-aclDestroyRegexList(relist * data)
+aclDestroyRegexList (relist * data)
 {
-    relist *next = NULL;
-    for (; data; data = next) {
-       next = data->next;
-       regfree(&data->regex);
-       safe_free(data->pattern);
-       memFree(data, MEM_RELIST);
+  relist *next = NULL;
+  for (; data; data = next)
+    {
+      next = data->next;
+      regfree (&data->regex);
+      safe_free (data->pattern);
+      memFree (data, MEM_RELIST);
     }
 }
 
 static void
-aclFreeIpData(void *p)
+aclFreeIpData (void *p)
 {
-    memFree(p, MEM_ACL_IP_DATA);
+  memFree (p, MEM_ACL_IP_DATA);
 }
 
 static void
-aclFreeUserData(void *data)
+aclFreeUserData (void *data)
 {
-    acl_user_data *d = data;
-    if (d->names)
-       splay_destroy(d->names, xfree);
-    memFree(d, MEM_ACL_USER_DATA);
+  acl_user_data *d = data;
+  if (d->names)
+    splay_destroy (d->names, xfree);
+  memFree (d, MEM_ACL_USER_DATA);
 }
 
 
 void
-aclDestroyAcls(acl ** head)
-{
-    acl *a = NULL;
-    acl *next = NULL;
-    for (a = *head; a; a = next) {
-       next = a->next;
-       debug(28, 3) ("aclDestroyAcls: '%s'\n", a->cfgline);
-       switch (a->type) {
+aclDestroyAcls (acl ** head)
+{
+  acl *a = NULL;
+  acl *next = NULL;
+  for (a = *head; a; a = next)
+    {
+      next = a->next;
+      debug (28, 3) ("aclDestroyAcls: '%s'\n", a->cfgline);
+      switch (a->type)
+       {
        case ACL_SRC_IP:
        case ACL_DST_IP:
        case ACL_MY_IP:
-           splay_destroy(a->data, aclFreeIpData);
-           break;
+         splay_destroy (a->data, aclFreeIpData);
+         break;
 #if USE_ARP_ACL
        case ACL_SRC_ARP:
 #endif
        case ACL_DST_DOMAIN:
        case ACL_SRC_DOMAIN:
-           splay_destroy(a->data, xfree);
-           break;
+         splay_destroy (a->data, xfree);
+         break;
 #if SQUID_SNMP
        case ACL_SNMP_COMMUNITY:
-           wordlistDestroy((wordlist **) & a->data);
-           break;
+         wordlistDestroy ((wordlist **) & a->data);
+         break;
 #endif
 #if USE_IDENT
        case ACL_IDENT:
-           aclFreeUserData(a->data);
-           break;
+         aclFreeUserData (a->data);
+         break;
 #endif
        case ACL_PROXY_AUTH:
-           aclFreeUserData(a->data);
-           break;
+         aclFreeUserData (a->data);
+         break;
        case ACL_TIME:
-           aclDestroyTimeList(a->data);
-           break;
+         aclDestroyTimeList (a->data);
+         break;
 #if USE_IDENT
        case ACL_IDENT_REGEX:
 #endif
@@ -2076,8 +2266,8 @@ aclDestroyAcls(acl ** head)
        case ACL_DST_DOM_REGEX:
        case ACL_REP_MIME_TYPE:
        case ACL_REQ_MIME_TYPE:
-           aclDestroyRegexList(a->data);
-           break;
+         aclDestroyRegexList (a->data);
+         break;
        case ACL_PROTO:
        case ACL_METHOD:
        case ACL_SRC_ASN:
@@ -2086,82 +2276,87 @@ aclDestroyAcls(acl ** head)
        case ACL_NETDB_SRC_RTT:
 #endif
        case ACL_MAXCONN:
-           intlistDestroy((intlist **) & a->data);
-           break;
+         intlistDestroy ((intlist **) & a->data);
+         break;
        case ACL_MAX_USER_IP:
-           aclDestroyUserMaxIP(&a->data);
-           break;
+         aclDestroyUserMaxIP (&a->data);
+         break;
        case ACL_URL_PORT:
        case ACL_MY_PORT:
-           aclDestroyIntRange(a->data);
-           break;
+         aclDestroyIntRange (a->data);
+         break;
        case ACL_NONE:
        case ACL_ENUM_MAX:
-           debug(28, 1) ("aclDestroyAcls: no case for ACL type %d\n", a->type);
-           break;
+         debug (28, 1) ("aclDestroyAcls: no case for ACL type %d\n", a->type);
+         break;
        }
-       safe_free(a->cfgline);
-       memFree(a, MEM_ACL);
+      safe_free (a->cfgline);
+      memFree (a, MEM_ACL);
     }
-    *head = NULL;
+  *head = NULL;
 }
 
 void
-aclDestroyAclList(acl_list ** head)
+aclDestroyAclList (acl_list ** head)
 {
-    acl_list *l;
-    for (l = *head; l; l = *head) {
-       *head = l->next;
-       memFree(l, MEM_ACL_LIST);
+  acl_list *l;
+  for (l = *head; l; l = *head)
+    {
+      *head = l->next;
+      memFree (l, MEM_ACL_LIST);
     }
 }
 
 void
-aclDestroyAccessList(acl_access ** list)
+aclDestroyAccessList (acl_access ** list)
 {
-    acl_access *l = NULL;
-    acl_access *next = NULL;
-    for (l = *list; l; l = next) {
-       debug(28, 3) ("aclDestroyAccessList: '%s'\n", l->cfgline);
-       next = l->next;
-       aclDestroyAclList(&l->acl_list);
-       safe_free(l->cfgline);
-       cbdataFree(l);
+  acl_access *l = NULL;
+  acl_access *next = NULL;
+  for (l = *list; l; l = next)
+    {
+      debug (28, 3) ("aclDestroyAccessList: '%s'\n", l->cfgline);
+      next = l->next;
+      aclDestroyAclList (&l->acl_list);
+      safe_free (l->cfgline);
+      cbdataFree (l);
     }
-    *list = NULL;
+  *list = NULL;
 }
 
 /* maex@space.net (06.09.1996)
  *    destroy an _acl_deny_info_list */
 
 void
-aclDestroyDenyInfoList(acl_deny_info_list ** list)
-{
-    acl_deny_info_list *a = NULL;
-    acl_deny_info_list *a_next = NULL;
-    acl_name_list *l = NULL;
-    acl_name_list *l_next = NULL;
-
-    for (a = *list; a; a = a_next) {
-       for (l = a->acl_list; l; l = l_next) {
-           l_next = l->next;
-           safe_free(l);
+aclDestroyDenyInfoList (acl_deny_info_list ** list)
+{
+  acl_deny_info_list *a = NULL;
+  acl_deny_info_list *a_next = NULL;
+  acl_name_list *l = NULL;
+  acl_name_list *l_next = NULL;
+
+  for (a = *list; a; a = a_next)
+    {
+      for (l = a->acl_list; l; l = l_next)
+       {
+         l_next = l->next;
+         safe_free (l);
        }
-       a_next = a->next;
-       xfree(a->err_page_name);
-       memFree(a, MEM_ACL_DENY_INFO_LIST);
+      a_next = a->next;
+      xfree (a->err_page_name);
+      memFree (a, MEM_ACL_DENY_INFO_LIST);
     }
-    *list = NULL;
+  *list = NULL;
 }
 
 static void
-aclDestroyIntRange(intrange * list)
+aclDestroyIntRange (intrange * list)
 {
-    intrange *w = NULL;
-    intrange *n = NULL;
-    for (w = list; w; w = n) {
-       n = w->next;
-       safe_free(w);
+  intrange *w = NULL;
+  intrange *n = NULL;
+  for (w = list; w; w = n)
+    {
+      n = w->next;
+      safe_free (w);
     }
 }
 
@@ -2171,39 +2366,41 @@ aclDestroyIntRange(intrange * list)
 /* compare two domains */
 
 static int
-aclDomainCompare(const void *a, const void *b)
+aclDomainCompare (const void *a, const void *b)
 {
-    const char *d1;
-    const char *d2;
-    int ret;
-    d1 = b;
-    d2 = a;
-    ret = aclHostDomainCompare(d1, d2);
-    if (ret != 0) {
-       d1 = a;
-       d2 = b;
-       ret = aclHostDomainCompare(d1, d2);
+  const char *d1;
+  const char *d2;
+  int ret;
+  d1 = b;
+  d2 = a;
+  ret = aclHostDomainCompare (d1, d2);
+  if (ret != 0)
+    {
+      d1 = a;
+      d2 = b;
+      ret = aclHostDomainCompare (d1, d2);
     }
-    if (ret == 0) {
-       debug(28, 0) ("WARNING: '%s' is a subdomain of '%s'\n", d1, d2);
-       debug(28, 0) ("WARNING: because of this '%s' is ignored to keep splay tree searching predictable\n", a);
-       debug(28, 0) ("WARNING: You should probably remove '%s' from the ACL named '%s'\n", d1, AclMatchedName);
+  if (ret == 0)
+    {
+      debug (28, 0) ("WARNING: '%s' is a subdomain of '%s'\n", d1, d2);
+      debug (28, 0) ("WARNING: because of this '%s' is ignored to keep splay tree searching predictable\n", a);
+      debug (28, 0) ("WARNING: You should probably remove '%s' from the ACL named '%s'\n", d1, AclMatchedName);
     }
-    return ret;
+  return ret;
 }
 
 /* compare a host and a domain */
 
 static int
-aclHostDomainCompare(const void *a, const void *b)
+aclHostDomainCompare (const void *a, const void *b)
 {
-    const char *h = a;
-    const char *d = b;
-    return matchDomainName(h, d);
+  const char *h = a;
+  const char *d = b;
+  return matchDomainName (h, d);
 }
 
 /* compare two network specs
- * 
+
  * NOTE: this is very similar to aclIpNetworkCompare and it's not yet
  * clear whether this OK. The problem could be with when a network
  * is a subset of the other networks:
@@ -2216,204 +2413,214 @@ aclHostDomainCompare(const void *a, const void *b)
 /* compare an address and a network spec */
 
 static int
-aclIpNetworkCompare(const void *a, const void *b)
-{
-    struct in_addr A = *(const struct in_addr *) a;
-    const acl_ip_data *q = b;
-    const struct in_addr B = q->addr1;
-    const struct in_addr C = q->addr2;
-    int rc = 0;
-    A.s_addr &= q->mask.s_addr;        /* apply netmask */
-    if (C.s_addr == 0) {       /* single address check */
-       if (ntohl(A.s_addr) > ntohl(B.s_addr))
-           rc = 1;
-       else if (ntohl(A.s_addr) < ntohl(B.s_addr))
-           rc = -1;
-       else
-           rc = 0;
-    } else {                   /* range address check */
-       if (ntohl(A.s_addr) > ntohl(C.s_addr))
-           rc = 1;
-       else if (ntohl(A.s_addr) < ntohl(B.s_addr))
-           rc = -1;
-       else
-           rc = 0;
-    }
-    return rc;
+aclIpNetworkCompare (const void *a, const void *b)
+{
+  struct in_addr A = *(const struct in_addr *) a;
+  const acl_ip_data *q = b;
+  const struct in_addr B = q->addr1;
+  const struct in_addr C = q->addr2;
+  int rc = 0;
+  A.s_addr &= q->mask.s_addr;  /* apply netmask */
+  if (C.s_addr == 0)
+    {                          /* single address check */
+      if (ntohl (A.s_addr) > ntohl (B.s_addr))
+       rc = 1;
+      else if (ntohl (A.s_addr) < ntohl (B.s_addr))
+       rc = -1;
+      else
+       rc = 0;
+    }
+  else
+    {                          /* range address check */
+      if (ntohl (A.s_addr) > ntohl (C.s_addr))
+       rc = 1;
+      else if (ntohl (A.s_addr) < ntohl (B.s_addr))
+       rc = -1;
+      else
+       rc = 0;
+    }
+  return rc;
 }
 
 static void
-aclDumpUserListWalkee(void *node_data, void *outlist)
+aclDumpUserListWalkee (void *node_data, void *outlist)
 {
-    /* outlist is really a wordlist ** */
-    wordlistAdd(outlist, node_data);
+  /* outlist is really a wordlist ** */
+  wordlistAdd (outlist, node_data);
 }
 
 static wordlist *
-aclDumpUserList(acl_user_data * data)
-{
-    wordlist *wl = NULL;
-    if (data->flags.case_insensitive)
-       wordlistAdd(&wl, "-i");
-    /* damn this is VERY inefficient for long ACL lists... filling
-     * a wordlist this way costs Sum(1,N) iterations. For instance
-     * a 1000-elements list will be filled in 499500 iterations.
-     */
-    if (data->flags.required)
-       wordlistAdd(&wl, "REQUIRED");
-    else if (data->names)
-       splay_walk(data->names, aclDumpUserListWalkee, &wl);
-    return wl;
+aclDumpUserList (acl_user_data * data)
+{
+  wordlist *wl = NULL;
+  if (data->flags.case_insensitive)
+    wordlistAdd (&wl, "-i");
+  /* damn this is VERY inefficient for long ACL lists... filling
+   * a wordlist this way costs Sum(1,N) iterations. For instance
+   * a 1000-elements list will be filled in 499500 iterations.
+   */
+  if (data->flags.required)
+    wordlistAdd (&wl, "REQUIRED");
+  else if (data->names)
+    splay_walk (data->names, aclDumpUserListWalkee, &wl);
+  return wl;
 }
 
 static void
-aclDumpIpListWalkee(void *node, void *state)
+aclDumpIpListWalkee (void *node, void *state)
 {
-    acl_ip_data *ip = node;
-    MemBuf mb;
-    wordlist **W = state;
-    memBufDefInit(&mb);
-    memBufPrintf(&mb, "%s", inet_ntoa(ip->addr1));
-    if (ip->addr2.s_addr != any_addr.s_addr)
-       memBufPrintf(&mb, "-%s", inet_ntoa(ip->addr2));
-    if (ip->mask.s_addr != no_addr.s_addr)
-       memBufPrintf(&mb, "/%s", inet_ntoa(ip->mask));
-    wordlistAdd(W, mb.buf);
-    memBufClean(&mb);
+  acl_ip_data *ip = node;
+  MemBuf mb;
+  wordlist **W = state;
+  memBufDefInit (&mb);
+  memBufPrintf (&mb, "%s", inet_ntoa (ip->addr1));
+  if (ip->addr2.s_addr != any_addr.s_addr)
+    memBufPrintf (&mb, "-%s", inet_ntoa (ip->addr2));
+  if (ip->mask.s_addr != no_addr.s_addr)
+    memBufPrintf (&mb, "/%s", inet_ntoa (ip->mask));
+  wordlistAdd (W, mb.buf);
+  memBufClean (&mb);
 }
 
 static wordlist *
-aclDumpIpList(void *data)
+aclDumpIpList (void *data)
 {
-    wordlist *w = NULL;
-    splay_walk(data, aclDumpIpListWalkee, &w);
-    return w;
+  wordlist *w = NULL;
+  splay_walk (data, aclDumpIpListWalkee, &w);
+  return w;
 }
 
 static void
-aclDumpDomainListWalkee(void *node, void *state)
+aclDumpDomainListWalkee (void *node, void *state)
 {
-    char *domain = node;
-    wordlistAdd(state, domain);
+  char *domain = node;
+  wordlistAdd (state, domain);
 }
 
 static wordlist *
-aclDumpDomainList(void *data)
+aclDumpDomainList (void *data)
 {
-    wordlist *w = NULL;
-    splay_walk(data, aclDumpDomainListWalkee, &w);
-    return w;
+  wordlist *w = NULL;
+  splay_walk (data, aclDumpDomainListWalkee, &w);
+  return w;
 }
 
 static wordlist *
-aclDumpTimeSpecList(acl_time_data * t)
-{
-    wordlist *W = NULL;
-    char buf[128];
-    while (t != NULL) {
-       snprintf(buf, sizeof(buf), "%c%c%c%c%c%c%c %02d:%02d-%02d:%02d",
-           t->weekbits & ACL_SUNDAY ? 'S' : '-',
-           t->weekbits & ACL_MONDAY ? 'M' : '-',
-           t->weekbits & ACL_TUESDAY ? 'T' : '-',
-           t->weekbits & ACL_WEDNESDAY ? 'W' : '-',
-           t->weekbits & ACL_THURSDAY ? 'H' : '-',
-           t->weekbits & ACL_FRIDAY ? 'F' : '-',
-           t->weekbits & ACL_SATURDAY ? 'A' : '-',
-           t->start / 60, t->start % 60, t->stop / 60, t->stop % 60);
-       wordlistAdd(&W, buf);
-       t = t->next;
-    }
-    return W;
+aclDumpTimeSpecList (acl_time_data * t)
+{
+  wordlist *W = NULL;
+  char buf[128];
+  while (t != NULL)
+    {
+      snprintf (buf, sizeof (buf), "%c%c%c%c%c%c%c %02d:%02d-%02d:%02d",
+               t->weekbits & ACL_SUNDAY ? 'S' : '-',
+               t->weekbits & ACL_MONDAY ? 'M' : '-',
+               t->weekbits & ACL_TUESDAY ? 'T' : '-',
+               t->weekbits & ACL_WEDNESDAY ? 'W' : '-',
+               t->weekbits & ACL_THURSDAY ? 'H' : '-',
+               t->weekbits & ACL_FRIDAY ? 'F' : '-',
+               t->weekbits & ACL_SATURDAY ? 'A' : '-',
+               t->start / 60, t->start % 60, t->stop / 60, t->stop % 60);
+      wordlistAdd (&W, buf);
+      t = t->next;
+    }
+  return W;
 }
 
 static wordlist *
-aclDumpRegexList(relist * data)
+aclDumpRegexList (relist * data)
 {
-    wordlist *W = NULL;
-    while (data != NULL) {
-       wordlistAdd(&W, data->pattern);
-       data = data->next;
+  wordlist *W = NULL;
+  while (data != NULL)
+    {
+      wordlistAdd (&W, data->pattern);
+      data = data->next;
     }
-    return W;
+  return W;
 }
 
 static wordlist *
-aclDumpIntlistList(intlist * data)
+aclDumpIntlistList (intlist * data)
 {
-    wordlist *W = NULL;
-    char buf[32];
-    while (data != NULL) {
-       snprintf(buf, sizeof(buf), "%d", data->i);
-       wordlistAdd(&W, buf);
-       data = data->next;
+  wordlist *W = NULL;
+  char buf[32];
+  while (data != NULL)
+    {
+      snprintf (buf, sizeof (buf), "%d", data->i);
+      wordlistAdd (&W, buf);
+      data = data->next;
     }
-    return W;
+  return W;
 }
 
 static wordlist *
-aclDumpIntRangeList(intrange * data)
+aclDumpIntRangeList (intrange * data)
 {
-    wordlist *W = NULL;
-    char buf[32];
-    while (data != NULL) {
-       if (data->i == data->j)
-           snprintf(buf, sizeof(buf), "%d", data->i);
-       else
-           snprintf(buf, sizeof(buf), "%d-%d", data->i, data->j);
-       wordlistAdd(&W, buf);
-       data = data->next;
+  wordlist *W = NULL;
+  char buf[32];
+  while (data != NULL)
+    {
+      if (data->i == data->j)
+       snprintf (buf, sizeof (buf), "%d", data->i);
+      else
+       snprintf (buf, sizeof (buf), "%d-%d", data->i, data->j);
+      wordlistAdd (&W, buf);
+      data = data->next;
     }
-    return W;
+  return W;
 }
 
 static wordlist *
-aclDumpProtoList(intlist * data)
+aclDumpProtoList (intlist * data)
 {
-    wordlist *W = NULL;
-    while (data != NULL) {
-       wordlistAdd(&W, ProtocolStr[data->i]);
-       data = data->next;
+  wordlist *W = NULL;
+  while (data != NULL)
+    {
+      wordlistAdd (&W, ProtocolStr[data->i]);
+      data = data->next;
     }
-    return W;
+  return W;
 }
 
 static wordlist *
-aclDumpMethodList(intlist * data)
+aclDumpMethodList (intlist * data)
 {
-    wordlist *W = NULL;
-    while (data != NULL) {
-       wordlistAdd(&W, RequestMethodStr[data->i]);
-       data = data->next;
+  wordlist *W = NULL;
+  while (data != NULL)
+    {
+      wordlistAdd (&W, RequestMethodStr[data->i]);
+      data = data->next;
     }
-    return W;
+  return W;
 }
 
 wordlist *
-aclDumpGeneric(const acl * a)
+aclDumpGeneric (const acl * a)
 {
-    debug(28, 3) ("aclDumpGeneric: %s type %d\n", a->name, a->type);
-    switch (a->type) {
+  debug (28, 3) ("aclDumpGeneric: %s type %d\n", a->name, a->type);
+  switch (a->type)
+    {
     case ACL_SRC_IP:
     case ACL_DST_IP:
     case ACL_MY_IP:
-       return aclDumpIpList(a->data);
+      return aclDumpIpList (a->data);
     case ACL_SRC_DOMAIN:
     case ACL_DST_DOMAIN:
-       return aclDumpDomainList(a->data);
+      return aclDumpDomainList (a->data);
 #if SQUID_SNMP
     case ACL_SNMP_COMMUNITY:
-       return wordlistDup(a->data);
+      return wordlistDup (a->data);
 #endif
 #if USE_IDENT
     case ACL_IDENT:
-       return aclDumpUserList(a->data);
+      return aclDumpUserList (a->data);
     case ACL_IDENT_REGEX:
-       return aclDumpRegexList(a->data);
+      return aclDumpRegexList (a->data);
 #endif
     case ACL_PROXY_AUTH:
-       return aclDumpUserList(a->data);
+      return aclDumpUserList (a->data);
     case ACL_TIME:
-       return aclDumpTimeSpecList(a->data);
+      return aclDumpTimeSpecList (a->data);
     case ACL_PROXY_AUTH_REGEX:
     case ACL_URL_REGEX:
     case ACL_URLPATH_REGEX:
@@ -2422,30 +2629,30 @@ aclDumpGeneric(const acl * a)
     case ACL_DST_DOM_REGEX:
     case ACL_REQ_MIME_TYPE:
     case ACL_REP_MIME_TYPE:
-       return aclDumpRegexList(a->data);
+      return aclDumpRegexList (a->data);
     case ACL_SRC_ASN:
     case ACL_MAXCONN:
     case ACL_DST_ASN:
-       return aclDumpIntlistList(a->data);
+      return aclDumpIntlistList (a->data);
     case ACL_MAX_USER_IP:
-       return aclDumpUserMaxIP(a->data);
+      return aclDumpUserMaxIP (a->data);
     case ACL_URL_PORT:
     case ACL_MY_PORT:
-       return aclDumpIntRangeList(a->data);
+      return aclDumpIntRangeList (a->data);
     case ACL_PROTO:
-       return aclDumpProtoList(a->data);
+      return aclDumpProtoList (a->data);
     case ACL_METHOD:
-       return aclDumpMethodList(a->data);
+      return aclDumpMethodList (a->data);
 #if USE_ARP_ACL
     case ACL_SRC_ARP:
-       return aclDumpArpList(a->data);
+      return aclDumpArpList (a->data);
 #endif
     case ACL_NONE:
     case ACL_ENUM_MAX:
-       break;
+      break;
     }
-    debug(28, 1) ("aclDumpGeneric: no case for ACL type %d\n", a->type);
-    return NULL;
+  debug (28, 1) ("aclDumpGeneric: no case for ACL type %d\n", a->type);
+  return NULL;
 }
 
 /*
@@ -2455,18 +2662,20 @@ aclDumpGeneric(const acl * a)
  * otherwise FALSE.
  */
 int
-aclPurgeMethodInUse(acl_access * a)
-{
-    acl_list *b;
-    for (; a; a = a->next) {
-       for (b = a->acl_list; b; b = b->next) {
-           if (ACL_METHOD != b->acl->type)
-               continue;
-           if (aclMatchInteger(b->acl->data, METHOD_PURGE))
-               return 1;
+aclPurgeMethodInUse (acl_access * a)
+{
+  acl_list *b;
+  for (; a; a = a->next)
+    {
+      for (b = a->acl_list; b; b = b->next)
+       {
+         if (ACL_METHOD != b->acl->type)
+           continue;
+         if (aclMatchInteger (b->acl->data, METHOD_PURGE))
+           return 1;
        }
     }
-    return 0;
+  return 0;
 }
 
 
@@ -2519,41 +2728,44 @@ aclPurgeMethodInUse(acl_access * a)
  * it in eth[6].
  */
 static int
-decode_eth(const char *asc, char *eth)
+decode_eth (const char *asc, char *eth)
 {
-    int a1 = 0, a2 = 0, a3 = 0, a4 = 0, a5 = 0, a6 = 0;
-    if (sscanf(asc, "%x:%x:%x:%x:%x:%x", &a1, &a2, &a3, &a4, &a5, &a6) != 6) {
-       debug(28, 0) ("decode_eth: Invalid ethernet address '%s'\n", asc);
-       return 0;               /* This is not valid address */
+  int a1 = 0, a2 = 0, a3 = 0, a4 = 0, a5 = 0, a6 = 0;
+  if (sscanf (asc, "%x:%x:%x:%x:%x:%x", &a1, &a2, &a3, &a4, &a5, &a6) != 6)
+    {
+      debug (28, 0) ("decode_eth: Invalid ethernet address '%s'\n", asc);
+      return 0;                        /* This is not valid address */
     }
-    eth[0] = (u_char) a1;
-    eth[1] = (u_char) a2;
-    eth[2] = (u_char) a3;
-    eth[3] = (u_char) a4;
-    eth[4] = (u_char) a5;
-    eth[5] = (u_char) a6;
-    return 1;
+  eth[0] = (u_char) a1;
+  eth[1] = (u_char) a2;
+  eth[2] = (u_char) a3;
+  eth[3] = (u_char) a4;
+  eth[4] = (u_char) a5;
+  eth[5] = (u_char) a6;
+  return 1;
 }
 
 static acl_arp_data *
-aclParseArpData(const char *t)
+aclParseArpData (const char *t)
 {
-    LOCAL_ARRAY(char, eth, 256);
-    acl_arp_data *q = xcalloc(1, sizeof(acl_arp_data));
-    debug(28, 5) ("aclParseArpData: %s\n", t);
-    if (sscanf(t, "%[0-9a-fA-F:]", eth) != 1) {
-       debug(28, 0) ("aclParseArpData: Bad ethernet address: '%s'\n", t);
-       safe_free(q);
-       return NULL;
+  LOCAL_ARRAY (char, eth, 256);
+  acl_arp_data *q = xcalloc (1, sizeof (acl_arp_data));
+  debug (28, 5) ("aclParseArpData: %s\n", t);
+  if (sscanf (t, "%[0-9a-fA-F:]", eth) != 1)
+    {
+      debug (28, 0) ("aclParseArpData: Bad ethernet address: '%s'\n", t);
+      safe_free (q);
+      return NULL;
     }
-    if (!decode_eth(eth, q->eth)) {
-       debug(28, 0) ("%s line %d: %s\n",
-           cfg_filename, config_lineno, config_input_line);
-       debug(28, 0) ("aclParseArpData: Ignoring invalid ARP acl entry: can't parse '%s'\n", eth);
-       safe_free(q);
-       return NULL;
+  if (!decode_eth (eth, q->eth))
+    {
+      debug (28, 0) ("%s line %d: %s\n",
+                    cfg_filename, config_lineno, config_input_line);
+      debug (28, 0) ("aclParseArpData: Ignoring invalid ARP acl entry: can't parse '%s'\n", eth);
+      safe_free (q);
+      return NULL;
     }
-    return q;
+  return q;
 }
 
 
@@ -2561,15 +2773,16 @@ aclParseArpData(const char *t)
 /* aclParseArpList */
 /*******************/
 static void
-aclParseArpList(void *curlist)
+aclParseArpList (void *curlist)
 {
-    char *t = NULL;
-    splayNode **Top = curlist;
-    acl_arp_data *q = NULL;
-    while ((t = strtokFile())) {
-       if ((q = aclParseArpData(t)) == NULL)
-           continue;
-       *Top = splay_insert(q, *Top, aclArpCompare);
+  char *t = NULL;
+  splayNode **Top = curlist;
+  acl_arp_data *q = NULL;
+  while ((t = strtokFile ()))
+    {
+      if ((q = aclParseArpData (t)) == NULL)
+       continue;
+      *Top = splay_insert (q, *Top, aclArpCompare);
     }
 }
 
@@ -2577,200 +2790,208 @@ aclParseArpList(void *curlist)
 /* aclMatchArp */
 /***************/
 static int
-aclMatchArp(void *dataptr, struct in_addr c)
+aclMatchArp (void *dataptr, struct in_addr c)
 {
 #if defined(_SQUID_LINUX_)
-    struct arpreq arpReq;
-    struct sockaddr_in ipAddr;
-    unsigned char ifbuffer[sizeof(struct ifreq) * 64];
-    struct ifconf ifc;
-    struct ifreq *ifr;
-    int offset;
-    splayNode **Top = dataptr;
-    /*
-     * The linux kernel 2.2 maintains per interface ARP caches and
-     * thus requires an interface name when doing ARP queries.
-     * 
-     * The older 2.0 kernels appear to use a unified ARP cache,
-     * and require an empty interface name
-     * 
-     * To support both, we attempt the lookup with a blank interface
-     * name first. If that does not succeed, the try each interface
-     * in turn
-     */
-    /*
-     * Set up structures for ARP lookup with blank interface name
-     */
-    ipAddr.sin_family = AF_INET;
-    ipAddr.sin_port = 0;
-    ipAddr.sin_addr = c;
-    memset(&arpReq, '\0', sizeof(arpReq));
-    xmemcpy(&arpReq.arp_pa, &ipAddr, sizeof(struct sockaddr_in));
-    /* Query ARP table */
-    if (ioctl(HttpSockets[0], SIOCGARP, &arpReq) != -1) {
-       /* Skip non-ethernet interfaces */
-       if (arpReq.arp_ha.sa_family != ARPHRD_ETHER) {
-           return 0;
-       }
-       debug(28, 4) ("Got address %02x:%02x:%02x:%02x:%02x:%02x\n",
-           arpReq.arp_ha.sa_data[0] & 0xff, arpReq.arp_ha.sa_data[1] & 0xff,
-           arpReq.arp_ha.sa_data[2] & 0xff, arpReq.arp_ha.sa_data[3] & 0xff,
-           arpReq.arp_ha.sa_data[4] & 0xff, arpReq.arp_ha.sa_data[5] & 0xff);
-       /* Do lookup */
-       *Top = splay_splay(&arpReq.arp_ha.sa_data, *Top, aclArpCompare);
-       debug(28, 3) ("aclMatchArp: '%s' %s\n",
-           inet_ntoa(c), splayLastResult ? "NOT found" : "found");
-       return (0 == splayLastResult);
-    }
-    /* lookup list of interface names */
-    ifc.ifc_len = sizeof(ifbuffer);
-    ifc.ifc_buf = ifbuffer;
-    if (ioctl(HttpSockets[0], SIOCGIFCONF, &ifc) < 0) {
-       debug(28, 1) ("Attempt to retrieve interface list failed: %s\n",
-           xstrerror());
-       return 0;
-    }
-    if (ifc.ifc_len > sizeof(ifbuffer)) {
-       debug(28, 1) ("Interface list too long - %d\n", ifc.ifc_len);
-       return 0;
-    }
-    /* Attempt ARP lookup on each interface */
-    offset = 0;
-    while (offset < ifc.ifc_len) {
-       ifr = (struct ifreq *) (ifbuffer + offset);
-       offset += sizeof(*ifr);
-       /* Skip loopback and aliased interfaces */
-       if (0 == strncmp(ifr->ifr_name, "lo", 2))
-           continue;
-       if (NULL != strchr(ifr->ifr_name, ':'))
-           continue;
-       debug(28, 4) ("Looking up ARP address for %s on %s\n", inet_ntoa(c),
-           ifr->ifr_name);
-       /* Set up structures for ARP lookup */
-       ipAddr.sin_family = AF_INET;
-       ipAddr.sin_port = 0;
-       ipAddr.sin_addr = c;
-       memset(&arpReq, '\0', sizeof(arpReq));
-       xmemcpy(&arpReq.arp_pa, &ipAddr, sizeof(struct sockaddr_in));
-       strncpy(arpReq.arp_dev, ifr->ifr_name, sizeof(arpReq.arp_dev) - 1);
-       arpReq.arp_dev[sizeof(arpReq.arp_dev) - 1] = '\0';
-       /* Query ARP table */
-       if (-1 == ioctl(HttpSockets[0], SIOCGARP, &arpReq)) {
-           /*
-            * Query failed.  Do not log failed lookups or "device
-            * not supported"
-            */
-           if (ENXIO == errno)
-               (void) 0;
-           else if (ENODEV == errno)
-               (void) 0;
-           else
-               debug(28, 1) ("ARP query failed: %s: %s\n",
-                   ifr->ifr_name, xstrerror());
-           continue;
+  struct arpreq arpReq;
+  struct sockaddr_in ipAddr;
+  unsigned char ifbuffer[sizeof (struct ifreq) * 64];
+  struct ifconf ifc;
+  struct ifreq *ifr;
+  int offset;
+  splayNode **Top = dataptr;
+  /*
+   * The linux kernel 2.2 maintains per interface ARP caches and
+   * thus requires an interface name when doing ARP queries.
+   * 
+   * The older 2.0 kernels appear to use a unified ARP cache,
+   * and require an empty interface name
+   * 
+   * To support both, we attempt the lookup with a blank interface
+   * name first. If that does not succeed, the try each interface
+   * in turn
+   */
+  /*
+   * Set up structures for ARP lookup with blank interface name
+   */
+  ipAddr.sin_family = AF_INET;
+  ipAddr.sin_port = 0;
+  ipAddr.sin_addr = c;
+  memset (&arpReq, '\0', sizeof (arpReq));
+  xmemcpy (&arpReq.arp_pa, &ipAddr, sizeof (struct sockaddr_in));
+  /* Query ARP table */
+  if (ioctl (HttpSockets[0], SIOCGARP, &arpReq) != -1)
+    {
+      /* Skip non-ethernet interfaces */
+      if (arpReq.arp_ha.sa_family != ARPHRD_ETHER)
+       {
+         return 0;
        }
-       /* Skip non-ethernet interfaces */
-       if (arpReq.arp_ha.sa_family != ARPHRD_ETHER)
-           continue;
-       debug(28, 4) ("Got address %02x:%02x:%02x:%02x:%02x:%02x on %s\n",
-           arpReq.arp_ha.sa_data[0] & 0xff,
-           arpReq.arp_ha.sa_data[1] & 0xff,
-           arpReq.arp_ha.sa_data[2] & 0xff,
-           arpReq.arp_ha.sa_data[3] & 0xff,
-           arpReq.arp_ha.sa_data[4] & 0xff,
-           arpReq.arp_ha.sa_data[5] & 0xff, ifr->ifr_name);
-       /* Do lookup */
-       *Top = splay_splay(&arpReq.arp_ha.sa_data, *Top, aclArpCompare);
-       /* Return if match, otherwise continue to other interfaces */
-       if (0 == splayLastResult) {
-           debug(28, 3) ("aclMatchArp: %s found on %s\n",
-               inet_ntoa(c), ifr->ifr_name);
-           return 1;
+      debug (28, 4) ("Got address %02x:%02x:%02x:%02x:%02x:%02x\n",
+          arpReq.arp_ha.sa_data[0] & 0xff, arpReq.arp_ha.sa_data[1] & 0xff,
+          arpReq.arp_ha.sa_data[2] & 0xff, arpReq.arp_ha.sa_data[3] & 0xff,
+         arpReq.arp_ha.sa_data[4] & 0xff, arpReq.arp_ha.sa_data[5] & 0xff);
+      /* Do lookup */
+      *Top = splay_splay (&arpReq.arp_ha.sa_data, *Top, aclArpCompare);
+      debug (28, 3) ("aclMatchArp: '%s' %s\n",
+                    inet_ntoa (c), splayLastResult ? "NOT found" : "found");
+      return (0 == splayLastResult);
+    }
+  /* lookup list of interface names */
+  ifc.ifc_len = sizeof (ifbuffer);
+  ifc.ifc_buf = ifbuffer;
+  if (ioctl (HttpSockets[0], SIOCGIFCONF, &ifc) < 0)
+    {
+      debug (28, 1) ("Attempt to retrieve interface list failed: %s\n",
+                    xstrerror ());
+      return 0;
+    }
+  if (ifc.ifc_len > sizeof (ifbuffer))
+    {
+      debug (28, 1) ("Interface list too long - %d\n", ifc.ifc_len);
+      return 0;
+    }
+  /* Attempt ARP lookup on each interface */
+  offset = 0;
+  while (offset < ifc.ifc_len)
+    {
+      ifr = (struct ifreq *) (ifbuffer + offset);
+      offset += sizeof (*ifr);
+      /* Skip loopback and aliased interfaces */
+      if (0 == strncmp (ifr->ifr_name, "lo", 2))
+       continue;
+      if (NULL != strchr (ifr->ifr_name, ':'))
+       continue;
+      debug (28, 4) ("Looking up ARP address for %s on %s\n", inet_ntoa (c),
+                    ifr->ifr_name);
+      /* Set up structures for ARP lookup */
+      ipAddr.sin_family = AF_INET;
+      ipAddr.sin_port = 0;
+      ipAddr.sin_addr = c;
+      memset (&arpReq, '\0', sizeof (arpReq));
+      xmemcpy (&arpReq.arp_pa, &ipAddr, sizeof (struct sockaddr_in));
+      strncpy (arpReq.arp_dev, ifr->ifr_name, sizeof (arpReq.arp_dev) - 1);
+      arpReq.arp_dev[sizeof (arpReq.arp_dev) - 1] = '\0';
+      /* Query ARP table */
+      if (-1 == ioctl (HttpSockets[0], SIOCGARP, &arpReq))
+       {
+         /*
+          * Query failed.  Do not log failed lookups or "device
+          * not supported"
+          */
+         if (ENXIO == errno)
+           (void) 0;
+         else if (ENODEV == errno)
+           (void) 0;
+         else
+           debug (28, 1) ("ARP query failed: %s: %s\n",
+                          ifr->ifr_name, xstrerror ());
+         continue;
        }
-       /*
-        * Should we stop looking here? Can the same IP address
-        * exist on multiple interfaces?
-        */
+      /* Skip non-ethernet interfaces */
+      if (arpReq.arp_ha.sa_family != ARPHRD_ETHER)
+       continue;
+      debug (28, 4) ("Got address %02x:%02x:%02x:%02x:%02x:%02x on %s\n",
+                    arpReq.arp_ha.sa_data[0] & 0xff,
+                    arpReq.arp_ha.sa_data[1] & 0xff,
+                    arpReq.arp_ha.sa_data[2] & 0xff,
+                    arpReq.arp_ha.sa_data[3] & 0xff,
+                    arpReq.arp_ha.sa_data[4] & 0xff,
+                    arpReq.arp_ha.sa_data[5] & 0xff, ifr->ifr_name);
+      /* Do lookup */
+      *Top = splay_splay (&arpReq.arp_ha.sa_data, *Top, aclArpCompare);
+      /* Return if match, otherwise continue to other interfaces */
+      if (0 == splayLastResult)
+       {
+         debug (28, 3) ("aclMatchArp: %s found on %s\n",
+                        inet_ntoa (c), ifr->ifr_name);
+         return 1;
+       }
+      /*
+       * Should we stop looking here? Can the same IP address
+       * exist on multiple interfaces?
+       */
     }
 #elif defined(_SQUID_SOLARIS_)
-    struct arpreq arpReq;
-    struct sockaddr_in ipAddr;
-    unsigned char ifbuffer[sizeof(struct ifreq) * 64];
-    struct ifconf ifc;
-    struct ifreq *ifr;
-    int offset;
-    splayNode **Top = dataptr;
-    /*
-     * Set up structures for ARP lookup with blank interface name
-     */
-    ipAddr.sin_family = AF_INET;
-    ipAddr.sin_port = 0;
-    ipAddr.sin_addr = c;
-    memset(&arpReq, '\0', sizeof(arpReq));
-    xmemcpy(&arpReq.arp_pa, &ipAddr, sizeof(struct sockaddr_in));
-    /* Query ARP table */
-    if (ioctl(HttpSockets[0], SIOCGARP, &arpReq) != -1) {
-       /*
-        *  Solaris (at least 2.6/x86) does not use arp_ha.sa_family -
-        * it returns 00:00:00:00:00:00 for non-ethernet media 
-        */
-       if (arpReq.arp_ha.sa_data[0] == 0 &&
-           arpReq.arp_ha.sa_data[1] == 0 &&
-           arpReq.arp_ha.sa_data[2] == 0 &&
-           arpReq.arp_ha.sa_data[3] == 0 &&
-           arpReq.arp_ha.sa_data[4] == 0 && arpReq.arp_ha.sa_data[5] == 0)
-           return 0;
-       debug(28, 4) ("Got address %02x:%02x:%02x:%02x:%02x:%02x\n",
-           arpReq.arp_ha.sa_data[0] & 0xff, arpReq.arp_ha.sa_data[1] & 0xff,
-           arpReq.arp_ha.sa_data[2] & 0xff, arpReq.arp_ha.sa_data[3] & 0xff,
-           arpReq.arp_ha.sa_data[4] & 0xff, arpReq.arp_ha.sa_data[5] & 0xff);
-       /* Do lookup */
-       *Top = splay_splay(&arpReq.arp_ha.sa_data, *Top, aclArpCompare);
-       debug(28, 3) ("aclMatchArp: '%s' %s\n",
-           inet_ntoa(c), splayLastResult ? "NOT found" : "found");
-       return (0 == splayLastResult);
+  struct arpreq arpReq;
+  struct sockaddr_in ipAddr;
+  unsigned char ifbuffer[sizeof (struct ifreq) * 64];
+  struct ifconf ifc;
+  struct ifreq *ifr;
+  int offset;
+  splayNode **Top = dataptr;
+  /*
+   * Set up structures for ARP lookup with blank interface name
+   */
+  ipAddr.sin_family = AF_INET;
+  ipAddr.sin_port = 0;
+  ipAddr.sin_addr = c;
+  memset (&arpReq, '\0', sizeof (arpReq));
+  xmemcpy (&arpReq.arp_pa, &ipAddr, sizeof (struct sockaddr_in));
+  /* Query ARP table */
+  if (ioctl (HttpSockets[0], SIOCGARP, &arpReq) != -1)
+    {
+      /*
+       *  Solaris (at least 2.6/x86) does not use arp_ha.sa_family -
+       * it returns 00:00:00:00:00:00 for non-ethernet media 
+       */
+      if (arpReq.arp_ha.sa_data[0] == 0 &&
+         arpReq.arp_ha.sa_data[1] == 0 &&
+         arpReq.arp_ha.sa_data[2] == 0 &&
+         arpReq.arp_ha.sa_data[3] == 0 &&
+         arpReq.arp_ha.sa_data[4] == 0 && arpReq.arp_ha.sa_data[5] == 0)
+       return 0;
+      debug (28, 4) ("Got address %02x:%02x:%02x:%02x:%02x:%02x\n",
+          arpReq.arp_ha.sa_data[0] & 0xff, arpReq.arp_ha.sa_data[1] & 0xff,
+          arpReq.arp_ha.sa_data[2] & 0xff, arpReq.arp_ha.sa_data[3] & 0xff,
+         arpReq.arp_ha.sa_data[4] & 0xff, arpReq.arp_ha.sa_data[5] & 0xff);
+      /* Do lookup */
+      *Top = splay_splay (&arpReq.arp_ha.sa_data, *Top, aclArpCompare);
+      debug (28, 3) ("aclMatchArp: '%s' %s\n",
+                    inet_ntoa (c), splayLastResult ? "NOT found" : "found");
+      return (0 == splayLastResult);
     }
 #else
-    WRITE ME;
+  WRITE ME;
 #endif
-    /*
-     * Address was not found on any interface
-     */
-    debug(28, 3) ("aclMatchArp: %s NOT found\n", inet_ntoa(c));
-    return 0;
+  /*
+   * Address was not found on any interface
+   */
+  debug (28, 3) ("aclMatchArp: %s NOT found\n", inet_ntoa (c));
+  return 0;
 }
 
 static int
-aclArpCompare(const void *a, const void *b)
+aclArpCompare (const void *a, const void *b)
 {
 #if defined(_SQUID_LINUX_)
-    const unsigned short *d1 = a;
-    const unsigned short *d2 = b;
-    if (d1[0] != d2[0])
-       return (d1[0] > d2[0]) ? 1 : -1;
-    if (d1[1] != d2[1])
-       return (d1[1] > d2[1]) ? 1 : -1;
-    if (d1[2] != d2[2])
-       return (d1[2] > d2[2]) ? 1 : -1;
+  const unsigned short *d1 = a;
+  const unsigned short *d2 = b;
+  if (d1[0] != d2[0])
+    return (d1[0] > d2[0]) ? 1 : -1;
+  if (d1[1] != d2[1])
+    return (d1[1] > d2[1]) ? 1 : -1;
+  if (d1[2] != d2[2])
+    return (d1[2] > d2[2]) ? 1 : -1;
 #elif defined(_SQUID_SOLARIS_)
-    const unsigned char *d1 = a;
-    const unsigned char *d2 = b;
-    if (d1[0] != d2[0])
-       return (d1[0] > d2[0]) ? 1 : -1;
-    if (d1[1] != d2[1])
-       return (d1[1] > d2[1]) ? 1 : -1;
-    if (d1[2] != d2[2])
-       return (d1[2] > d2[2]) ? 1 : -1;
-    if (d1[3] != d2[3])
-       return (d1[3] > d2[3]) ? 1 : -1;
-    if (d1[4] != d2[4])
-       return (d1[4] > d2[4]) ? 1 : -1;
-    if (d1[5] != d2[5])
-       return (d1[5] > d2[5]) ? 1 : -1;
+  const unsigned char *d1 = a;
+  const unsigned char *d2 = b;
+  if (d1[0] != d2[0])
+    return (d1[0] > d2[0]) ? 1 : -1;
+  if (d1[1] != d2[1])
+    return (d1[1] > d2[1]) ? 1 : -1;
+  if (d1[2] != d2[2])
+    return (d1[2] > d2[2]) ? 1 : -1;
+  if (d1[3] != d2[3])
+    return (d1[3] > d2[3]) ? 1 : -1;
+  if (d1[4] != d2[4])
+    return (d1[4] > d2[4]) ? 1 : -1;
+  if (d1[5] != d2[5])
+    return (d1[5] > d2[5]) ? 1 : -1;
 #else
-    WRITE ME;
+  WRITE ME;
 #endif
-    return 0;
+  return 0;
 }
 
 #if UNUSED_CODE
@@ -2823,25 +3044,25 @@ checkARP(u_long ip, char *eth)
 #endif
 
 static void
-aclDumpArpListWalkee(void *node, void *state)
+aclDumpArpListWalkee (void *node, void *state)
 {
-    acl_arp_data *arp = node;
-    wordlist **W = state;
-    static char buf[24];
-    while (*W != NULL)
-       W = &(*W)->next;
-    snprintf(buf, sizeof(buf), "%02x:%02x:%02x:%02x:%02x:%02x",
-       arp->eth[0], arp->eth[1], arp->eth[2], arp->eth[3],
-       arp->eth[4], arp->eth[5]);
-    wordlistAdd(state, buf);
+  acl_arp_data *arp = node;
+  wordlist **W = state;
+  static char buf[24];
+  while (*W != NULL)
+    W = &(*W)->next;
+  snprintf (buf, sizeof (buf), "%02x:%02x:%02x:%02x:%02x:%02x",
+           arp->eth[0], arp->eth[1], arp->eth[2], arp->eth[3],
+           arp->eth[4], arp->eth[5]);
+  wordlistAdd (state, buf);
 }
 
 static wordlist *
-aclDumpArpList(void *data)
+aclDumpArpList (void *data)
 {
-    wordlist *w = NULL;
-    splay_walk(data, aclDumpArpListWalkee, &w);
-    return w;
+  wordlist *w = NULL;
+  splay_walk (data, aclDumpArpListWalkee, &w);
+  return w;
 }
 
 /* ==== END ARP ACL SUPPORT =============================================== */
index 93ed133ce0bbfc09ff70e9583b570008f6171e36..1240e597b25713f6e3fb4edc263bc97b391f3688 100644 (file)
@@ -1,6 +1,6 @@
 
 /*
- * $Id: asn.cc,v 1.71 2001/03/03 10:39:30 hno Exp $
+ * $Id: asn.cc,v 1.72 2001/10/17 10:59:08 adrian Exp $
  *
  * DEBUG: section 53    AS Number handling
  * AUTHOR: Duane Wessels, Kostas Anagnostakis
@@ -40,7 +40,7 @@
 /* BEGIN of definitions for radix tree entries */
 
 /* int in memory with length */
-typedef u_char m_int[1 + sizeof(unsigned int)];
+typedef u_char m_int[1 + sizeof (unsigned int)];
 #define store_m_int(i, m) \
     (i = htonl(i), m[0] = sizeof(m_int), xmemcpy(m+1, &i, sizeof(unsigned int)))
 #define get_m_int(i, m) \
@@ -56,251 +56,274 @@ struct radix_node_head *AS_tree_head;
  * an intlist but it's coded as a structure for future
  * enhancements (e.g. expires)
  */
-struct _as_info {
+struct _as_info
+  {
     intlist *as_number;
     time_t expires;            /* NOTUSED */
-};
+  };
 
-struct _ASState {
+struct _ASState
+  {
     StoreEntry *entry;
     store_client *sc;
     request_t *request;
     int as_number;
     off_t seen;
     off_t offset;
-};
+  };
 
 typedef struct _ASState ASState;
 typedef struct _as_info as_info;
 
 /* entry into the radix tree */
-struct _rtentry {
+struct _rtentry
+  {
     struct radix_node e_nodes[2];
     as_info *e_info;
     m_int e_addr;
     m_int e_mask;
-};
+  };
 
 typedef struct _rtentry rtentry;
 
-static int asnAddNet(char *, int);
-static void asnCacheStart(int as);
+static int asnAddNet (char *, int);
+static void asnCacheStart (int as);
 static STCB asHandleReply;
-static int destroyRadixNode(struct radix_node *rn, void *w);
-static int printRadixNode(struct radix_node *rn, void *w);
-static void asnAclInitialize(acl * acls);
-static void asStateFree(void *data);
-static void destroyRadixNodeInfo(as_info *);
+static int destroyRadixNode (struct radix_node *rn, void *w);
+static int printRadixNode (struct radix_node *rn, void *w);
+static void asnAclInitialize (acl * acls);
+static void asStateFree (void *data);
+static void destroyRadixNodeInfo (as_info *);
 static OBJH asnStats;
 
 /* PUBLIC */
 
 int
-asnMatchIp(void *data, struct in_addr addr)
+asnMatchIp (void *data, struct in_addr addr)
 {
-    unsigned long lh;
-    struct radix_node *rn;
-    as_info *e;
-    m_int m_addr;
-    intlist *a = NULL;
-    intlist *b = NULL;
-    lh = ntohl(addr.s_addr);
-    debug(53, 3) ("asnMatchIp: Called for %s.\n", inet_ntoa(addr));
-
-    if (AS_tree_head == NULL)
-       return 0;
-    if (addr.s_addr == no_addr.s_addr)
-       return 0;
-    if (addr.s_addr == any_addr.s_addr)
-       return 0;
-    store_m_int(lh, m_addr);
-    rn = rn_match(m_addr, AS_tree_head);
-    if (rn == NULL) {
-       debug(53, 3) ("asnMatchIp: Address not in as db.\n");
-       return 0;
-    }
-    debug(53, 3) ("asnMatchIp: Found in db!\n");
-    e = ((rtentry *) rn)->e_info;
-    assert(e);
-    for (a = (intlist *) data; a; a = a->next)
-       for (b = e->as_number; b; b = b->next)
-           if (a->i == b->i) {
-               debug(53, 5) ("asnMatchIp: Found a match!\n");
-               return 1;
-           }
-    debug(53, 5) ("asnMatchIp: AS not in as db.\n");
+  unsigned long lh;
+  struct radix_node *rn;
+  as_info *e;
+  m_int m_addr;
+  intlist *a = NULL;
+  intlist *b = NULL;
+  lh = ntohl (addr.s_addr);
+  debug (53, 3) ("asnMatchIp: Called for %s.\n", inet_ntoa (addr));
+
+  if (AS_tree_head == NULL)
+    return 0;
+  if (addr.s_addr == no_addr.s_addr)
     return 0;
+  if (addr.s_addr == any_addr.s_addr)
+    return 0;
+  store_m_int (lh, m_addr);
+  rn = rn_match (m_addr, AS_tree_head);
+  if (rn == NULL)
+    {
+      debug (53, 3) ("asnMatchIp: Address not in as db.\n");
+      return 0;
+    }
+  debug (53, 3) ("asnMatchIp: Found in db!\n");
+  e = ((rtentry *) rn)->e_info;
+  assert (e);
+  for (a = (intlist *) data; a; a = a->next)
+    for (b = e->as_number; b; b = b->next)
+      if (a->i == b->i)
+       {
+         debug (53, 5) ("asnMatchIp: Found a match!\n");
+         return 1;
+       }
+  debug (53, 5) ("asnMatchIp: AS not in as db.\n");
+  return 0;
 }
 
 static void
-asnAclInitialize(acl * acls)
+asnAclInitialize (acl * acls)
 {
-    acl *a;
-    intlist *i;
-    debug(53, 3) ("asnAclInitialize\n");
-    for (a = acls; a; a = a->next) {
-       if (a->type != ACL_DST_ASN && a->type != ACL_SRC_ASN)
-           continue;
-       for (i = a->data; i; i = i->next)
-           asnCacheStart(i->i);
+  acl *a;
+  intlist *i;
+  debug (53, 3) ("asnAclInitialize\n");
+  for (a = acls; a; a = a->next)
+    {
+      if (a->type != ACL_DST_ASN && a->type != ACL_SRC_ASN)
+       continue;
+      for (i = a->data; i; i = i->next)
+       asnCacheStart (i->i);
     }
 }
 
 /* initialize the radix tree structure */
 
-CBDATA_TYPE(ASState);
+CBDATA_TYPE (ASState);
 void
-asnInit(void)
+asnInit (void)
 {
-    extern int max_keylen;
-    static int inited = 0;
-    max_keylen = 40;
-    CBDATA_INIT_TYPE(ASState);
-    if (0 == inited++)
-       rn_init();
-    rn_inithead((void **) &AS_tree_head, 8);
-    asnAclInitialize(Config.aclList);
-    cachemgrRegister("asndb", "AS Number Database", asnStats, 0, 1);
+  extern int max_keylen;
+  static int inited = 0;
+  max_keylen = 40;
+  CBDATA_INIT_TYPE (ASState);
+  if (0 == inited++)
+    rn_init ();
+  rn_inithead ((void **) &AS_tree_head, 8);
+  asnAclInitialize (Config.aclList);
+  cachemgrRegister ("asndb", "AS Number Database", asnStats, 0, 1);
 }
 
 void
-asnFreeMemory(void)
+asnFreeMemory (void)
 {
-    rn_walktree(AS_tree_head, destroyRadixNode, AS_tree_head);
-    destroyRadixNode((struct radix_node *) 0, (void *) AS_tree_head);
+  rn_walktree (AS_tree_head, destroyRadixNode, AS_tree_head);
+  destroyRadixNode ((struct radix_node *) 0, (void *) AS_tree_head);
 }
 
 static void
-asnStats(StoreEntry * sentry)
+asnStats (StoreEntry * sentry)
 {
-    storeAppendPrintf(sentry, "Address    \tAS Numbers\n");
-    rn_walktree(AS_tree_head, printRadixNode, sentry);
+  storeAppendPrintf (sentry, "Address    \tAS Numbers\n");
+  rn_walktree (AS_tree_head, printRadixNode, sentry);
 }
 
 /* PRIVATE */
 
 
 static void
-asnCacheStart(int as)
+asnCacheStart (int as)
 {
-    LOCAL_ARRAY(char, asres, 4096);
-    StoreEntry *e;
-    request_t *req;
-    ASState *asState;
-    asState = cbdataAlloc(ASState);
-    debug(53, 3) ("asnCacheStart: AS %d\n", as);
-    snprintf(asres, 4096, "whois://%s/!gAS%d", Config.as_whois_server, as);
-    asState->as_number = as;
-    req = urlParse(METHOD_GET, asres);
-    assert(NULL != req);
-    asState->request = requestLink(req);
-    if ((e = storeGetPublic(asres, METHOD_GET)) == NULL) {
-       e = storeCreateEntry(asres, asres, null_request_flags, METHOD_GET);
-       asState->sc = storeClientListAdd(e, asState);
-       fwdStart(-1, e, asState->request);
-    } else {
-       storeLockObject(e);
-       asState->sc = storeClientListAdd(e, asState);
+  LOCAL_ARRAY (char, asres, 4096);
+  StoreEntry *e;
+  request_t *req;
+  ASState *asState;
+  asState = cbdataAlloc (ASState);
+  debug (53, 3) ("asnCacheStart: AS %d\n", as);
+  snprintf (asres, 4096, "whois://%s/!gAS%d", Config.as_whois_server, as);
+  asState->as_number = as;
+  req = urlParse (METHOD_GET, asres);
+  assert (NULL != req);
+  asState->request = requestLink (req);
+  if ((e = storeGetPublic (asres, METHOD_GET)) == NULL)
+    {
+      e = storeCreateEntry (asres, asres, null_request_flags, METHOD_GET);
+      asState->sc = storeClientListAdd (e, asState);
+      fwdStart (-1, e, asState->request);
+    }
+  else
+    {
+      storeLockObject (e);
+      asState->sc = storeClientListAdd (e, asState);
     }
-    asState->entry = e;
-    asState->seen = 0;
-    asState->offset = 0;
-    storeClientCopy(asState->sc,
-       e,
-       asState->seen,
-       asState->offset,
-       4096,
-       memAllocate(MEM_4K_BUF),
-       asHandleReply,
-       asState);
+  asState->entry = e;
+  asState->seen = 0;
+  asState->offset = 0;
+  storeClientCopy (asState->sc,
+                  e,
+                  asState->seen,
+                  asState->offset,
+                  4096,
+                  memAllocate (MEM_4K_BUF),
+                  asHandleReply,
+                  asState);
 }
 
 static void
-asHandleReply(void *data, char *buf, ssize_t size)
+asHandleReply (void *data, char *buf, ssize_t size)
 {
-    ASState *asState = data;
-    StoreEntry *e = asState->entry;
-    char *s;
-    char *t;
-    debug(53, 3) ("asHandleReply: Called with size=%d\n", size);
-    if (EBIT_TEST(e->flags, ENTRY_ABORTED)) {
-       memFree(buf, MEM_4K_BUF);
-       asStateFree(asState);
-       return;
+  ASState *asState = data;
+  StoreEntry *e = asState->entry;
+  char *s;
+  char *t;
+  debug (53, 3) ("asHandleReply: Called with size=%d\n", size);
+  if (EBIT_TEST (e->flags, ENTRY_ABORTED))
+    {
+      memFree (buf, MEM_4K_BUF);
+      asStateFree (asState);
+      return;
     }
-    if (size == 0 && e->mem_obj->inmem_hi > 0) {
-       memFree(buf, MEM_4K_BUF);
-       asStateFree(asState);
-       return;
-    } else if (size < 0) {
-       debug(53, 1) ("asHandleReply: Called with size=%d\n", size);
-       memFree(buf, MEM_4K_BUF);
-       asStateFree(asState);
-       return;
-    } else if (HTTP_OK != e->mem_obj->reply->sline.status) {
-       debug(53, 1) ("WARNING: AS %d whois request failed\n",
-           asState->as_number);
-       memFree(buf, MEM_4K_BUF);
-       asStateFree(asState);
-       return;
+  if (size == 0 && e->mem_obj->inmem_hi > 0)
+    {
+      memFree (buf, MEM_4K_BUF);
+      asStateFree (asState);
+      return;
     }
-    s = buf;
-    while (s - buf < size && *s != '\0') {
-       while (*s && xisspace(*s))
-           s++;
-       for (t = s; *t; t++) {
-           if (xisspace(*t))
-               break;
-       }
-       if (*t == '\0') {
-           /* oof, word should continue on next block */
+  else if (size < 0)
+    {
+      debug (53, 1) ("asHandleReply: Called with size=%d\n", size);
+      memFree (buf, MEM_4K_BUF);
+      asStateFree (asState);
+      return;
+    }
+  else if (HTTP_OK != e->mem_obj->reply->sline.status)
+    {
+      debug (53, 1) ("WARNING: AS %d whois request failed\n",
+                    asState->as_number);
+      memFree (buf, MEM_4K_BUF);
+      asStateFree (asState);
+      return;
+    }
+  s = buf;
+  while (s - buf < size && *s != '\0')
+    {
+      while (*s && xisspace (*s))
+       s++;
+      for (t = s; *t; t++)
+       {
+         if (xisspace (*t))
            break;
        }
-       *t = '\0';
-       debug(53, 3) ("asHandleReply: AS# %s (%d)\n", s, asState->as_number);
-       asnAddNet(s, asState->as_number);
-       s = t + 1;
+      if (*t == '\0')
+       {
+         /* oof, word should continue on next block */
+         break;
+       }
+      *t = '\0';
+      debug (53, 3) ("asHandleReply: AS# %s (%d)\n", s, asState->as_number);
+      asnAddNet (s, asState->as_number);
+      s = t + 1;
+    }
+  asState->seen = asState->offset + size;
+  asState->offset += (s - buf);
+  debug (53, 3) ("asState->seen = %d, asState->offset = %d\n",
+                asState->seen, asState->offset);
+  if (e->store_status == STORE_PENDING)
+    {
+      debug (53, 3) ("asHandleReply: store_status == STORE_PENDING: %s\n", storeUrl (e));
+      storeClientCopy (asState->sc,
+                      e,
+                      asState->seen,
+                      asState->offset,
+                      4096,
+                      buf,
+                      asHandleReply,
+                      asState);
+    }
+  else if (asState->seen < e->mem_obj->inmem_hi)
+    {
+      debug (53, 3) ("asHandleReply: asState->seen < e->mem_obj->inmem_hi %s\n", storeUrl (e));
+      storeClientCopy (asState->sc,
+                      e,
+                      asState->seen,
+                      asState->offset,
+                      4096,
+                      buf,
+                      asHandleReply,
+                      asState);
     }
-    asState->seen = asState->offset + size;
-    asState->offset += (s - buf);
-    debug(53, 3) ("asState->seen = %d, asState->offset = %d\n",
-       asState->seen, asState->offset);
-    if (e->store_status == STORE_PENDING) {
-       debug(53, 3) ("asHandleReply: store_status == STORE_PENDING: %s\n", storeUrl(e));
-       storeClientCopy(asState->sc,
-           e,
-           asState->seen,
-           asState->offset,
-           4096,
-           buf,
-           asHandleReply,
-           asState);
-    } else if (asState->seen < e->mem_obj->inmem_hi) {
-       debug(53, 3) ("asHandleReply: asState->seen < e->mem_obj->inmem_hi %s\n", storeUrl(e));
-       storeClientCopy(asState->sc,
-           e,
-           asState->seen,
-           asState->offset,
-           4096,
-           buf,
-           asHandleReply,
-           asState);
-    } else {
-       debug(53, 3) ("asHandleReply: Done: %s\n", storeUrl(e));
-       memFree(buf, MEM_4K_BUF);
-       asStateFree(asState);
+  else
+    {
+      debug (53, 3) ("asHandleReply: Done: %s\n", storeUrl (e));
+      memFree (buf, MEM_4K_BUF);
+      asStateFree (asState);
     }
 }
 
 static void
-asStateFree(void *data)
+asStateFree (void *data)
 {
-    ASState *asState = data;
-    debug(53, 3) ("asnStateFree: %s\n", storeUrl(asState->entry));
-    storeUnregister(asState->sc, asState->entry, asState);
-    storeUnlockObject(asState->entry);
-    requestUnlink(asState->request);
-    cbdataFree(asState);
+  ASState *asState = data;
+  debug (53, 3) ("asnStateFree: %s\n", storeUrl (asState->entry));
+  storeUnregister (asState->sc, asState->entry, asState);
+  storeUnlockObject (asState->entry);
+  requestUnlink (asState->request);
+  cbdataFree (asState);
 }
 
 
@@ -308,137 +331,148 @@ asStateFree(void *data)
  * number */
 
 static int
-asnAddNet(char *as_string, int as_number)
+asnAddNet (char *as_string, int as_number)
 {
-    rtentry *e = xmalloc(sizeof(rtentry));
-    struct radix_node *rn;
-    char dbg1[32], dbg2[32];
-    intlist **Tail = NULL;
-    intlist *q = NULL;
-    as_info *asinfo = NULL;
-    struct in_addr in_a, in_m;
-    long mask, addr;
-    char *t;
-    int bitl;
-
-    t = strchr(as_string, '/');
-    if (t == NULL) {
-       debug(53, 3) ("asnAddNet: failed, invalid response from whois server.\n");
-       return 0;
+  rtentry *e = xmalloc (sizeof (rtentry));
+  struct radix_node *rn;
+  char dbg1[32], dbg2[32];
+  intlist **Tail = NULL;
+  intlist *q = NULL;
+  as_info *asinfo = NULL;
+  struct in_addr in_a, in_m;
+  long mask, addr;
+  char *t;
+  int bitl;
+
+  t = strchr (as_string, '/');
+  if (t == NULL)
+    {
+      debug (53, 3) ("asnAddNet: failed, invalid response from whois server.\n");
+      return 0;
     }
-    *t = '\0';
-    addr = inet_addr(as_string);
-    bitl = atoi(t + 1);
-    if (bitl < 0)
-       bitl = 0;
-    if (bitl > 32)
-       bitl = 32;
-    mask = bitl ? 0xfffffffful << (32 - bitl) : 0;
-
-    in_a.s_addr = addr;
-    in_m.s_addr = mask;
-    xstrncpy(dbg1, inet_ntoa(in_a), 32);
-    xstrncpy(dbg2, inet_ntoa(in_m), 32);
-    addr = ntohl(addr);
-    /*mask = ntohl(mask); */
-    debug(53, 3) ("asnAddNet: called for %s/%s\n", dbg1, dbg2);
-    memset(e, '\0', sizeof(rtentry));
-    store_m_int(addr, e->e_addr);
-    store_m_int(mask, e->e_mask);
-    rn = rn_lookup(e->e_addr, e->e_mask, AS_tree_head);
-    if (rn != NULL) {
-       asinfo = ((rtentry *) rn)->e_info;
-       if (intlistFind(asinfo->as_number, as_number)) {
-           debug(53, 3) ("asnAddNet: Ignoring repeated network '%s/%d' for AS %d\n",
-               dbg1, bitl, as_number);
-       } else {
-           debug(53, 3) ("asnAddNet: Warning: Found a network with multiple AS numbers!\n");
-           for (Tail = &asinfo->as_number; *Tail; Tail = &(*Tail)->next);
-           q = xcalloc(1, sizeof(intlist));
-           q->i = as_number;
-           *(Tail) = q;
-           e->e_info = asinfo;
+  *t = '\0';
+  addr = inet_addr (as_string);
+  bitl = atoi (t + 1);
+  if (bitl < 0)
+    bitl = 0;
+  if (bitl > 32)
+    bitl = 32;
+  mask = bitl ? 0xfffffffful << (32 - bitl) : 0;
+
+  in_a.s_addr = addr;
+  in_m.s_addr = mask;
+  xstrncpy (dbg1, inet_ntoa (in_a), 32);
+  xstrncpy (dbg2, inet_ntoa (in_m), 32);
+  addr = ntohl (addr);
+  /*mask = ntohl(mask); */
+  debug (53, 3) ("asnAddNet: called for %s/%s\n", dbg1, dbg2);
+  memset (e, '\0', sizeof (rtentry));
+  store_m_int (addr, e->e_addr);
+  store_m_int (mask, e->e_mask);
+  rn = rn_lookup (e->e_addr, e->e_mask, AS_tree_head);
+  if (rn != NULL)
+    {
+      asinfo = ((rtentry *) rn)->e_info;
+      if (intlistFind (asinfo->as_number, as_number))
+       {
+         debug (53, 3) ("asnAddNet: Ignoring repeated network '%s/%d' for AS %d\n",
+                        dbg1, bitl, as_number);
        }
-    } else {
-       q = xcalloc(1, sizeof(intlist));
-       q->i = as_number;
-       asinfo = xmalloc(sizeof(asinfo));
-       asinfo->as_number = q;
-       rn = rn_addroute(e->e_addr, e->e_mask, AS_tree_head, e->e_nodes);
-       rn = rn_match(e->e_addr, AS_tree_head);
-       assert(rn != NULL);
-       e->e_info = asinfo;
+      else
+       {
+         debug (53, 3) ("asnAddNet: Warning: Found a network with multiple AS numbers!\n");
+         for (Tail = &asinfo->as_number; *Tail; Tail = &(*Tail)->next);
+         q = xcalloc (1, sizeof (intlist));
+         q->i = as_number;
+         *(Tail) = q;
+         e->e_info = asinfo;
+       }
+    }
+  else
+    {
+      q = xcalloc (1, sizeof (intlist));
+      q->i = as_number;
+      asinfo = xmalloc (sizeof (asinfo));
+      asinfo->as_number = q;
+      rn = rn_addroute (e->e_addr, e->e_mask, AS_tree_head, e->e_nodes);
+      rn = rn_match (e->e_addr, AS_tree_head);
+      assert (rn != NULL);
+      e->e_info = asinfo;
     }
-    if (rn == 0) {
-       xfree(e);
-       debug(53, 3) ("asnAddNet: Could not add entry.\n");
-       return 0;
+  if (rn == 0)
+    {
+      xfree (e);
+      debug (53, 3) ("asnAddNet: Could not add entry.\n");
+      return 0;
     }
-    e->e_info = asinfo;
-    return 1;
+  e->e_info = asinfo;
+  return 1;
 }
 
 static int
-destroyRadixNode(struct radix_node *rn, void *w)
+destroyRadixNode (struct radix_node *rn, void *w)
 {
-    struct radix_node_head *rnh = (struct radix_node_head *) w;
-
-    if (rn && !(rn->rn_flags & RNF_ROOT)) {
-       rtentry *e = (rtentry *) rn;
-       rn = rn_delete(rn->rn_key, rn->rn_mask, rnh);
-       if (rn == 0)
-           debug(53, 3) ("destroyRadixNode: internal screwup\n");
-       destroyRadixNodeInfo(e->e_info);
-       xfree(rn);
+  struct radix_node_head *rnh = (struct radix_node_head *) w;
+
+  if (rn && !(rn->rn_flags & RNF_ROOT))
+    {
+      rtentry *e = (rtentry *) rn;
+      rn = rn_delete (rn->rn_key, rn->rn_mask, rnh);
+      if (rn == 0)
+       debug (53, 3) ("destroyRadixNode: internal screwup\n");
+      destroyRadixNodeInfo (e->e_info);
+      xfree (rn);
     }
-    return 1;
+  return 1;
 }
 
 static void
-destroyRadixNodeInfo(as_info * e_info)
+destroyRadixNodeInfo (as_info * e_info)
 {
-    intlist *prev = NULL;
-    intlist *data = e_info->as_number;
-    while (data) {
-       prev = data;
-       data = data->next;
-       xfree(prev);
+  intlist *prev = NULL;
+  intlist *data = e_info->as_number;
+  while (data)
+    {
+      prev = data;
+      data = data->next;
+      xfree (prev);
     }
-    xfree(data);
+  xfree (data);
 }
 
 static int
-mask_len(int mask)
+mask_len (u_long mask)
 {
-    int len = 32;
-    if (mask == 0)
-       return 0;
-    while ((mask & 1) == 0) {
-       len--;
-       mask >>= 1;
+  int len = 32;
+  if (mask == 0)
+    return 0;
+  while ((mask & 1) == 0)
+    {
+      len--;
+      mask >>= 1;
     }
-    return len;
+  return len;
 }
 
 static int
-printRadixNode(struct radix_node *rn, void *w)
+printRadixNode (struct radix_node *rn, void *w)
 {
-    StoreEntry *sentry = w;
-    rtentry *e = (rtentry *) rn;
-    intlist *q;
-    as_info *asinfo;
-    struct in_addr addr;
-    struct in_addr mask;
-    assert(e);
-    assert(e->e_info);
-    (void) get_m_int(addr.s_addr, e->e_addr);
-    (void) get_m_int(mask.s_addr, e->e_mask);
-    storeAppendPrintf(sentry, "%15s/%d\t",
-       inet_ntoa(addr), mask_len(ntohl(mask.s_addr)));
-    asinfo = e->e_info;
-    assert(asinfo->as_number);
-    for (q = asinfo->as_number; q; q = q->next)
-       storeAppendPrintf(sentry, " %d", q->i);
-    storeAppendPrintf(sentry, "\n");
-    return 0;
+  StoreEntry *sentry = w;
+  rtentry *e = (rtentry *) rn;
+  intlist *q;
+  as_info *asinfo;
+  struct in_addr addr;
+  struct in_addr mask;
+  assert (e);
+  assert (e->e_info);
+  (void) get_m_int (addr.s_addr, e->e_addr);
+  (void) get_m_int (mask.s_addr, e->e_mask);
+  storeAppendPrintf (sentry, "%15s/%d\t",
+                    inet_ntoa (addr), mask_len (ntohl (mask.s_addr)));
+  asinfo = e->e_info;
+  assert (asinfo->as_number);
+  for (q = asinfo->as_number; q; q = q->next)
+    storeAppendPrintf (sentry, " %d", q->i);
+  storeAppendPrintf (sentry, "\n");
+  return 0;
 }
index 474cce6ea5d65f00de73f27df7f8be10bde3f074..802dd941d8b7e32a09115b5f993a6ce5dec01ea7 100644 (file)
@@ -1,6 +1,6 @@
 
 /*
- * $Id: enums.h,v 1.196 2001/10/08 16:18:32 hno Exp $
+ * $Id: enums.h,v 1.197 2001/10/17 10:59:08 adrian Exp $
  *
  *
  * SQUID Web Proxy Cache          http://www.squid-cache.org/
@@ -34,7 +34,8 @@
 #ifndef SQUID_ENUMS_H
 #define SQUID_ENUMS_H
 
-typedef enum {
+typedef enum
+  {
     LOG_TAG_NONE,
     LOG_TCP_HIT,
     LOG_TCP_MISS,
@@ -58,9 +59,11 @@ typedef enum {
     LOG_UDP_MISS_NOFETCH,
     LOG_ICP_QUERY,
     LOG_TYPE_MAX
-} log_type;
+  }
+log_type;
 
-typedef enum {
+typedef enum
+  {
     ERR_NONE,
     ERR_READ_TIMEOUT,
     ERR_LIFETIME_EXP,
@@ -93,9 +96,11 @@ typedef enum {
     ERR_ONLY_IF_CACHED_MISS,   /* failure to satisfy only-if-cached request */
     ERR_TOO_BIG,
     ERR_MAX
-} err_type;
+  }
+err_type;
 
-typedef enum {
+typedef enum
+  {
     ACL_NONE,
     ACL_SRC_IP,
     ACL_DST_IP,
@@ -134,52 +139,64 @@ typedef enum {
     ACL_REP_MIME_TYPE,
     ACL_MAX_USER_IP,
     ACL_ENUM_MAX
-} squid_acl;
+  }
+squid_acl;
 
-typedef enum {
+typedef enum
+  {
     ACL_LOOKUP_NONE,
     ACL_LOOKUP_NEEDED,
     ACL_LOOKUP_PENDING,
     ACL_LOOKUP_DONE,
-    ACL_PROXY_AUTH_NEEDED,
-} acl_lookup_state;
+    ACL_PROXY_AUTH_NEEDED
+  }
+acl_lookup_state;
 
-enum {
+enum
+  {
     FD_NONE,
     FD_LOG,
     FD_FILE,
     FD_SOCKET,
     FD_PIPE,
     FD_UNKNOWN
-};
+  };
 
-enum {
+enum
+  {
     FD_READ,
     FD_WRITE
-};
+  };
 
-typedef enum {
+typedef enum
+  {
     PEER_NONE,
     PEER_SIBLING,
     PEER_PARENT,
     PEER_MULTICAST
-} peer_t;
+  }
+peer_t;
 
-typedef enum {
+typedef enum
+  {
     PEER_SA_NONE,
     PEER_SA_DIGEST,
     PEER_SA_ICP,
     PEER_SA_NETDB
-} peer_select_alg_t;
+  }
+peer_select_alg_t;
 
-typedef enum {
+typedef enum
+  {
     LOOKUP_NONE,
     LOOKUP_HIT,
     LOOKUP_MISS
-} lookup_t;
+  }
+lookup_t;
 
 /* recognized or "known" header fields; @?@ add more! */
-typedef enum {
+typedef enum
+  {
     HDR_ACCEPT,
     HDR_ACCEPT_CHARSET,
     HDR_ACCEPT_ENCODING,
@@ -244,9 +261,11 @@ typedef enum {
 #endif
     HDR_OTHER,
     HDR_ENUM_END
-} http_hdr_type;
+  }
+http_hdr_type;
 
-typedef enum {
+typedef enum
+  {
     CC_PUBLIC,
     CC_PRIVATE,
     CC_NO_CACHE,
@@ -260,10 +279,12 @@ typedef enum {
     CC_ONLY_IF_CACHED,
     CC_OTHER,
     CC_ENUM_END
-} http_hdr_cc_type;
+  }
+http_hdr_cc_type;
 
 /* possible types for http header fields */
-typedef enum {
+typedef enum
+  {
     ftInvalid = HDR_ENUM_END,  /* to catch nasty errors with hdr_id<->fld_type clashes */
     ftInt,
     ftStr,
@@ -273,19 +294,23 @@ typedef enum {
     ftPContRange,
     ftPRange,
     ftDate_1123_or_ETag
-} field_type;
+  }
+field_type;
 
 /* possible owners of http header */
-typedef enum {
+typedef enum
+  {
     hoNone,
 #if USE_HTCP
     hoHtcpReply,
 #endif
     hoRequest,
     hoReply
-} http_hdr_owner_type;
+  }
+http_hdr_owner_type;
 
-typedef enum {
+typedef enum
+  {
     HIER_NONE,
     DIRECT,
     SIBLING_HIT,
@@ -309,9 +334,11 @@ typedef enum {
 #endif
     ANY_OLD_PARENT,
     HIER_MAX
-} hier_code;
+  }
+hier_code;
 
-typedef enum {
+typedef enum
+  {
     ICP_INVALID,
     ICP_QUERY,
     ICP_HIT,
@@ -337,37 +364,45 @@ typedef enum {
     ICP_DENIED,
     ICP_HIT_OBJ,
     ICP_END
-} icp_opcode;
+  }
+icp_opcode;
 
-enum {
+enum
+  {
     NOT_IN_MEMORY,
     IN_MEMORY
-};
+  };
 
-enum {
+enum
+  {
     PING_NONE,
     PING_WAITING,
     PING_DONE
-};
+  };
 
-enum {
+enum
+  {
     STORE_OK,
     STORE_PENDING
-};
+  };
 
-enum {
+enum
+  {
     SWAPOUT_NONE,
     SWAPOUT_WRITING,
     SWAPOUT_DONE
-};
+  };
 
-typedef enum {
+typedef enum
+  {
     STORE_NON_CLIENT,
     STORE_MEM_CLIENT,
     STORE_DISK_CLIENT
-} store_client_t;
+  }
+store_client_t;
 
-enum {
+enum
+  {
     METHOD_NONE,               /* 000 */
     METHOD_GET,                        /* 001 */
     METHOD_POST,               /* 010 */
@@ -409,10 +444,11 @@ enum {
     METHOD_EXT18,
     METHOD_EXT19,
     METHOD_ENUM_END
-};
+  };
 typedef unsigned int method_t;
 
-typedef enum {
+typedef enum
+  {
     PROTO_NONE,
     PROTO_HTTP,
     PROTO_FTP,
@@ -428,9 +464,11 @@ typedef enum {
     PROTO_INTERNAL,
     PROTO_HTTPS,
     PROTO_MAX
-} protocol_t;
+  }
+protocol_t;
 
-typedef enum {
+typedef enum
+  {
     HTTP_STATUS_NONE = 0,
     HTTP_CONTINUE = 100,
     HTTP_SWITCHING_PROTOCOLS = 101,
@@ -476,7 +514,8 @@ typedef enum {
     HTTP_HTTP_VERSION_NOT_SUPPORTED = 505,
     HTTP_INSUFFICIENT_STORAGE = 507,   /* RFC2518 section 10.6 */
     HTTP_INVALID_HEADER = 600  /* Squid header parsing error */
-} http_status;
+  }
+http_status;
 
 /*
  * These are for StoreEntry->flag, which is defined as a SHORT
@@ -484,7 +523,8 @@ typedef enum {
  * NOTE: These flags are written to swap.state, so think very carefully
  * about deleting or re-assigning!
  */
-enum {
+enum
+  {
     ENTRY_SPECIAL,
     ENTRY_REVALIDATE,
     DELAY_SENDING,
@@ -501,63 +541,77 @@ enum {
 #if UNUSED_CODE
     ENTRY_DONT_LOG
 #endif
-};
+  };
 
-typedef enum {
+typedef enum
+  {
     ACCESS_DENIED,
     ACCESS_ALLOWED,
     ACCESS_REQ_PROXY_AUTH
-} allow_t;
+  }
+allow_t;
 
-typedef enum {
+typedef enum
+  {
     AUTH_ACL_CHALLENGE = -2,
     AUTH_ACL_HELPER = -1,
     AUTH_ACL_CANNOT_AUTHENTICATE = 0,
-    AUTH_AUTHENTICATED = 1,
-} auth_acl_t;
+    AUTH_AUTHENTICATED = 1
+  }
+auth_acl_t;
 
-typedef enum {
+typedef enum
+  {
     AUTH_UNKNOWN,              /* default */
     AUTH_BASIC,
     AUTH_NTLM,
     AUTH_DIGEST,
     AUTH_BROKEN                        /* known type, but broken data */
-} auth_type_t;
+  }
+auth_type_t;
 
-typedef enum {
+typedef enum
+  {
     AUTHENTICATE_STATE_NONE,
     AUTHENTICATE_STATE_NEGOTIATE,
     AUTHENTICATE_STATE_CHALLENGE,
     AUTHENTICATE_STATE_RESPONSE,
     AUTHENTICATE_STATE_DONE
-} auth_state_t;                        /* connection level auth state */
+  }
+auth_state_t;                  /* connection level auth state */
 
 /* stateful helper callback response codes */
-typedef enum {
+typedef enum
+  {
     S_HELPER_UNKNOWN,
     S_HELPER_RESERVE,
     S_HELPER_RELEASE,
     S_HELPER_DEFER
-} stateful_helper_callback_t;
+  }
+stateful_helper_callback_t;
 
 /* stateful helper reservation info */
-typedef enum {
+typedef enum
+  {
     S_HELPER_FREE,             /* available for requests */
     S_HELPER_RESERVED,         /* in a reserved state - no active request, but state data in the helper shouldn't be disturbed */
     S_HELPER_DEFERRED          /* available for requests, and at least one more will come from a previous caller with the server pointer */
-} stateful_helper_reserve_t;
+  }
+stateful_helper_reserve_t;
 
 
 #if SQUID_SNMP
-enum {
+enum
+  {
     SNMP_C_VIEW,
     SNMP_C_USER,
     SNMP_C_COMMUNITY
-};
+  };
 
 #endif
 
-typedef enum {
+typedef enum
+  {
     MEM_NONE,
     MEM_2K_BUF,
     MEM_4K_BUF,
@@ -618,12 +672,14 @@ typedef enum {
     MEM_SWAP_LOG_DATA,
     MEM_CLIENT_REQ_BUF,
     MEM_MAX
-} mem_type;
+  }
+mem_type;
 
 /*
  * NOTE!  We must preserve the order of this list!
  */
-enum {
+enum
+  {
     STORE_META_VOID,           /* should not come up */
     STORE_META_KEY_URL,                /* key w/ keytype */
     STORE_META_KEY_SHA,
@@ -634,34 +690,40 @@ enum {
     STORE_META_VALID,
     STORE_META_VARY_HEADERS,   /* Stores Vary request headers */
     STORE_META_END
-};
+  };
 
-enum {
+enum
+  {
     STORE_LOG_CREATE,
     STORE_LOG_SWAPIN,
     STORE_LOG_SWAPOUT,
     STORE_LOG_RELEASE,
     STORE_LOG_SWAPOUTFAIL
-};
+  };
 
-typedef enum {
+typedef enum
+  {
     SWAP_LOG_NOP,
     SWAP_LOG_ADD,
     SWAP_LOG_DEL,
     SWAP_LOG_MAX
-} swap_log_op;
+  }
+swap_log_op;
 
 
 /* parse state of HttpReply or HttpRequest */
-typedef enum {
+typedef enum
+  {
     psReadyToParseStartLine = 0,
     psReadyToParseHeaders,
     psParsed,
     psError
-} HttpMsgParseState;
+  }
+HttpMsgParseState;
 
 
-enum {
+enum
+  {
     MEDIAN_HTTP,
     MEDIAN_ICP_QUERY,
     MEDIAN_DNS,
@@ -670,22 +732,24 @@ enum {
     MEDIAN_NM,
     MEDIAN_NH,
     MEDIAN_ICP_REPLY
-};
+  };
 
-enum {
+enum
+  {
     SENT,
     RECV
-};
+  };
 
 /*
  * These are field indicators for raw cache-cache netdb transfers
  */
-enum {
+enum
+  {
     NETDB_EX_NONE,
     NETDB_EX_NETWORK,
     NETDB_EX_RTT,
     NETDB_EX_HOPS
-};
+  };
 
 /*
  * cbdata types. similar to the MEM_* types above, but managed
@@ -693,7 +757,8 @@ enum {
  * allocated. This list is only a list of predefined types. Other types
  * are added runtime
  */
-typedef enum {
+typedef enum
+  {
     CBDATA_UNKNOWN = 0,
     CBDATA_UNDEF = 0,
     CBDATA_acl_access,
@@ -715,16 +780,18 @@ typedef enum {
     CBDATA_RemovalPurgeWalker,
     CBDATA_store_client,
     CBDATA_FIRST_CUSTOM_TYPE = 1000
-} cbdata_type;
+  }
+cbdata_type;
 
 /*
  * Return codes from checkVary(request)
  */
-enum {
+enum
+  {
     VARY_NONE,
     VARY_MATCH,
     VARY_OTHER,
     VARY_CANCEL
-};
+  };
 
 #endif /* SQUID_ENUMS_H */
index dd63eeb26f6371e55641ab7a2b6fbbd9012b6008..b72952728162c43400e6a4f208402616eae99082 100644 (file)
@@ -1,6 +1,6 @@
 
 /*
- * $Id: protos.h,v 1.414 2001/10/10 15:17:41 adrian Exp $
+ * $Id: protos.h,v 1.415 2001/10/17 10:59:09 adrian Exp $
  *
  *
  * SQUID Web Proxy Cache          http://www.squid-cache.org/
 #ifndef SQUID_PROTOS_H
 #define SQUID_PROTOS_H
 
-extern void accessLogLog(AccessLogEntry *);
-extern void accessLogRotate(void);
-extern void accessLogClose(void);
-extern void accessLogInit(void);
-extern const char *accessLogTime(time_t);
-extern void hierarchyNote(HierarchyLogEntry *, hier_code, const char *);
+extern void accessLogLog (AccessLogEntry *);
+extern void accessLogRotate (void);
+extern void accessLogClose (void);
+extern void accessLogInit (void);
+extern const char *accessLogTime (time_t);
+extern void hierarchyNote (HierarchyLogEntry *, hier_code, const char *);
 #if FORW_VIA_DB
-extern void fvdbCountVia(const char *key);
-extern void fvdbCountForw(const char *key);
+extern void fvdbCountVia (const char *key);
+extern void fvdbCountForw (const char *key);
 #endif
 #if HEADERS_LOG
-extern void headersLog(int cs, int pq, method_t m, void *data);
+extern void headersLog (int cs, int pq, method_t m, void *data);
 #endif
-char *log_quote(const char *header);
+char *log_quote (const char *header);
 
 /* acl.c */
-extern aclCheck_t *aclChecklistCreate(const struct _acl_access *,
-    request_t *,
-    const char *ident);
-extern void aclNBCheck(aclCheck_t *, PF *, void *);
-extern int aclCheckFast(const struct _acl_access *A, aclCheck_t *);
-extern void aclChecklistFree(aclCheck_t *);
-extern int aclMatchAclList(const acl_list * list, aclCheck_t * checklist);
-extern void aclDestroyAccessList(struct _acl_access **list);
-extern void aclDestroyAcls(acl **);
-extern void aclDestroyAclList(acl_list **);
-extern void aclParseAccessLine(struct _acl_access **);
-extern void aclParseAclList(acl_list **);
-extern void aclParseAclLine(acl **);
-extern int aclIsProxyAuth(const char *name);
-extern err_type aclGetDenyInfoPage(acl_deny_info_list ** head, const char *name);
-extern void aclParseDenyInfoLine(struct _acl_deny_info_list **);
-extern void aclDestroyDenyInfoList(struct _acl_deny_info_list **);
-extern void aclDestroyRegexList(struct _relist *data);
-extern int aclMatchRegex(relist * data, const char *word);
-extern void aclParseRegexList(void *curlist);
-extern const char *aclTypeToStr(squid_acl);
-extern wordlist *aclDumpGeneric(const acl *);
-extern int aclPurgeMethodInUse(acl_access *);
-extern void aclCacheMatchFlush(dlink_list * cache);
+extern aclCheck_t *aclChecklistCreate (const struct _acl_access *,
+                                      request_t *,
+                                      const char *ident);
+extern void aclNBCheck (aclCheck_t *, PF *, void *);
+extern int aclCheckFast (const struct _acl_access *A, aclCheck_t *);
+extern void aclChecklistFree (aclCheck_t *);
+extern int aclMatchAclList (const acl_list * list, aclCheck_t * checklist);
+extern void aclDestroyAccessList (struct _acl_access **list);
+extern void aclDestroyAcls (acl **);
+extern void aclDestroyAclList (acl_list **);
+extern void aclParseAccessLine (struct _acl_access **);
+extern void aclParseAclList (acl_list **);
+extern void aclParseAclLine (acl **);
+extern int aclIsProxyAuth (const char *name);
+extern err_type aclGetDenyInfoPage (acl_deny_info_list ** head, const char *name);
+extern void aclParseDenyInfoLine (struct _acl_deny_info_list **);
+extern void aclDestroyDenyInfoList (struct _acl_deny_info_list **);
+extern void aclDestroyRegexList (struct _relist *data);
+extern int aclMatchRegex (relist * data, const char *word);
+extern void aclParseRegexList (void *curlist);
+extern const char *aclTypeToStr (squid_acl);
+extern wordlist *aclDumpGeneric (const acl *);
+extern int aclPurgeMethodInUse (acl_access *);
+extern void aclCacheMatchFlush (dlink_list * cache);
 
 /*
  * cache_cf.c
  */
-extern int parseConfigFile(const char *file_name);
-extern void intlistDestroy(intlist **);
-extern int intlistFind(intlist * list, int i);
-extern const char *wordlistAdd(wordlist **, const char *);
-extern void wordlistAddWl(wordlist **, wordlist *);
-extern void wordlistJoin(wordlist **, wordlist **);
-extern wordlist *wordlistDup(const wordlist *);
-extern void wordlistDestroy(wordlist **);
-extern void configFreeMemory(void);
-extern void wordlistCat(const wordlist *, MemBuf * mb);
-extern void allocate_new_swapdir(cacheSwap *);
-extern void self_destruct(void);
-extern int GetInteger(void);
+extern int parseConfigFile (const char *file_name);
+extern void intlistDestroy (intlist **);
+extern int intlistFind (intlist * list, int i);
+extern const char *wordlistAdd (wordlist **, const char *);
+extern void wordlistAddWl (wordlist **, wordlist *);
+extern void wordlistJoin (wordlist **, wordlist **);
+extern wordlist *wordlistDup (const wordlist *);
+extern void wordlistDestroy (wordlist **);
+extern void configFreeMemory (void);
+extern void wordlistCat (const wordlist *, MemBuf * mb);
+extern void allocate_new_swapdir (cacheSwap *);
+extern void self_destruct (void);
+extern int GetInteger (void);
 
 /* extra functions from cache_cf.c useful for lib modules */
-extern void parse_int(int *var);
-extern void parse_eol(char *volatile *var);
-extern void parse_wordlist(wordlist ** list);
-extern void requirePathnameExists(const char *name, const char *path);
-extern void parse_time_t(time_t * var);
-extern void parse_cachedir_options(SwapDir * sd, struct cache_dir_option *options, int reconfiguring);
-extern void dump_cachedir_options(StoreEntry * e, struct cache_dir_option *options, SwapDir * sd);
+extern void parse_int (int *var);
+extern void parse_eol (char *volatile *var);
+extern void parse_wordlist (wordlist ** list);
+extern void requirePathnameExists (const char *name, const char *path);
+extern void parse_time_t (time_t * var);
+extern void parse_cachedir_options (SwapDir * sd, struct cache_dir_option *options, int reconfiguring);
+extern void dump_cachedir_options (StoreEntry * e, struct cache_dir_option *options, SwapDir * sd);
 
 
 /*
  * cbdata.c
  */
-extern void cbdataInit(void);
+extern void cbdataInit (void);
 #if CBDATA_DEBUG
-extern void *cbdataInternalAllocDbg(cbdata_type type, int, const char *);
-extern void cbdataLockDbg(const void *p, const char *, int);
-extern void cbdataUnlockDbg(const void *p, const char *, int);
+extern void *cbdataInternalAllocDbg (cbdata_type type, int, const char *);
+extern void cbdataLockDbg (const void *p, const char *, int);
+extern void cbdataUnlockDbg (const void *p, const char *, int);
 #else
-extern void *cbdataInternalAlloc(cbdata_type type);
-extern void cbdataLock(const void *p);
-extern void cbdataUnlock(const void *p);
+extern void *cbdataInternalAlloc (cbdata_type type);
+extern void cbdataLock (const void *p);
+extern void cbdataUnlock (const void *p);
 #endif
 /* Note: Allocations is done using the cbdataAlloc macro */
-extern void *cbdataInternalFree(void *p);
-extern int cbdataValid(const void *p);
-extern void cbdataInitType(cbdata_type type, char *label, int size, FREE * free_func);
-extern cbdata_type cbdataAddType(cbdata_type type, char *label, int size, FREE * free_func);
-extern int cbdataLocked(const void *p);
-
-extern void clientdbInit(void);
-extern void clientdbUpdate(struct in_addr, log_type, protocol_t, size_t);
-extern int clientdbCutoffDenied(struct in_addr);
-extern void clientdbDump(StoreEntry *);
-extern void clientdbFreeMemory(void);
-extern int clientdbEstablished(struct in_addr, int);
-
-extern void clientAccessCheck(void *);
-extern void clientAccessCheckDone(int, void *);
-extern int modifiedSince(StoreEntry *, request_t *);
-extern char *clientConstructTraceEcho(clientHttpRequest *);
-extern void clientPurgeRequest(clientHttpRequest *);
-extern int checkNegativeHit(StoreEntry *);
-extern void clientOpenListenSockets(void);
-extern void clientHttpConnectionsClose(void);
-extern StoreEntry *clientCreateStoreEntry(clientHttpRequest *, method_t, request_flags);
-extern int isTcpHit(log_type);
-extern void clientReadBody(request_t * req, char *buf, size_t size, CBCB * callback, void *data);
-extern int clientAbortBody(request_t * req);
-
-extern int commSetNonBlocking(int fd);
-extern int commUnsetNonBlocking(int fd);
-extern void commSetCloseOnExec(int fd);
-extern int comm_accept(int fd, struct sockaddr_in *, struct sockaddr_in *);
-extern void comm_close(int fd);
+extern void *cbdataInternalFree (void *p);
+extern int cbdataValid (const void *p);
+extern void cbdataInitType (cbdata_type type, char *label, int size, FREE * free_func);
+extern cbdata_type cbdataAddType (cbdata_type type, char *label, int size, FREE * free_func);
+extern int cbdataLocked (const void *p);
+
+extern void clientdbInit (void);
+extern void clientdbUpdate (struct in_addr, log_type, protocol_t, size_t);
+extern int clientdbCutoffDenied (struct in_addr);
+extern void clientdbDump (StoreEntry *);
+extern void clientdbFreeMemory (void);
+extern int clientdbEstablished (struct in_addr, int);
+
+extern void clientAccessCheck (void *);
+extern void clientAccessCheckDone (int, void *);
+extern int modifiedSince (StoreEntry *, request_t *);
+extern char *clientConstructTraceEcho (clientHttpRequest *);
+extern void clientPurgeRequest (clientHttpRequest *);
+extern int checkNegativeHit (StoreEntry *);
+extern void clientOpenListenSockets (void);
+extern void clientHttpConnectionsClose (void);
+extern StoreEntry *clientCreateStoreEntry (clientHttpRequest *, method_t, request_flags);
+extern int isTcpHit (log_type);
+extern void clientReadBody (request_t * req, char *buf, size_t size, CBCB * callback, void *data);
+extern int clientAbortBody (request_t * req);
+
+extern int commSetNonBlocking (int fd);
+extern int commUnsetNonBlocking (int fd);
+extern void commSetCloseOnExec (int fd);
+extern int comm_accept (int fd, struct sockaddr_in *, struct sockaddr_in *);
+extern void comm_close (int fd);
 #if LINGERING_CLOSE
-extern void comm_lingering_close(int fd);
+extern void comm_lingering_close (int fd);
 #endif
-extern void commConnectStart(int fd, const char *, u_short, CNCB *, void *);
-extern int comm_connect_addr(int sock, const struct sockaddr_in *);
-extern void comm_init(void);
-extern int comm_listen(int sock);
-extern int comm_open(int, int, struct in_addr, u_short port, int, const char *note);
-extern int comm_openex(int, int, struct in_addr, u_short, int, unsigned char TOS, const char *);
-extern u_short comm_local_port(int fd);
-
-extern void commSetSelect(int, unsigned int, PF *, void *, time_t);
-extern void comm_add_close_handler(int fd, PF *, void *);
-extern void comm_remove_close_handler(int fd, PF *, void *);
-extern int comm_udp_sendto(int, const struct sockaddr_in *, int, const void *, int);
-extern void comm_write(int fd,
-    char *buf,
-    int size,
-    CWCB * handler,
-    void *handler_data,
-    FREE *);
-extern void comm_write_mbuf(int fd, MemBuf mb, CWCB * handler, void *handler_data);
-extern void commCallCloseHandlers(int fd);
-extern int commSetTimeout(int fd, int, PF *, void *);
-extern void commSetDefer(int fd, DEFER * func, void *);
-extern int ignoreErrno(int);
-extern void commCloseAllSockets(void);
+extern void commConnectStart (int fd, const char *, u_short, CNCB *, void *);
+extern int comm_connect_addr (int sock, const struct sockaddr_in *);
+extern void comm_init (void);
+extern int comm_listen (int sock);
+extern int comm_open (int, int, struct in_addr, u_short port, int, const char *note);
+extern int comm_openex (int, int, struct in_addr, u_short, int, unsigned char TOS, const char *);
+extern u_short comm_local_port (int fd);
+
+extern void commSetSelect (int, unsigned int, PF *, void *, time_t);
+extern void comm_add_close_handler (int fd, PF *, void *);
+extern void comm_remove_close_handler (int fd, PF *, void *);
+extern int comm_udp_sendto (int, const struct sockaddr_in *, int, const void *, int);
+extern void comm_write (int fd,
+                       char *buf,
+                       int size,
+                       CWCB * handler,
+                       void *handler_data,
+                       FREE *);
+extern void comm_write_mbuf (int fd, MemBuf mb, CWCB * handler, void *handler_data);
+extern void commCallCloseHandlers (int fd);
+extern int commSetTimeout (int fd, int, PF *, void *);
+extern void commSetDefer (int fd, DEFER * func, void *);
+extern int ignoreErrno (int);
+extern void commCloseAllSockets (void);
 
 
 /*
  * comm_select.c
  */
-extern void comm_select_init(void);
+extern void comm_select_init (void);
 #if HAVE_POLL
-extern int comm_poll(int);
+extern int comm_poll (int);
 #else
-extern int comm_select(int);
+extern int comm_select (int);
 #endif
-extern void commUpdateReadBits(int, PF *);
-extern void commUpdateWriteBits(int, PF *);
-extern void comm_quick_poll_required(void);
-
-extern void packerToStoreInit(Packer * p, StoreEntry * e);
-extern void packerToMemInit(Packer * p, MemBuf * mb);
-extern void packerClean(Packer * p);
-extern void packerAppend(Packer * p, const char *buf, int size);
+extern void commUpdateReadBits (int, PF *);
+extern void commUpdateWriteBits (int, PF *);
+extern void comm_quick_poll_required (void);
+
+extern void packerToStoreInit (Packer * p, StoreEntry * e);
+extern void packerToMemInit (Packer * p, MemBuf * mb);
+extern void packerClean (Packer * p);
+extern void packerAppend (Packer * p, const char *buf, int size);
 #if STDC_HEADERS
-extern void packerPrintf(Packer * p, const char *fmt,...);
+extern void packerPrintf (Packer * p, const char *fmt,...);
 #else
-extern void packerPrintf();
+extern void packerPrintf ();
 #endif
 
 
 /* see debug.c for info on context-based debugging */
-extern Ctx ctx_enter(const char *descr);
-extern void ctx_exit(Ctx ctx);
+extern Ctx ctx_enter (const char *descr);
+extern void ctx_exit (Ctx ctx);
 
-extern void _db_init(const char *logfile, const char *options);
-extern void _db_rotate_log(void);
+extern void _db_init (const char *logfile, const char *options);
+extern void _db_rotate_log (void);
 
 #if STDC_HEADERS
-extern void _db_print(const char *,...);
+extern void _db_print (const char *,...);
 #else
-extern void _db_print();
+extern void _db_print ();
 #endif
-extern void xassert(const char *, const char *, int);
+extern void xassert (const char *, const char *, int);
 
 /* packs, then prints an object using debug() */
-extern void debugObj(int section, int level, const char *label, void *obj, ObjPackMethod pm);
+extern void debugObj (int section, int level, const char *label, void *obj, ObjPackMethod pm);
 
 /* disk.c */
-extern int file_open(const char *path, int mode);
-extern void file_close(int fd);
-extern void file_write(int, off_t, void *, int len, DWCB *, void *, FREE *);
-extern void file_write_mbuf(int fd, off_t, MemBuf mb, DWCB * handler, void *handler_data);
-extern void file_read(int, char *, int, off_t, DRCB *, void *);
-extern void disk_init(void);
+extern int file_open (const char *path, int mode);
+extern void file_close (int fd);
+extern void file_write (int, off_t, void *, int len, DWCB *, void *, FREE *);
+extern void file_write_mbuf (int fd, off_t, MemBuf mb, DWCB * handler, void *handler_data);
+extern void file_read (int, char *, int, off_t, DRCB *, void *);
+extern void disk_init (void);
 
 /* diskd.c */
-extern diskd_queue *afile_create_queue(void);
-extern void afile_destroy_queue(diskd_queue *);
-extern void afile_sync_queue(diskd_queue *);
-extern void afile_sync(void);
-extern void afile_open(const char *path, int mode, DOCB *, void *);
-extern void afile_close(int fd, DCCB * callback, void *data);
-extern void afile_write(int, off_t, void *, int len, DWCB *, void *, FREE *);
-extern void afile_write_mbuf(int fd, off_t, MemBuf, DWCB *, void *);
-extern void afile_read(int, char *, int, off_t, DRCB *, void *);
-extern void afile_unlink(const char *path, DUCB *, void *);
-extern void afile_truncate(const char *path, DTCB *, void *);
-
-extern void dnsShutdown(void);
-extern void dnsInit(void);
-extern void dnsSubmit(const char *lookup, HLPCB * callback, void *data);
+extern diskd_queue *afile_create_queue (void);
+extern void afile_destroy_queue (diskd_queue *);
+extern void afile_sync_queue (diskd_queue *);
+extern void afile_sync (void);
+extern void afile_open (const char *path, int mode, DOCB *, void *);
+extern void afile_close (int fd, DCCB * callback, void *data);
+extern void afile_write (int, off_t, void *, int len, DWCB *, void *, FREE *);
+extern void afile_write_mbuf (int fd, off_t, MemBuf, DWCB *, void *);
+extern void afile_read (int, char *, int, off_t, DRCB *, void *);
+extern void afile_unlink (const char *path, DUCB *, void *);
+extern void afile_truncate (const char *path, DTCB *, void *);
+
+extern void dnsShutdown (void);
+extern void dnsInit (void);
+extern void dnsSubmit (const char *lookup, HLPCB * callback, void *data);
 
 /* dns_internal.c */
-extern void idnsInit(void);
-extern void idnsShutdown(void);
-extern void idnsALookup(const char *, IDNSCB *, void *);
-extern void idnsPTRLookup(const struct in_addr, IDNSCB *, void *);
-
-extern void eventAdd(const char *name, EVH * func, void *arg, double when, int);
-extern void eventAddIsh(const char *name, EVH * func, void *arg, double delta_ish, int);
-extern void eventRun(void);
-extern time_t eventNextTime(void);
-extern void eventDelete(EVH * func, void *arg);
-extern void eventInit(void);
-extern void eventFreeMemory(void);
-extern int eventFind(EVH *, void *);
-
-extern void fd_close(int fd);
-extern void fd_open(int fd, unsigned int type, const char *);
-extern void fd_note(int fd, const char *);
-extern void fd_bytes(int fd, int len, unsigned int type);
-extern void fdFreeMemory(void);
-extern void fdDumpOpen(void);
-extern int fdNFree(void);
-extern void fdAdjustReserved(void);
-
-extern fileMap *file_map_create(void);
-extern int file_map_allocate(fileMap *, int);
-extern int file_map_bit_set(fileMap *, int);
-extern int file_map_bit_test(fileMap *, int);
-extern void file_map_bit_reset(fileMap *, int);
-extern void filemapFreeMemory(fileMap *);
-
-
-extern void fqdncache_nbgethostbyaddr(struct in_addr, FQDNH *, void *);
-extern const char *fqdncache_gethostbyaddr(struct in_addr, int flags);
-extern void fqdncache_init(void);
-extern void fqdnStats(StoreEntry *);
-extern void fqdncacheReleaseInvalid(const char *);
-extern const char *fqdnFromAddr(struct in_addr);
-extern int fqdncacheQueueDrain(void);
-extern void fqdncacheFreeMemory(void);
-extern void fqdncache_restart(void);
+extern void idnsInit (void);
+extern void idnsShutdown (void);
+extern void idnsALookup (const char *, IDNSCB *, void *);
+extern void idnsPTRLookup (const struct in_addr, IDNSCB *, void *);
+
+extern void eventAdd (const char *name, EVH * func, void *arg, double when, int);
+extern void eventAddIsh (const char *name, EVH * func, void *arg, double delta_ish, int);
+extern void eventRun (void);
+extern time_t eventNextTime (void);
+extern void eventDelete (EVH * func, void *arg);
+extern void eventInit (void);
+extern void eventFreeMemory (void);
+extern int eventFind (EVH *, void *);
+
+extern void fd_close (int fd);
+extern void fd_open (int fd, unsigned int type, const char *);
+extern void fd_note (int fd, const char *);
+extern void fd_bytes (int fd, int len, unsigned int type);
+extern void fdFreeMemory (void);
+extern void fdDumpOpen (void);
+extern int fdNFree (void);
+extern void fdAdjustReserved (void);
+
+extern fileMap *file_map_create (void);
+extern int file_map_allocate (fileMap *, int);
+extern int file_map_bit_set (fileMap *, int);
+extern int file_map_bit_test (fileMap *, int);
+extern void file_map_bit_reset (fileMap *, int);
+extern void filemapFreeMemory (fileMap *);
+
+
+extern void fqdncache_nbgethostbyaddr (struct in_addr, FQDNH *, void *);
+extern const char *fqdncache_gethostbyaddr (struct in_addr, int flags);
+extern void fqdncache_init (void);
+extern void fqdnStats (StoreEntry *);
+extern void fqdncacheReleaseInvalid (const char *);
+extern const char *fqdnFromAddr (struct in_addr);
+extern int fqdncacheQueueDrain (void);
+extern void fqdncacheFreeMemory (void);
+extern void fqdncache_restart (void);
 extern EVH fqdncache_purgelru;
-extern void fqdncacheAddEntryFromHosts(char *addr, wordlist * hostnames);
+extern void fqdncacheAddEntryFromHosts (char *addr, wordlist * hostnames);
 
-extern void ftpStart(FwdState *);
-extern char *ftpUrlWith2f(const request_t *);
+extern void ftpStart (FwdState *);
+extern char *ftpUrlWith2f (const request_t *);
 
-extern void gopherStart(FwdState *);
-extern int gopherCachable(const char *);
+extern void gopherStart (FwdState *);
+extern int gopherCachable (const char *);
 
 
-extern void whoisStart(FwdState *);
+extern void whoisStart (FwdState *);
 
 /* http.c */
-extern int httpCachable(method_t);
-extern void httpStart(FwdState *);
-extern void httpParseReplyHeaders(const char *, http_reply *);
-extern void httpProcessReplyHeader(HttpStateData *, const char *, int);
-extern mb_size_t httpBuildRequestPrefix(request_t * request,
-    request_t * orig_request,
-    StoreEntry * entry,
-    MemBuf * mb,
-    int cfd,
-    http_state_flags);
-extern void httpAnonInitModule(void);
-extern int httpAnonHdrAllowed(http_hdr_type hdr_id);
-extern int httpAnonHdrDenied(http_hdr_type hdr_id);
-extern void httpBuildRequestHeader(request_t *, request_t *, StoreEntry *, HttpHeader *, int, http_state_flags);
-extern void httpBuildVersion(http_version_t * version, unsigned int major, unsigned int minor);
-extern const char *httpMakeVaryMark(request_t * request, HttpReply * reply);
+extern int httpCachable (method_t);
+extern void httpStart (FwdState *);
+extern void httpParseReplyHeaders (const char *, http_reply *);
+extern void httpProcessReplyHeader (HttpStateData *, const char *, int);
+extern mb_size_t httpBuildRequestPrefix (request_t * request,
+                                        request_t * orig_request,
+                                        StoreEntry * entry,
+                                        MemBuf * mb,
+                                        int cfd,
+                                        http_state_flags);
+extern void httpAnonInitModule (void);
+extern int httpAnonHdrAllowed (http_hdr_type hdr_id);
+extern int httpAnonHdrDenied (http_hdr_type hdr_id);
+extern void httpBuildRequestHeader (request_t *, request_t *, StoreEntry *, HttpHeader *, int, http_state_flags);
+extern void httpBuildVersion (http_version_t * version, unsigned int major, unsigned int minor);
+extern const char *httpMakeVaryMark (request_t * request, HttpReply * reply);
 
 /* ETag */
-extern int etagParseInit(ETag * etag, const char *str);
-extern int etagIsEqual(const ETag * tag1, const ETag * tag2);
+extern int etagParseInit (ETag * etag, const char *str);
+extern int etagIsEqual (const ETag * tag1, const ETag * tag2);
 
 /* Http Status Line */
 /* init/clean */
-extern void httpStatusLineInit(HttpStatusLine * sline);
-extern void httpStatusLineClean(HttpStatusLine * sline);
+extern void httpStatusLineInit (HttpStatusLine * sline);
+extern void httpStatusLineClean (HttpStatusLine * sline);
 /* set/get values */
-extern void httpStatusLineSet(HttpStatusLine * sline, http_version_t version,
-    http_status status, const char *reason);
-extern const char *httpStatusLineReason(const HttpStatusLine * sline);
+extern void httpStatusLineSet (HttpStatusLine * sline, http_version_t version,
+                              http_status status, const char *reason);
+extern const char *httpStatusLineReason (const HttpStatusLine * sline);
 /* parse/pack */
 /* parse a 0-terminating buffer and fill internal structires; returns true on success */
-extern int httpStatusLineParse(HttpStatusLine * sline, const char *start,
-    const char *end);
+extern int httpStatusLineParse (HttpStatusLine * sline, const char *start,
+                               const char *end);
 /* pack fields using Packer */
-extern void httpStatusLinePackInto(const HttpStatusLine * sline, Packer * p);
-extern const char *httpStatusString(http_status status);
+extern void httpStatusLinePackInto (const HttpStatusLine * sline, Packer * p);
+extern const char *httpStatusString (http_status status);
 
 /* Http Body */
 /* init/clean */
-extern void httpBodyInit(HttpBody * body);
-extern void httpBodyClean(HttpBody * body);
+extern void httpBodyInit (HttpBody * body);
+extern void httpBodyClean (HttpBody * body);
 /* get body ptr (always use this) */
-extern const char *httpBodyPtr(const HttpBody * body);
+extern const char *httpBodyPtr (const HttpBody * body);
 /* set body, does not clone mb so you should not reuse it */
-extern void httpBodySet(HttpBody * body, MemBuf * mb);
+extern void httpBodySet (HttpBody * body, MemBuf * mb);
 
 /* pack */
-extern void httpBodyPackInto(const HttpBody * body, Packer * p);
+extern void httpBodyPackInto (const HttpBody * body, Packer * p);
 
 /* Http Cache Control Header Field */
-extern void httpHdrCcInitModule(void);
-extern void httpHdrCcCleanModule(void);
-extern HttpHdrCc *httpHdrCcCreate(void);
-extern HttpHdrCc *httpHdrCcParseCreate(const String * str);
-extern void httpHdrCcDestroy(HttpHdrCc * cc);
-extern HttpHdrCc *httpHdrCcDup(const HttpHdrCc * cc);
-extern void httpHdrCcPackInto(const HttpHdrCc * cc, Packer * p);
-extern void httpHdrCcJoinWith(HttpHdrCc * cc, const HttpHdrCc * new_cc);
-extern void httpHdrCcSetMaxAge(HttpHdrCc * cc, int max_age);
-extern void httpHdrCcSetSMaxAge(HttpHdrCc * cc, int s_maxage);
-extern void httpHdrCcUpdateStats(const HttpHdrCc * cc, StatHist * hist);
-extern void httpHdrCcStatDumper(StoreEntry * sentry, int idx, double val, double size, int count);
+extern void httpHdrCcInitModule (void);
+extern void httpHdrCcCleanModule (void);
+extern HttpHdrCc *httpHdrCcCreate (void);
+extern HttpHdrCc *httpHdrCcParseCreate (const String * str);
+extern void httpHdrCcDestroy (HttpHdrCc * cc);
+extern HttpHdrCc *httpHdrCcDup (const HttpHdrCc * cc);
+extern void httpHdrCcPackInto (const HttpHdrCc * cc, Packer * p);
+extern void httpHdrCcJoinWith (HttpHdrCc * cc, const HttpHdrCc * new_cc);
+extern void httpHdrCcSetMaxAge (HttpHdrCc * cc, int max_age);
+extern void httpHdrCcSetSMaxAge (HttpHdrCc * cc, int s_maxage);
+extern void httpHdrCcUpdateStats (const HttpHdrCc * cc, StatHist * hist);
+extern void httpHdrCcStatDumper (StoreEntry * sentry, int idx, double val, double size, int count);
 
 /* Http Range Header Field */
-extern HttpHdrRange *httpHdrRangeParseCreate(const String * range_spec);
+extern HttpHdrRange *httpHdrRangeParseCreate (const String * range_spec);
 /* returns true if ranges are valid; inits HttpHdrRange */
-extern int httpHdrRangeParseInit(HttpHdrRange * range, const String * range_spec);
-extern void httpHdrRangeDestroy(HttpHdrRange * range);
-extern HttpHdrRange *httpHdrRangeDup(const HttpHdrRange * range);
-extern void httpHdrRangePackInto(const HttpHdrRange * range, Packer * p);
+extern int httpHdrRangeParseInit (HttpHdrRange * range, const String * range_spec);
+extern void httpHdrRangeDestroy (HttpHdrRange * range);
+extern HttpHdrRange *httpHdrRangeDup (const HttpHdrRange * range);
+extern void httpHdrRangePackInto (const HttpHdrRange * range, Packer * p);
 /* iterate through specs */
-extern HttpHdrRangeSpec *httpHdrRangeGetSpec(const HttpHdrRange * range, HttpHdrRangePos * pos);
+extern HttpHdrRangeSpec *httpHdrRangeGetSpec (const HttpHdrRange * range, HttpHdrRangePos * pos);
 /* adjust specs after the length is known */
-extern int httpHdrRangeCanonize(HttpHdrRange *, ssize_t);
+extern int httpHdrRangeCanonize (HttpHdrRange *, ssize_t);
 /* other */
-extern String httpHdrRangeBoundaryStr(clientHttpRequest * http);
-extern int httpHdrRangeIsComplex(const HttpHdrRange * range);
-extern int httpHdrRangeWillBeComplex(const HttpHdrRange * range);
-extern ssize_t httpHdrRangeFirstOffset(const HttpHdrRange * range);
-extern ssize_t httpHdrRangeLowestOffset(const HttpHdrRange * range, ssize_t);
-extern int httpHdrRangeOffsetLimit(HttpHdrRange *);
+extern String httpHdrRangeBoundaryStr (clientHttpRequest * http);
+extern int httpHdrRangeIsComplex (const HttpHdrRange * range);
+extern int httpHdrRangeWillBeComplex (const HttpHdrRange * range);
+extern ssize_t httpHdrRangeFirstOffset (const HttpHdrRange * range);
+extern ssize_t httpHdrRangeLowestOffset (const HttpHdrRange * range, ssize_t);
+extern int httpHdrRangeOffsetLimit (HttpHdrRange *);
 
 
 /* Http Content Range Header Field */
-extern HttpHdrContRange *httpHdrContRangeCreate(void);
-extern HttpHdrContRange *httpHdrContRangeParseCreate(const char *crange_spec);
+extern HttpHdrContRange *httpHdrContRangeCreate (void);
+extern HttpHdrContRange *httpHdrContRangeParseCreate (const char *crange_spec);
 /* returns true if range is valid; inits HttpHdrContRange */
-extern int httpHdrContRangeParseInit(HttpHdrContRange * crange, const char *crange_spec);
-extern void httpHdrContRangeDestroy(HttpHdrContRange * crange);
-extern HttpHdrContRange *httpHdrContRangeDup(const HttpHdrContRange * crange);
-extern void httpHdrContRangePackInto(const HttpHdrContRange * crange, Packer * p);
+extern int httpHdrContRangeParseInit (HttpHdrContRange * crange, const char *crange_spec);
+extern void httpHdrContRangeDestroy (HttpHdrContRange * crange);
+extern HttpHdrContRange *httpHdrContRangeDup (const HttpHdrContRange * crange);
+extern void httpHdrContRangePackInto (const HttpHdrContRange * crange, Packer * p);
 /* inits with given spec */
-extern void httpHdrContRangeSet(HttpHdrContRange *, HttpHdrRangeSpec, ssize_t);
+extern void httpHdrContRangeSet (HttpHdrContRange *, HttpHdrRangeSpec, ssize_t);
 
 /* Http Header Tools */
-extern HttpHeaderFieldInfo *httpHeaderBuildFieldsInfo(const HttpHeaderFieldAttrs * attrs, int count);
-extern void httpHeaderDestroyFieldsInfo(HttpHeaderFieldInfo * info, int count);
-extern int httpHeaderIdByName(const char *name, int name_len, const HttpHeaderFieldInfo * attrs, int end);
-extern int httpHeaderIdByNameDef(const char *name, int name_len);
-extern const char *httpHeaderNameById(int id);
-extern void httpHeaderMaskInit(HttpHeaderMask * mask, int value);
-extern void httpHeaderCalcMask(HttpHeaderMask * mask, const int *enums, int count);
-extern int httpHeaderHasConnDir(const HttpHeader * hdr, const char *directive);
-extern void httpHeaderAddContRange(HttpHeader *, HttpHdrRangeSpec, ssize_t);
-extern void strListAdd(String * str, const char *item, char del);
-extern int strListIsMember(const String * str, const char *item, char del);
-extern int strListIsSubstr(const String * list, const char *s, char del);
-extern int strListGetItem(const String * str, char del, const char **item, int *ilen, const char **pos);
-extern const char *getStringPrefix(const char *str, const char *end);
-extern int httpHeaderParseInt(const char *start, int *val);
-extern int httpHeaderParseSize(const char *start, ssize_t * sz);
-extern int httpHeaderReset(HttpHeader * hdr);
+extern HttpHeaderFieldInfo *httpHeaderBuildFieldsInfo (const HttpHeaderFieldAttrs * attrs, int count);
+extern void httpHeaderDestroyFieldsInfo (HttpHeaderFieldInfo * info, int count);
+extern int httpHeaderIdByName (const char *name, int name_len, const HttpHeaderFieldInfo * attrs, int end);
+extern int httpHeaderIdByNameDef (const char *name, int name_len);
+extern const char *httpHeaderNameById (int id);
+extern void httpHeaderMaskInit (HttpHeaderMask * mask, int value);
+extern void httpHeaderCalcMask (HttpHeaderMask * mask, const int *enums, int count);
+extern int httpHeaderHasConnDir (const HttpHeader * hdr, const char *directive);
+extern void httpHeaderAddContRange (HttpHeader *, HttpHdrRangeSpec, ssize_t);
+extern void strListAdd (String * str, const char *item, char del);
+extern int strListIsMember (const String * str, const char *item, char del);
+extern int strListIsSubstr (const String * list, const char *s, char del);
+extern int strListGetItem (const String * str, char del, const char **item, int *ilen, const char **pos);
+extern const char *getStringPrefix (const char *str, const char *end);
+extern int httpHeaderParseInt (const char *start, int *val);
+extern int httpHeaderParseSize (const char *start, ssize_t * sz);
+extern int httpHeaderReset (HttpHeader * hdr);
 #if STDC_HEADERS
-extern void httpHeaderPutStrf(HttpHeader * hdr, http_hdr_type id, const char *fmt,...);
+extern void httpHeaderPutStrf (HttpHeader * hdr, http_hdr_type id, const char *fmt,...);
 #else
-extern void httpHeaderPutStrf();
+extern void httpHeaderPutStrf ();
 #endif
 
 
 /* Http Header */
-extern void httpHeaderInitModule(void);
-extern void httpHeaderCleanModule(void);
+extern void httpHeaderInitModule (void);
+extern void httpHeaderCleanModule (void);
 /* init/clean */
-extern void httpHeaderInit(HttpHeader * hdr, http_hdr_owner_type owner);
-extern void httpHeaderClean(HttpHeader * hdr);
+extern void httpHeaderInit (HttpHeader * hdr, http_hdr_owner_type owner);
+extern void httpHeaderClean (HttpHeader * hdr);
 /* append/update */
-extern void httpHeaderAppend(HttpHeader * dest, const HttpHeader * src);
-extern void httpHeaderUpdate(HttpHeader * old, const HttpHeader * fresh, const HttpHeaderMask * denied_mask);
+extern void httpHeaderAppend (HttpHeader * dest, const HttpHeader * src);
+extern void httpHeaderUpdate (HttpHeader * old, const HttpHeader * fresh, const HttpHeaderMask * denied_mask);
 /* parse/pack */
-extern int httpHeaderParse(HttpHeader * hdr, const char *header_start, const char *header_end);
-extern void httpHeaderPackInto(const HttpHeader * hdr, Packer * p);
+extern int httpHeaderParse (HttpHeader * hdr, const char *header_start, const char *header_end);
+extern void httpHeaderPackInto (const HttpHeader * hdr, Packer * p);
 /* field manipulation */
-extern int httpHeaderHas(const HttpHeader * hdr, http_hdr_type type);
-extern void httpHeaderPutInt(HttpHeader * hdr, http_hdr_type type, int number);
-extern void httpHeaderPutTime(HttpHeader * hdr, http_hdr_type type, time_t time);
-extern void httpHeaderPutStr(HttpHeader * hdr, http_hdr_type type, const char *str);
-extern void httpHeaderPutAuth(HttpHeader * hdr, const char *authScheme, const char *realm);
-extern void httpHeaderPutCc(HttpHeader * hdr, const HttpHdrCc * cc);
-extern void httpHeaderPutContRange(HttpHeader * hdr, const HttpHdrContRange * cr);
-extern void httpHeaderPutRange(HttpHeader * hdr, const HttpHdrRange * range);
-extern void httpHeaderPutExt(HttpHeader * hdr, const char *name, const char *value);
-extern int httpHeaderGetInt(const HttpHeader * hdr, http_hdr_type id);
-extern time_t httpHeaderGetTime(const HttpHeader * hdr, http_hdr_type id);
-extern TimeOrTag httpHeaderGetTimeOrTag(const HttpHeader * hdr, http_hdr_type id);
-extern HttpHdrCc *httpHeaderGetCc(const HttpHeader * hdr);
-extern ETag httpHeaderGetETag(const HttpHeader * hdr, http_hdr_type id);
-extern HttpHdrRange *httpHeaderGetRange(const HttpHeader * hdr);
-extern HttpHdrContRange *httpHeaderGetContRange(const HttpHeader * hdr);
-extern const char *httpHeaderGetStr(const HttpHeader * hdr, http_hdr_type id);
-extern const char *httpHeaderGetLastStr(const HttpHeader * hdr, http_hdr_type id);
-extern const char *httpHeaderGetAuth(const HttpHeader * hdr, http_hdr_type id, const char *authScheme);
-extern String httpHeaderGetList(const HttpHeader * hdr, http_hdr_type id);
-extern String httpHeaderGetStrOrList(const HttpHeader * hdr, http_hdr_type id);
-extern String httpHeaderGetByName(const HttpHeader * hdr, const char *name);
-extern int httpHeaderDelByName(HttpHeader * hdr, const char *name);
-extern int httpHeaderDelById(HttpHeader * hdr, http_hdr_type id);
-extern void httpHeaderDelAt(HttpHeader * hdr, HttpHeaderPos pos);
+extern int httpHeaderHas (const HttpHeader * hdr, http_hdr_type type);
+extern void httpHeaderPutInt (HttpHeader * hdr, http_hdr_type type, int number);
+extern void httpHeaderPutTime (HttpHeader * hdr, http_hdr_type type, time_t htime);
+extern void httpHeaderPutStr (HttpHeader * hdr, http_hdr_type type, const char *str);
+extern void httpHeaderPutAuth (HttpHeader * hdr, const char *auth_scheme, const char *realm);
+extern void httpHeaderPutCc (HttpHeader * hdr, const HttpHdrCc * cc);
+extern void httpHeaderPutContRange (HttpHeader * hdr, const HttpHdrContRange * cr);
+extern void httpHeaderPutRange (HttpHeader * hdr, const HttpHdrRange * range);
+extern void httpHeaderPutExt (HttpHeader * hdr, const char *name, const char *value);
+extern int httpHeaderGetInt (const HttpHeader * hdr, http_hdr_type id);
+extern time_t httpHeaderGetTime (const HttpHeader * hdr, http_hdr_type id);
+extern TimeOrTag httpHeaderGetTimeOrTag (const HttpHeader * hdr, http_hdr_type id);
+extern HttpHdrCc *httpHeaderGetCc (const HttpHeader * hdr);
+extern ETag httpHeaderGetETag (const HttpHeader * hdr, http_hdr_type id);
+extern HttpHdrRange *httpHeaderGetRange (const HttpHeader * hdr);
+extern HttpHdrContRange *httpHeaderGetContRange (const HttpHeader * hdr);
+extern const char *httpHeaderGetStr (const HttpHeader * hdr, http_hdr_type id);
+extern const char *httpHeaderGetLastStr (const HttpHeader * hdr, http_hdr_type id);
+extern const char *httpHeaderGetAuth (const HttpHeader * hdr, http_hdr_type id, const char *auth_scheme);
+extern String httpHeaderGetList (const HttpHeader * hdr, http_hdr_type id);
+extern String httpHeaderGetStrOrList (const HttpHeader * hdr, http_hdr_type id);
+extern String httpHeaderGetByName (const HttpHeader * hdr, const char *name);
+extern int httpHeaderDelByName (HttpHeader * hdr, const char *name);
+extern int httpHeaderDelById (HttpHeader * hdr, http_hdr_type id);
+extern void httpHeaderDelAt (HttpHeader * hdr, HttpHeaderPos pos);
 /* avoid using these low level routines */
-extern HttpHeaderEntry *httpHeaderGetEntry(const HttpHeader * hdr, HttpHeaderPos * pos);
-extern HttpHeaderEntry *httpHeaderFindEntry(const HttpHeader * hdr, http_hdr_type id);
-extern void httpHeaderAddEntry(HttpHeader * hdr, HttpHeaderEntry * e);
-extern HttpHeaderEntry *httpHeaderEntryClone(const HttpHeaderEntry * e);
-extern void httpHeaderEntryPackInto(const HttpHeaderEntry * e, Packer * p);
+extern HttpHeaderEntry *httpHeaderGetEntry (const HttpHeader * hdr, HttpHeaderPos * pos);
+extern HttpHeaderEntry *httpHeaderFindEntry (const HttpHeader * hdr, http_hdr_type id);
+extern void httpHeaderAddEntry (HttpHeader * hdr, HttpHeaderEntry * e);
+extern HttpHeaderEntry *httpHeaderEntryClone (const HttpHeaderEntry * e);
+extern void httpHeaderEntryPackInto (const HttpHeaderEntry * e, Packer * p);
 /* store report about current header usage and other stats */
-extern void httpHeaderStoreReport(StoreEntry * e);
-extern void httpHdrMangleList(HttpHeader *, request_t *);
+extern void httpHeaderStoreReport (StoreEntry * e);
+extern void httpHdrMangleList (HttpHeader *, request_t *);
 
 /* Http Msg (currently in HttpReply.c @?@ ) */
-extern int httpMsgIsPersistent(http_version_t http_ver, const HttpHeader * hdr);
-extern int httpMsgIsolateHeaders(const char **parse_start, const char **blk_start, const char **blk_end);
+extern int httpMsgIsPersistent (http_version_t http_ver, const HttpHeader * hdr);
+extern int httpMsgIsolateHeaders (const char **parse_start, const char **blk_start, const char **blk_end);
 
 /* Http Reply */
-extern void httpReplyInitModule(void);
+extern void httpReplyInitModule (void);
 /* create/destroy */
-extern HttpReply *httpReplyCreate(void);
-extern void httpReplyDestroy(HttpReply * rep);
+extern HttpReply *httpReplyCreate (void);
+extern void httpReplyDestroy (HttpReply * rep);
 /* reset: clean, then init */
-extern void httpReplyReset(HttpReply * rep);
+extern void httpReplyReset (HttpReply * rep);
 /* absorb: copy the contents of a new reply to the old one, destroy new one */
-extern void httpReplyAbsorb(HttpReply * rep, HttpReply * new_rep);
+extern void httpReplyAbsorb (HttpReply * rep, HttpReply * new_rep);
 /* parse returns -1,0,+1 on error,need-more-data,success */
-extern int httpReplyParse(HttpReply * rep, const char *buf, ssize_t);
-extern void httpReplyPackInto(const HttpReply * rep, Packer * p);
+extern int httpReplyParse (HttpReply * rep, const char *buf, ssize_t);
+extern void httpReplyPackInto (const HttpReply * rep, Packer * p);
 /* ez-routines */
 /* mem-pack: returns a ready to use mem buffer with a packed reply */
-extern MemBuf httpReplyPack(const HttpReply * rep);
+extern MemBuf httpReplyPack (const HttpReply * rep);
 /* swap: create swap-based packer, pack, destroy packer */
-extern void httpReplySwapOut(const HttpReply * rep, StoreEntry * e);
+extern void httpReplySwapOut (const HttpReply * rep, StoreEntry * e);
 /* set commonly used info with one call */
-extern void httpReplySetHeaders(HttpReply * rep, http_version_t ver, http_status status,
-    const char *reason, const char *ctype, int clen, time_t lmt, time_t expires);
+extern void httpReplySetHeaders (HttpReply * rep, http_version_t ver, http_status status,
+const char *reason, const char *ctype, int clen, time_t lmt, time_t expires);
 /* do everything in one call: init, set, pack, clean, return MemBuf */
-extern MemBuf httpPackedReply(http_version_t ver, http_status status, const char *ctype,
-    int clen, time_t lmt, time_t expires);
+extern MemBuf httpPackedReply (http_version_t ver, http_status status, const char *ctype,
+                              int clen, time_t lmt, time_t expires);
 /* construct 304 reply and pack it into MemBuf, return MemBuf */
-extern MemBuf httpPacked304Reply(const HttpReply * rep);
+extern MemBuf httpPacked304Reply (const HttpReply * rep);
 /* update when 304 reply is received for a cached object */
-extern void httpReplyUpdateOnNotModified(HttpReply * rep, HttpReply * freshRep);
+extern void httpReplyUpdateOnNotModified (HttpReply * rep, HttpReply * freshRep);
 /* header manipulation */
-extern int httpReplyContentLen(const HttpReply * rep);
-extern const char *httpReplyContentType(const HttpReply * rep);
-extern time_t httpReplyExpires(const HttpReply * rep);
-extern int httpReplyHasCc(const HttpReply * rep, http_hdr_cc_type type);
-extern void httpRedirectReply(HttpReply *, http_status, const char *);
-extern int httpReplyBodySize(method_t, HttpReply *);
-extern void httpReplyBodyBuildSize(request_t *, HttpReply *, dlink_list *);
+extern int httpReplyContentLen (const HttpReply * rep);
+extern const char *httpReplyContentType (const HttpReply * rep);
+extern time_t httpReplyExpires (const HttpReply * rep);
+extern int httpReplyHasCc (const HttpReply * rep, http_hdr_cc_type type);
+extern void httpRedirectReply (HttpReply *, http_status, const char *);
+extern int httpReplyBodySize (method_t, HttpReply *);
+extern void httpReplyBodyBuildSize (request_t *, HttpReply *, dlink_list *);
 
 /* Http Request */
-extern request_t *requestCreate(method_t, protocol_t, const char *urlpath);
-extern void requestDestroy(request_t *);
-extern request_t *requestLink(request_t *);
-extern void requestUnlink(request_t *);
-extern int httpRequestParseHeader(request_t * req, const char *parse_start);
-extern void httpRequestSwapOut(const request_t * req, StoreEntry * e);
-extern void httpRequestPack(const request_t * req, Packer * p);
-extern int httpRequestPrefixLen(const request_t * req);
-extern int httpRequestHdrAllowed(const HttpHeaderEntry * e, String * strConnection);
-extern int httpRequestHdrAllowedByName(http_hdr_type id);
-
-extern void icmpOpen(void);
-extern void icmpClose(void);
-extern void icmpPing(struct in_addr to);
-extern void icmpSourcePing(struct in_addr to, const icp_common_t *, const char *url);
-extern void icmpDomainPing(struct in_addr to, const char *domain);
-
-extern void *icpCreateMessage(icp_opcode opcode,
-    int flags,
-    const char *url,
-    int reqnum,
-    int pad);
-extern int icpUdpSend(int, const struct sockaddr_in *, icp_common_t *, log_type, int);
+extern request_t *requestCreate (method_t, protocol_t, const char *urlpath);
+extern void requestDestroy (request_t *);
+extern request_t *requestLink (request_t *);
+extern void requestUnlink (request_t *);
+extern int httpRequestParseHeader (request_t * req, const char *parse_start);
+extern void httpRequestSwapOut (const request_t * req, StoreEntry * e);
+extern void httpRequestPack (const request_t * req, Packer * p);
+extern int httpRequestPrefixLen (const request_t * req);
+extern int httpRequestHdrAllowed (const HttpHeaderEntry * e, String * strConnection);
+extern int httpRequestHdrAllowedByName (http_hdr_type id);
+
+extern void icmpOpen (void);
+extern void icmpClose (void);
+extern void icmpPing (struct in_addr to);
+extern void icmpSourcePing (struct in_addr to, const icp_common_t *, const char *url);
+extern void icmpDomainPing (struct in_addr to, const char *domain);
+
+extern void *icpCreateMessage (icp_opcode opcode,
+                              int flags,
+                              const char *url,
+                              int reqnum,
+                              int pad);
+extern int icpUdpSend (int, const struct sockaddr_in *, icp_common_t *, log_type, int);
 extern PF icpHandleUdp;
 extern PF icpUdpSendQueue;
 extern PF httpAccept;
 
 #ifdef SQUID_SNMP
 extern PF snmpHandleUdp;
-extern void snmpInit(void);
-extern void snmpConnectionOpen(void);
-extern void snmpConnectionShutdown(void);
-extern void snmpConnectionClose(void);
-extern void snmpDebugOid(int lvl, oid * Name, snint Len);
-extern void addr2oid(struct in_addr addr, oid * Dest);
-extern struct in_addr *oid2addr(oid * id);
-extern struct in_addr *client_entry(struct in_addr *current);
-extern variable_list *snmp_basicFn(variable_list *, snint *);
-extern variable_list *snmp_confFn(variable_list *, snint *);
-extern variable_list *snmp_sysFn(variable_list *, snint *);
-extern variable_list *snmp_prfSysFn(variable_list *, snint *);
-extern variable_list *snmp_prfProtoFn(variable_list *, snint *);
-extern variable_list *snmp_prfPeerFn(variable_list *, snint *);
-extern variable_list *snmp_netIpFn(variable_list *, snint *);
-extern variable_list *snmp_netFqdnFn(variable_list *, snint *);
+extern void snmpInit (void);
+extern void snmpConnectionOpen (void);
+extern void snmpConnectionShutdown (void);
+extern void snmpConnectionClose (void);
+extern void snmpDebugOid (int lvl, oid * Name, snint Len);
+extern void addr2oid (struct in_addr addr, oid * Dest);
+extern struct in_addr *oid2addr (oid * id);
+extern struct in_addr *client_entry (struct in_addr *current);
+extern variable_list *snmp_basicFn (variable_list *, snint *);
+extern variable_list *snmp_confFn (variable_list *, snint *);
+extern variable_list *snmp_sysFn (variable_list *, snint *);
+extern variable_list *snmp_prfSysFn (variable_list *, snint *);
+extern variable_list *snmp_prfProtoFn (variable_list *, snint *);
+extern variable_list *snmp_prfPeerFn (variable_list *, snint *);
+extern variable_list *snmp_netIpFn (variable_list *, snint *);
+extern variable_list *snmp_netFqdnFn (variable_list *, snint *);
 #if USE_DNSSERVERS
-extern variable_list *snmp_netDnsFn(variable_list *, snint *);
+extern variable_list *snmp_netDnsFn (variable_list *, snint *);
 #else
-extern variable_list *snmp_netIdnsFn(variable_list *, snint *);
+extern variable_list *snmp_netIdnsFn (variable_list *, snint *);
 #endif
-extern variable_list *snmp_meshPtblFn(variable_list *, snint *);
-extern variable_list *snmp_meshCtblFn(variable_list *, snint *);
+extern variable_list *snmp_meshPtblFn (variable_list *, snint *);
+extern variable_list *snmp_meshCtblFn (variable_list *, snint *);
 #endif /* SQUID_SNMP */
 
 #if USE_WCCP
-extern void wccpInit(void);
-extern void wccpConnectionOpen(void);
-extern void wccpConnectionShutdown(void);
-extern void wccpConnectionClose(void);
+extern void wccpInit (void);
+extern void wccpConnectionOpen (void);
+extern void wccpConnectionShutdown (void);
+extern void wccpConnectionClose (void);
 #endif /* USE_WCCP */
 
-extern void icpHandleIcpV3(int, struct sockaddr_in, char *, int);
-extern int icpCheckUdpHit(StoreEntry *, request_t * request);
-extern void icpConnectionsOpen(void);
-extern void icpConnectionShutdown(void);
-extern void icpConnectionClose(void);
-extern int icpSetCacheKey(const cache_key * key);
-extern const cache_key *icpGetCacheKey(const char *url, int reqnum);
-
-extern void ipcache_nbgethostbyname(const char *name,
-    IPH * handler,
-    void *handlerData);
+extern void icpHandleIcpV3 (int, struct sockaddr_in, char *, int);
+extern int icpCheckUdpHit (StoreEntry *, request_t * request);
+extern void icpConnectionsOpen (void);
+extern void icpConnectionShutdown (void);
+extern void icpConnectionClose (void);
+extern int icpSetCacheKey (const cache_key * key);
+extern const cache_key *icpGetCacheKey (const char *url, int reqnum);
+
+extern void ipcache_nbgethostbyname (const char *name,
+                                    IPH * handler,
+                                    void *handlerData);
 extern EVH ipcache_purgelru;
-extern const ipcache_addrs *ipcache_gethostbyname(const char *, int flags);
-extern void ipcacheInvalidate(const char *);
-extern void ipcacheReleaseInvalid(const char *);
-extern void ipcache_init(void);
-extern void stat_ipcache_get(StoreEntry *);
-extern int ipcacheQueueDrain(void);
-extern void ipcacheCycleAddr(const char *name, ipcache_addrs *);
-extern void ipcacheMarkBadAddr(const char *name, struct in_addr);
-extern void ipcacheMarkGoodAddr(const char *name, struct in_addr);
-extern void ipcacheFreeMemory(void);
-extern ipcache_addrs *ipcacheCheckNumeric(const char *name);
-extern void ipcache_restart(void);
-extern int ipcacheAddEntryFromHosts(const char *name, const char *ipaddr);
+extern const ipcache_addrs *ipcache_gethostbyname (const char *, int flags);
+extern void ipcacheInvalidate (const char *);
+extern void ipcacheReleaseInvalid (const char *);
+extern void ipcache_init (void);
+extern void stat_ipcache_get (StoreEntry *);
+extern int ipcacheQueueDrain (void);
+extern void ipcacheCycleAddr (const char *name, ipcache_addrs *);
+extern void ipcacheMarkBadAddr (const char *name, struct in_addr);
+extern void ipcacheMarkGoodAddr (const char *name, struct in_addr);
+extern void ipcacheFreeMemory (void);
+extern ipcache_addrs *ipcacheCheckNumeric (const char *name);
+extern void ipcache_restart (void);
+extern int ipcacheAddEntryFromHosts (const char *name, const char *ipaddr);
 
 /* MemBuf */
 /* init with specific sizes */
-extern void memBufInit(MemBuf * mb, mb_size_t szInit, mb_size_t szMax);
+extern void memBufInit (MemBuf * mb, mb_size_t szInit, mb_size_t szMax);
 /* init with defaults */
-extern void memBufDefInit(MemBuf * mb);
+extern void memBufDefInit (MemBuf * mb);
 /* cleans mb; last function to call if you do not give .buf away */
-extern void memBufClean(MemBuf * mb);
+extern void memBufClean (MemBuf * mb);
 /* resets mb preserving (or initializing if needed) memory buffer */
-extern void memBufReset(MemBuf * mb);
+extern void memBufReset (MemBuf * mb);
 /* unfirtunate hack to test if the buffer has been Init()ialized */
-extern int memBufIsNull(MemBuf * mb);
+extern int memBufIsNull (MemBuf * mb);
 /* calls memcpy, appends exactly size bytes, extends buffer if needed */
-extern void memBufAppend(MemBuf * mb, const char *buf, mb_size_t size);
+extern void memBufAppend (MemBuf * mb, const char *buf, mb_size_t size);
 /* calls snprintf, extends buffer if needed */
 #if STDC_HEADERS
-extern void memBufPrintf(MemBuf * mb, const char *fmt,...);
+extern void memBufPrintf (MemBuf * mb, const char *fmt,...);
 #else
-extern void memBufPrintf();
+extern void memBufPrintf ();
 #endif
 /* vprintf for other printf()'s to use */
-extern void memBufVPrintf(MemBuf * mb, const char *fmt, va_list ap);
+extern void memBufVPrintf (MemBuf * mb, const char *fmt, va_list ap);
 /* returns free() function to be used, _freezes_ the object! */
-extern FREE *memBufFreeFunc(MemBuf * mb);
+extern FREE *memBufFreeFunc (MemBuf * mb);
 /* puts report on MemBuf _module_ usage into mb */
-extern void memBufReport(MemBuf * mb);
-
-extern char *mime_get_header(const char *mime, const char *header);
-extern char *mime_get_header_field(const char *mime, const char *name, const char *prefix);
-extern size_t headersEnd(const char *, size_t);
-extern const char *mime_get_auth(const char *hdr, const char *auth_scheme, const char **auth_field);
-
-extern void mimeInit(char *filename);
-extern void mimeFreeMemory(void);
-extern char *mimeGetContentEncoding(const char *fn);
-extern char *mimeGetContentType(const char *fn);
-extern char *mimeGetIcon(const char *fn);
-extern const char *mimeGetIconURL(const char *fn);
-extern char mimeGetTransferMode(const char *fn);
-extern int mimeGetDownloadOption(const char *fn);
-extern int mimeGetViewOption(const char *fn);
-
-extern int mcastSetTtl(int, int);
+extern void memBufReport (MemBuf * mb);
+
+extern char *mime_get_header (const char *mime, const char *header);
+extern char *mime_get_header_field (const char *mime, const char *name, const char *prefix);
+extern size_t headersEnd (const char *, size_t);
+extern const char *mime_get_auth (const char *hdr, const char *auth_scheme, const char **auth_field);
+
+extern void mimeInit (char *filename);
+extern void mimeFreeMemory (void);
+extern char *mimeGetContentEncoding (const char *fn);
+extern char *mimeGetContentType (const char *fn);
+extern char *mimeGetIcon (const char *fn);
+extern const char *mimeGetIconURL (const char *fn);
+extern char mimeGetTransferMode (const char *fn);
+extern int mimeGetDownloadOption (const char *fn);
+extern int mimeGetViewOption (const char *fn);
+
+extern int mcastSetTtl (int, int);
 extern IPH mcastJoinGroups;
 
 /* Labels for hierachical log file */
 /* put them all here for easier reference when writing a logfile analyzer */
 
 
-extern peer *getFirstPeer(void);
-extern peer *getFirstUpParent(request_t *);
-extern peer *getNextPeer(peer *);
-extern peer *getSingleParent(request_t *);
-extern int neighborsCount(request_t *);
-extern int neighborsUdpPing(request_t *,
-    StoreEntry *,
-    IRCB * callback,
-    void *data,
-    int *exprep,
-    int *timeout);
-extern void neighborAddAcl(const char *, const char *);
-extern void neighborsUdpAck(const cache_key *, icp_common_t *, const struct sockaddr_in *);
-extern void neighborAdd(const char *, const char *, int, int, int, int, int);
-extern void neighbors_open(int);
-extern peer *peerFindByName(const char *);
-extern peer *peerFindByNameAndPort(const char *, unsigned short);
-extern peer *getDefaultParent(request_t * request);
-extern peer *getRoundRobinParent(request_t * request);
+extern peer *getFirstPeer (void);
+extern peer *getFirstUpParent (request_t *);
+extern peer *getNextPeer (peer *);
+extern peer *getSingleParent (request_t *);
+extern int neighborsCount (request_t *);
+extern int neighborsUdpPing (request_t *,
+                            StoreEntry *,
+                            IRCB * callback,
+                            void *data,
+                            int *exprep,
+                            int *timeout);
+extern void neighborAddAcl (const char *, const char *);
+extern void neighborsUdpAck (const cache_key *, icp_common_t *, const struct sockaddr_in *);
+extern void neighborAdd (const char *, const char *, int, int, int, int, int);
+extern void neighbors_open (int);
+extern peer *peerFindByName (const char *);
+extern peer *peerFindByNameAndPort (const char *, unsigned short);
+extern peer *getDefaultParent (request_t * request);
+extern peer *getRoundRobinParent (request_t * request);
 EVH peerClearRR;
-extern peer *getAnyParent(request_t * request);
-extern lookup_t peerDigestLookup(peer * p, request_t * request);
-extern peer *neighborsDigestSelect(request_t * request);
-extern void peerNoteDigestLookup(request_t * request, peer * p, lookup_t lookup);
-extern void peerNoteDigestGone(peer * p);
-extern int neighborUp(const peer * e);
+extern peer *getAnyParent (request_t * request);
+extern lookup_t peerDigestLookup (peer * p, request_t * request);
+extern peer *neighborsDigestSelect (request_t * request);
+extern void peerNoteDigestLookup (request_t * request, peer * p, lookup_t lookup);
+extern void peerNoteDigestGone (peer * p);
+extern int neighborUp (const peer * e);
 extern CBDUNL peerDestroy;
-extern char *neighborTypeStr(const peer * e);
-extern peer_t neighborType(const peer *, const request_t *);
-extern void peerConnectFailed(peer *);
-extern void peerConnectSucceded(peer *);
-extern void dump_peer_options(StoreEntry *, peer *);
-extern int peerHTTPOkay(const peer *, request_t *);
-extern peer *whichPeer(const struct sockaddr_in *from);
+extern char *neighborTypeStr (const peer * e);
+extern peer_t neighborType (const peer *, const request_t *);
+extern void peerConnectFailed (peer *);
+extern void peerConnectSucceded (peer *);
+extern void dump_peer_options (StoreEntry *, peer *);
+extern int peerHTTPOkay (const peer *, request_t *);
+extern peer *whichPeer (const struct sockaddr_in *from);
 #if USE_HTCP
-extern void neighborsHtcpReply(const cache_key *, htcpReplyData *, const struct sockaddr_in *);
+extern void neighborsHtcpReply (const cache_key *, htcpReplyData *, const struct sockaddr_in *);
 #endif
 
-extern void netdbInit(void);
-extern void netdbHandlePingReply(const struct sockaddr_in *from, int hops, int rtt);
-extern void netdbPingSite(const char *hostname);
-extern void netdbInit(void);
-extern void netdbDump(StoreEntry *);
-extern int netdbHops(struct in_addr);
-extern void netdbFreeMemory(void);
-extern int netdbHostHops(const char *host);
-extern int netdbHostRtt(const char *host);
-extern int netdbHostPeerRtt(const char *host, peer * peer);
-extern void netdbUpdatePeer(request_t *, peer * e, int rtt, int hops);
-extern void netdbDeleteAddrNetwork(struct in_addr addr);
-extern int netdbHostPeerRtt(const char *host, peer * peer);
-extern void netdbBinaryExchange(StoreEntry *);
+extern void netdbInit (void);
+extern void netdbHandlePingReply (const struct sockaddr_in *from, int hops, int rtt);
+extern void netdbPingSite (const char *hostname);
+extern void netdbDump (StoreEntry *);
+extern int netdbHops (struct in_addr);
+extern void netdbFreeMemory (void);
+extern int netdbHostHops (const char *host);
+extern int netdbHostRtt (const char *host);
+extern int netdbHostPeerRtt (const char *host, peer * p);
+extern void netdbUpdatePeer (request_t *, peer * e, int rtt, int hops);
+extern void netdbDeleteAddrNetwork (struct in_addr addr);
+extern void netdbBinaryExchange (StoreEntry *);
 extern EVH netdbExchangeStart;
-extern void netdbExchangeUpdatePeer(struct in_addr, peer *, double, double);
-extern peer *netdbClosestParent(request_t *);
-extern void netdbHostData(const char *host, int *samp, int *rtt, int *hops);
+extern void netdbExchangeUpdatePeer (struct in_addr, peer *, double, double);
+extern peer *netdbClosestParent (request_t *);
+extern void netdbHostData (const char *host, int *samp, int *rtt, int *hops);
 
-extern void cachemgrStart(int fd, request_t * request, StoreEntry * entry);
-extern void cachemgrRegister(const char *, const char *, OBJH *, int, int);
-extern void cachemgrInit(void);
+extern void cachemgrStart (int fd, request_t * request, StoreEntry * entry);
+extern void cachemgrRegister (const char *, const char *, OBJH *, int, int);
+extern void cachemgrInit (void);
 
-extern void peerSelect(request_t *, StoreEntry *, PSC *, void *data);
-extern void peerSelectInit(void);
+extern void peerSelect (request_t *, StoreEntry *, PSC *, void *data);
+extern void peerSelectInit (void);
 
 /* peer_digest.c */
-extern PeerDigest *peerDigestCreate(peer * p);
-extern void peerDigestNeeded(PeerDigest * pd);
-extern void peerDigestNotePeerGone(PeerDigest * pd);
-extern void peerDigestStatsReport(const PeerDigest * pd, StoreEntry * e);
+extern PeerDigest *peerDigestCreate (peer * p);
+extern void peerDigestNeeded (PeerDigest * pd);
+extern void peerDigestNotePeerGone (PeerDigest * pd);
+extern void peerDigestStatsReport (const PeerDigest * pd, StoreEntry * e);
 
 /* forward.c */
-extern void fwdStart(int, StoreEntry *, request_t *);
+extern void fwdStart (int, StoreEntry *, request_t *);
 extern DEFER fwdCheckDeferRead;
-extern void fwdFail(FwdState *, ErrorState *);
-extern void fwdUnregister(int fd, FwdState *);
-extern void fwdComplete(FwdState * fwdState);
-extern void fwdInit(void);
-extern int fwdReforwardableStatus(http_status s);
-extern void fwdServersFree(FwdServer ** FS);
+extern void fwdFail (FwdState *, ErrorState *);
+extern void fwdUnregister (int fd, FwdState *);
+extern void fwdComplete (FwdState * fwdState);
+extern void fwdInit (void);
+extern int fwdReforwardableStatus (http_status s);
+extern void fwdServersFree (FwdServer ** FS);
 #if WIP_FWD_LOG
-extern void fwdUninit(void);
-extern void fwdLogRotate(void);
-extern void fwdStatus(FwdState *, http_status);
+extern void fwdUninit (void);
+extern void fwdLogRotate (void);
+extern void fwdStatus (FwdState *, http_status);
 #endif
-struct in_addr getOutgoingAddr(request_t * request);
-unsigned long getOutgoingTOS(request_t * request);
+struct in_addr getOutgoingAddr (request_t * request);
+unsigned long getOutgoingTOS (request_t * request);
 
-extern void urnStart(request_t *, StoreEntry *);
+extern void urnStart (request_t *, StoreEntry *);
 
-extern void redirectStart(clientHttpRequest *, RH *, void *);
-extern void redirectInit(void);
-extern void redirectShutdown(void);
+extern void redirectStart (clientHttpRequest *, RH *, void *);
+extern void redirectInit (void);
+extern void redirectShutdown (void);
 
 /* auth_modules.c */
-extern void authSchemeSetup(void);
+extern void authSchemeSetup (void);
 
 /* authenticate.c */
-extern void authenticateAuthUserMerge(auth_user_t *, auth_user_t *);
-extern auth_user_t *authenticateAuthUserNew(const char *);
-extern int authenticateAuthSchemeId(const char *typestr);
-extern void authenticateStart(auth_user_request_t *, RH *, void *);
-extern void authenticateSchemeInit(void);
-extern void authenticateInit(authConfig *);
-extern void authenticateShutdown(void);
-extern void authenticateFixHeader(HttpReply *, auth_user_request_t *, request_t *, int, int);
-extern void authenticateAddTrailer(HttpReply *, auth_user_request_t *, request_t *, int);
-extern auth_acl_t authenticateAuthenticate(auth_user_request_t **, http_hdr_type, request_t *, ConnStateData *, struct in_addr);
-extern void authenticateAuthUserUnlock(auth_user_t * auth_user);
-extern void authenticateAuthUserLock(auth_user_t * auth_user);
-extern void authenticateAuthUserRequestUnlock(auth_user_request_t *);
-extern void authenticateAuthUserRequestLock(auth_user_request_t *);
-extern char *authenticateAuthUserRequestMessage(auth_user_request_t *);
-extern int authenticateAuthUserInuse(auth_user_t * auth_user);
-extern void authenticateAuthUserRequestSetIp(auth_user_request_t *, struct in_addr);
-extern void authenticateAuthUserRequestRemoveIp(auth_user_request_t *, struct in_addr);
-extern void authenticateAuthUserRequestClearIp(auth_user_request_t *);
-extern size_t authenticateAuthUserRequestIPCount(auth_user_request_t *);
-extern int authenticateDirection(auth_user_request_t *);
+extern void authenticateAuthUserMerge (auth_user_t *, auth_user_t *);
+extern auth_user_t *authenticateAuthUserNew (const char *);
+extern int authenticateAuthSchemeId (const char *typestr);
+extern void authenticateStart (auth_user_request_t *, RH *, void *);
+extern void authenticateSchemeInit (void);
+extern void authenticateInit (authConfig *);
+extern void authenticateShutdown (void);
+extern void authenticateFixHeader (HttpReply *, auth_user_request_t *, request_t *, int, int);
+extern void authenticateAddTrailer (HttpReply *, auth_user_request_t *, request_t *, int);
+extern auth_acl_t authenticateAuthenticate (auth_user_request_t **, http_hdr_type, request_t *, ConnStateData *, struct in_addr);
+extern void authenticateAuthUserUnlock (auth_user_t * auth_user);
+extern void authenticateAuthUserLock (auth_user_t * auth_user);
+extern void authenticateAuthUserRequestUnlock (auth_user_request_t *);
+extern void authenticateAuthUserRequestLock (auth_user_request_t *);
+extern char *authenticateAuthUserRequestMessage (auth_user_request_t *);
+extern int authenticateAuthUserInuse (auth_user_t * auth_user);
+extern void authenticateAuthUserRequestSetIp (auth_user_request_t *, struct in_addr);
+extern void authenticateAuthUserRequestRemoveIp (auth_user_request_t *, struct in_addr);
+extern void authenticateAuthUserRequestClearIp (auth_user_request_t *);
+extern size_t authenticateAuthUserRequestIPCount (auth_user_request_t *);
+extern int authenticateDirection (auth_user_request_t *);
 extern FREE authenticateFreeProxyAuthUser;
-extern void authenticateFreeProxyAuthUserACLResults(void *data);
-extern void authenticateProxyUserCacheCleanup(void *);
-extern void authenticateInitUserCache(void);
-extern int authenticateActiveSchemeCount(void);
-extern int authenticateSchemeCount(void);
-extern void authenticateUserNameCacheAdd(auth_user_t * auth_user);
-extern int authenticateCheckAuthUserIP(struct in_addr request_src_addr, auth_user_request_t * auth_user);
-extern int authenticateUserAuthenticated(auth_user_request_t *);
-extern void authenticateUserCacheRestart(void);
-extern char *authenticateUserUsername(auth_user_t *);
-extern char *authenticateUserRequestUsername(auth_user_request_t *);
-extern int authenticateValidateUser(auth_user_request_t *);
-extern void authenticateOnCloseConnection(ConnStateData * conn);
-extern void authSchemeAdd(char *type, AUTHSSETUP * setup);
-
-extern void refreshAddToList(const char *, int, time_t, int, time_t);
-extern int refreshIsCachable(const StoreEntry *);
-extern int refreshCheckHTTP(const StoreEntry *, request_t *);
-extern int refreshCheckICP(const StoreEntry *, request_t *);
-extern int refreshCheckHTCP(const StoreEntry *, request_t *);
-extern int refreshCheckDigest(const StoreEntry *, time_t delta);
-extern time_t getMaxAge(const char *url);
-extern void refreshInit(void);
-
-extern void serverConnectionsClose(void);
-extern void shut_down(int);
-
-
-extern void start_announce(void *unused);
-extern void sslStart(int fd, const char *, request_t *, size_t *, int *);
-extern void waisStart(FwdState *);
+extern void authenticateFreeProxyAuthUserACLResults (void *data);
+extern void authenticateProxyUserCacheCleanup (void *);
+extern void authenticateInitUserCache (void);
+extern int authenticateActiveSchemeCount (void);
+extern int authenticateSchemeCount (void);
+extern void authenticateUserNameCacheAdd (auth_user_t * auth_user);
+extern int authenticateCheckAuthUserIP (struct in_addr request_src_addr, auth_user_request_t * auth_user);
+extern int authenticateUserAuthenticated (auth_user_request_t *);
+extern void authenticateUserCacheRestart (void);
+extern char *authenticateUserUsername (auth_user_t *);
+extern char *authenticateUserRequestUsername (auth_user_request_t *);
+extern int authenticateValidateUser (auth_user_request_t *);
+extern void authenticateOnCloseConnection (ConnStateData * conn);
+extern void authSchemeAdd (char *type, AUTHSSETUP * setup);
+
+extern void refreshAddToList (const char *, int, time_t, int, time_t);
+extern int refreshIsCachable (const StoreEntry *);
+extern int refreshCheckHTTP (const StoreEntry *, request_t *);
+extern int refreshCheckICP (const StoreEntry *, request_t *);
+extern int refreshCheckHTCP (const StoreEntry *, request_t *);
+extern int refreshCheckDigest (const StoreEntry *, time_t delta);
+extern time_t getMaxAge (const char *url);
+extern void refreshInit (void);
+
+extern void serverConnectionsClose (void);
+extern void shut_down (int);
+
+
+extern void start_announce (void *unused);
+extern void sslStart (int fd, const char *, request_t *, size_t *, int *);
+extern void waisStart (FwdState *);
 
 /* ident.c */
 #if USE_IDENT
-extern void identStart(struct sockaddr_in *me, struct sockaddr_in *peer, IDCB * callback, void *cbdata);
-extern void identInit(void);
+extern void identStart (struct sockaddr_in *me, struct sockaddr_in *my_peer,
+                       IDCB * callback, void *cbdata);
+extern void identInit (void);
 #endif
 
-extern void statInit(void);
-extern void statFreeMemory(void);
-extern double median_svc_get(int, int);
-extern void pconnHistCount(int, int);
-extern int stat5minClientRequests(void);
-extern double stat5minCPUUsage(void);
-extern const char *storeEntryFlags(const StoreEntry *);
-extern double statRequestHitRatio(int minutes);
-extern double statRequestHitMemoryRatio(int minutes);
-extern double statRequestHitDiskRatio(int minutes);
-extern double statByteHitRatio(int minutes);
-extern int storeEntryLocked(const StoreEntry *);
+extern void statInit (void);
+extern void statFreeMemory (void);
+extern double median_svc_get (int, int);
+extern void pconnHistCount (int, int);
+extern int stat5minClientRequests (void);
+extern double stat5minCPUUsage (void);
+extern const char *storeEntryFlags (const StoreEntry *);
+extern double statRequestHitRatio (int minutes);
+extern double statRequestHitMemoryRatio (int minutes);
+extern double statRequestHitDiskRatio (int minutes);
+extern double statByteHitRatio (int minutes);
+extern int storeEntryLocked (const StoreEntry *);
 
 
 /* StatHist */
-extern void statHistClean(StatHist * H);
-extern void statHistCount(StatHist * H, double val);
-extern void statHistCopy(StatHist * Dest, const StatHist * Orig);
-extern void statHistSafeCopy(StatHist * Dest, const StatHist * Orig);
-extern double statHistDeltaMedian(const StatHist * A, const StatHist * B);
-extern void statHistDump(const StatHist * H, StoreEntry * sentry, StatHistBinDumper * bd);
-extern void statHistLogInit(StatHist * H, int capacity, double min, double max);
-extern void statHistEnumInit(StatHist * H, int last_enum);
-extern void statHistIntInit(StatHist * H, int n);
+extern void statHistClean (StatHist * H);
+extern void statHistCount (StatHist * H, double val);
+extern void statHistCopy (StatHist * Dest, const StatHist * Orig);
+extern void statHistSafeCopy (StatHist * Dest, const StatHist * Orig);
+extern double statHistDeltaMedian (const StatHist * A, const StatHist * B);
+extern void statHistDump (const StatHist * H, StoreEntry * sentry, StatHistBinDumper * bd);
+extern void statHistLogInit (StatHist * H, int capacity, double min, double max);
+extern void statHistEnumInit (StatHist * H, int last_enum);
+extern void statHistIntInit (StatHist * H, int n);
 extern StatHistBinDumper statHistEnumDumper;
 extern StatHistBinDumper statHistIntDumper;
 
 
 /* MemMeter */
-extern void memMeterSyncHWater(MemMeter * m);
+extern void memMeterSyncHWater (MemMeter * m);
 #define memMeterCheckHWater(m) { if ((m).hwater_level < (m).level) memMeterSyncHWater(&(m)); }
 #define memMeterInc(m) { (m).level++; memMeterCheckHWater(m); }
 #define memMeterDec(m) { (m).level--; }
@@ -833,340 +832,337 @@ extern void memMeterSyncHWater(MemMeter * m);
 #define memMeterDel(m, sz) { (m).level -= (sz); }
 
 /* mem */
-extern void memInit(void);
-extern void memClean(void);
-extern void memInitModule(void);
-extern void memCleanModule(void);
-extern void memConfigure(void);
-extern void *memAllocate(mem_type);
-extern void *memAllocBuf(size_t net_size, size_t * gross_size);
-extern void memFree(void *, int type);
-extern void memFreeBuf(size_t size, void *);
-extern void memFree2K(void *);
-extern void memFree4K(void *);
-extern void memFree8K(void *);
-extern void memFree16K(void *);
-extern void memFree32K(void *);
-extern void memFree64K(void *);
-extern int memInUse(mem_type);
-extern size_t memTotalAllocated(void);
-extern void memDataInit(mem_type, const char *, size_t, int);
-extern void memCheckInit(void);
+extern void memInit (void);
+extern void memClean (void);
+extern void memInitModule (void);
+extern void memCleanModule (void);
+extern void memConfigure (void);
+extern void *memAllocate (mem_type);
+extern void *memAllocBuf (size_t net_size, size_t * gross_size);
+extern void memFree (void *, int type);
+extern void memFreeBuf (size_t size, void *);
+extern void memFree2K (void *);
+extern void memFree4K (void *);
+extern void memFree8K (void *);
+extern void memFree16K (void *);
+extern void memFree32K (void *);
+extern void memFree64K (void *);
+extern int memInUse (mem_type);
+extern size_t memTotalAllocated (void);
+extern void memDataInit (mem_type, const char *, size_t, int);
+extern void memCheckInit (void);
 
 /* MemPool */
-extern MemPool *memPoolCreate(const char *label, size_t obj_size);
-extern void memPoolDestroy(MemPool * pool);
-extern void *memPoolAlloc(MemPool * pool);
-extern void memPoolFree(MemPool * pool, void *obj);
-extern int memPoolWasUsed(const MemPool * pool);
-extern int memPoolInUseCount(const MemPool * pool);
-extern size_t memPoolInUseSize(const MemPool * pool);
-extern int memPoolUsedCount(const MemPool * pool);
-extern void memPoolReport(const MemPool * pool, StoreEntry * e);
+extern MemPool *memPoolCreate (const char *label, size_t obj_size);
+extern void memPoolDestroy (MemPool * pool);
+extern void *memPoolAlloc (MemPool * pool);
+extern void memPoolFree (MemPool * pool, void *obj);
+extern int memPoolWasUsed (const MemPool * pool);
+extern int memPoolInUseCount (const MemPool * pool);
+extern size_t memPoolInUseSize (const MemPool * pool);
+extern int memPoolUsedCount (const MemPool * pool);
+extern void memPoolReport (const MemPool * pool, StoreEntry * e);
 
 /* Mem */
-extern void memReport(StoreEntry * e);
+extern void memReport (StoreEntry * e);
 
-extern int stmemFreeDataUpto(mem_hdr *, int);
-extern void stmemAppend(mem_hdr *, const char *, int);
-extern ssize_t stmemCopy(const mem_hdr *, off_t, char *, size_t);
-extern void stmemFree(mem_hdr *);
-extern void stmemFreeData(mem_hdr *);
+extern int stmemFreeDataUpto (mem_hdr *, int);
+extern void stmemAppend (mem_hdr *, const char *, int);
+extern ssize_t stmemCopy (const mem_hdr *, off_t, char *, size_t);
+extern void stmemFree (mem_hdr *);
+extern void stmemFreeData (mem_hdr *);
 
 /* ----------------------------------------------------------------- */
 
 /*
  * store.c
  */
-extern StoreEntry *new_StoreEntry(int, const char *, const char *);
-extern StoreEntry *storeGet(const cache_key *);
-extern StoreEntry *storeGetPublic(const char *uri, const method_t method);
-extern StoreEntry *storeGetPublicByRequest(request_t * request);
-extern StoreEntry *storeGetPublicByRequestMethod(request_t * request, const method_t method);
-extern StoreEntry *storeCreateEntry(const char *, const char *, request_flags, method_t);
-extern void storeSetPublicKey(StoreEntry *);
-extern void storeComplete(StoreEntry *);
-extern void storeInit(void);
-extern int storeClientWaiting(const StoreEntry *);
-extern void storeAbort(StoreEntry *);
-extern void storeAppend(StoreEntry *, const char *, int);
-extern void storeLockObject(StoreEntry *);
-extern void storeRelease(StoreEntry *);
-extern int storeUnlockObject(StoreEntry *);
-extern int storePendingNClients(const StoreEntry *);
+extern StoreEntry *new_StoreEntry (int, const char *, const char *);
+extern StoreEntry *storeGet (const cache_key *);
+extern StoreEntry *storeGetPublic (const char *uri, const method_t method);
+extern StoreEntry *storeGetPublicByRequest (request_t * request);
+extern StoreEntry *storeGetPublicByRequestMethod (request_t * request, const method_t method);
+extern StoreEntry *storeCreateEntry (const char *, const char *, request_flags, method_t);
+extern void storeSetPublicKey (StoreEntry *);
+extern void storeComplete (StoreEntry *);
+extern void storeInit (void);
+extern int storeClientWaiting (const StoreEntry *);
+extern void storeAbort (StoreEntry *);
+extern void storeAppend (StoreEntry *, const char *, int);
+extern void storeLockObject (StoreEntry *);
+extern void storeRelease (StoreEntry *);
+extern int storeUnlockObject (StoreEntry *);
 extern EVH storeMaintainSwapSpace;
-extern void storeExpireNow(StoreEntry *);
-extern void storeReleaseRequest(StoreEntry *);
-extern off_t storeLowestMemReaderOffset(const StoreEntry *);
-extern void storeConfigure(void);
-extern void storeNegativeCache(StoreEntry *);
-extern void storeFreeMemory(void);
-extern int expiresMoreThan(time_t, time_t);
-extern void InvokeHandlers(StoreEntry *);
-extern int storeEntryValidToSend(StoreEntry *);
-extern void storeTimestampsSet(StoreEntry *);
-extern void storeRegisterAbort(StoreEntry * e, STABH * cb, void *);
-extern void storeUnregisterAbort(StoreEntry * e);
-extern void storeMemObjectDump(MemObject * mem);
-extern void storeEntryDump(const StoreEntry * e, int debug_lvl);
-extern const char *storeUrl(const StoreEntry *);
-extern void storeCreateMemObject(StoreEntry *, const char *, const char *);
-extern void storeCopyNotModifiedReplyHeaders(MemObject * O, MemObject * N);
-extern void storeBuffer(StoreEntry *);
-extern void storeBufferFlush(StoreEntry *);
-extern void storeHashInsert(StoreEntry * e, const cache_key *);
-extern void storeSetMemStatus(StoreEntry * e, int);
+extern void storeExpireNow (StoreEntry *);
+extern void storeReleaseRequest (StoreEntry *);
+extern void storeConfigure (void);
+extern void storeNegativeCache (StoreEntry *);
+extern void storeFreeMemory (void);
+extern int expiresMoreThan (time_t, time_t);
+extern int storeEntryValidToSend (StoreEntry *);
+extern void storeTimestampsSet (StoreEntry *);
+extern void storeRegisterAbort (StoreEntry * e, STABH * cb, void *);
+extern void storeUnregisterAbort (StoreEntry * e);
+extern void storeMemObjectDump (MemObject * mem);
+extern void storeEntryDump (const StoreEntry * e, int debug_lvl);
+extern const char *storeUrl (const StoreEntry *);
+extern void storeCreateMemObject (StoreEntry *, const char *, const char *);
+extern void storeCopyNotModifiedReplyHeaders (MemObject * O, MemObject * N);
+extern void storeBuffer (StoreEntry *);
+extern void storeBufferFlush (StoreEntry *);
+extern void storeHashInsert (StoreEntry * e, const cache_key *);
+extern void storeSetMemStatus (StoreEntry * e, int);
 #if STDC_HEADERS
-extern void storeAppendPrintf(StoreEntry *, const char *,...);
+extern void storeAppendPrintf (StoreEntry *, const char *,...);
 #else
-extern void storeAppendPrintf();
+extern void storeAppendPrintf ();
 #endif
-extern void storeAppendVPrintf(StoreEntry *, const char *, va_list ap);
-extern int storeCheckCachable(StoreEntry * e);
-extern void storeSetPrivateKey(StoreEntry *);
-extern int objectLen(const StoreEntry * e);
-extern int contentLen(const StoreEntry * e);
-extern HttpReply *storeEntryReply(StoreEntry *);
-extern int storeTooManyDiskFilesOpen(void);
-extern void storeEntryReset(StoreEntry *);
-extern void storeHeapPositionUpdate(StoreEntry *, SwapDir *);
-extern void storeSwapFileNumberSet(StoreEntry * e, sfileno filn);
-extern void storeFsInit(void);
-extern void storeFsDone(void);
-extern void storeFsAdd(char *, STSETUP *);
-extern void storeReplAdd(char *, REMOVALPOLICYCREATE *);
+extern void storeAppendVPrintf (StoreEntry *, const char *, va_list ap);
+extern int storeCheckCachable (StoreEntry * e);
+extern void storeSetPrivateKey (StoreEntry *);
+extern int objectLen (const StoreEntry * e);
+extern int contentLen (const StoreEntry * e);
+extern HttpReply *storeEntryReply (StoreEntry *);
+extern int storeTooManyDiskFilesOpen (void);
+extern void storeEntryReset (StoreEntry *);
+extern void storeHeapPositionUpdate (StoreEntry *, SwapDir *);
+extern void storeSwapFileNumberSet (StoreEntry * e, sfileno filn);
+extern void storeFsInit (void);
+extern void storeFsDone (void);
+extern void storeFsAdd (char *, STSETUP *);
+extern void storeReplAdd (char *, REMOVALPOLICYCREATE *);
 
 /* store_modules.c */
-extern void storeFsSetup(void);
+extern void storeFsSetup (void);
 
 /* repl_modules.c */
-extern void storeReplSetup(void);
+extern void storeReplSetup (void);
 
 /* store_io.c */
-extern storeIOState *storeCreate(StoreEntry *, STFNCB *, STIOCB *, void *);
-extern storeIOState *storeOpen(StoreEntry *, STFNCB *, STIOCB *, void *);
-extern void storeClose(storeIOState *);
-extern void storeRead(storeIOState *, char *, size_t, off_t, STRCB *, void *);
-extern void storeWrite(storeIOState *, char *, size_t, off_t, FREE *);
-extern void storeUnlink(StoreEntry *);
-extern off_t storeOffset(storeIOState *);
+extern storeIOState *storeCreate (StoreEntry *, STFNCB *, STIOCB *, void *);
+extern storeIOState *storeOpen (StoreEntry *, STFNCB *, STIOCB *, void *);
+extern void storeClose (storeIOState *);
+extern void storeRead (storeIOState *, char *, size_t, off_t, STRCB *, void *);
+extern void storeWrite (storeIOState *, char *, size_t, off_t, FREE *);
+extern void storeUnlink (StoreEntry *);
+extern off_t storeOffset (storeIOState *);
 
 /*
  * store_log.c
  */
-extern void storeLog(int tag, const StoreEntry * e);
-extern void storeLogRotate(void);
-extern void storeLogClose(void);
-extern void storeLogOpen(void);
+extern void storeLog (int tag, const StoreEntry * e);
+extern void storeLogRotate (void);
+extern void storeLogClose (void);
+extern void storeLogOpen (void);
 
 
 /*
  * store_key_*.c
  */
-extern cache_key *storeKeyDup(const cache_key *);
-extern cache_key *storeKeyCopy(cache_key *, const cache_key *);
-extern void storeKeyFree(const cache_key *);
-extern const cache_key *storeKeyScan(const char *);
-extern const char *storeKeyText(const cache_key *);
-extern const cache_key *storeKeyPublic(const char *, const method_t);
-extern const cache_key *storeKeyPublicByRequest(request_t *);
-extern const cache_key *storeKeyPublicByRequestMethod(request_t *, const method_t);
-extern const cache_key *storeKeyPrivate(const char *, method_t, int);
-extern int storeKeyHashBuckets(int);
-extern int storeKeyNull(const cache_key *);
-extern void storeKeyInit(void);
+extern cache_key *storeKeyDup (const cache_key *);
+extern cache_key *storeKeyCopy (cache_key *, const cache_key *);
+extern void storeKeyFree (const cache_key *);
+extern const cache_key *storeKeyScan (const char *);
+extern const char *storeKeyText (const cache_key *);
+extern const cache_key *storeKeyPublic (const char *, const method_t);
+extern const cache_key *storeKeyPublicByRequest (request_t *);
+extern const cache_key *storeKeyPublicByRequestMethod (request_t *, const method_t);
+extern const cache_key *storeKeyPrivate (const char *, method_t, int);
+extern int storeKeyHashBuckets (int);
+extern int storeKeyNull (const cache_key *);
+extern void storeKeyInit (void);
 extern HASHHASH storeKeyHashHash;
 extern HASHCMP storeKeyHashCmp;
 
 /*
  * store_digest.c
  */
-extern void storeDigestInit(void);
-extern void storeDigestNoteStoreReady(void);
-extern void storeDigestScheduleRebuild(void);
-extern void storeDigestDel(const StoreEntry * entry);
-extern void storeDigestReport(StoreEntry *);
+extern void storeDigestInit (void);
+extern void storeDigestNoteStoreReady (void);
+extern void storeDigestScheduleRebuild (void);
+extern void storeDigestDel (const StoreEntry * entry);
+extern void storeDigestReport (StoreEntry *);
 
 /*
  * store_dir.c
  */
 extern OBJH storeDirStats;
-extern char *storeDirSwapLogFile(int, const char *);
-extern char *storeSwapDir(int);
-extern char *storeSwapFullPath(int, char *);
-extern char *storeSwapSubSubDir(int, char *);
-extern const char *storeSwapPath(int);
-extern int storeDirWriteCleanLogs(int reopen);
+extern char *storeDirSwapLogFile (int, const char *);
+extern char *storeSwapDir (int);
+extern char *storeSwapFullPath (int, char *);
+extern char *storeSwapSubSubDir (int, char *);
+extern const char *storeSwapPath (int);
+extern int storeDirWriteCleanLogs (int reopen);
 extern STDIRSELECT *storeDirSelectSwapDir;
-extern int storeVerifySwapDirs(void);
-extern void storeCreateSwapDirectories(void);
-extern void storeDirCloseSwapLogs(void);
-extern void storeDirCloseTmpSwapLog(int dirn);
-extern void storeDirConfigure(void);
-extern void storeDirDiskFull(sdirno);
-extern void storeDirInit(void);
-extern void storeDirOpenSwapLogs(void);
-extern void storeDirSwapLog(const StoreEntry *, int op);
-extern void storeDirUpdateSwapSize(SwapDir *, size_t size, int sign);
-extern void storeDirSync(void);
-extern void storeDirCallback(void);
-extern void storeDirLRUDelete(StoreEntry *);
-extern void storeDirLRUAdd(StoreEntry *);
-extern int storeDirGetBlkSize(const char *path, int *blksize);
-extern int storeDirGetUFSStats(const char *, int *, int *, int *, int *);
+extern int storeVerifySwapDirs (void);
+extern void storeCreateSwapDirectories (void);
+extern void storeDirCloseSwapLogs (void);
+extern void storeDirCloseTmpSwapLog (int dirn);
+extern void storeDirConfigure (void);
+extern void storeDirDiskFull (sdirno);
+extern void storeDirInit (void);
+extern void storeDirOpenSwapLogs (void);
+extern void storeDirSwapLog (const StoreEntry *, int op);
+extern void storeDirUpdateSwapSize (SwapDir *, size_t size, int sign);
+extern void storeDirSync (void);
+extern void storeDirCallback (void);
+extern void storeDirLRUDelete (StoreEntry *);
+extern void storeDirLRUAdd (StoreEntry *);
+extern int storeDirGetBlkSize (const char *path, int *blksize);
+extern int storeDirGetUFSStats (const char *, int *, int *, int *, int *);
 
 /*
  * store_swapmeta.c
  */
-extern char *storeSwapMetaPack(tlv * tlv_list, int *length);
-extern tlv *storeSwapMetaBuild(StoreEntry * e);
-extern tlv *storeSwapMetaUnpack(const char *buf, int *hdrlen);
-extern void storeSwapTLVFree(tlv * n);
+extern char *storeSwapMetaPack (tlv * tlv_list, int *length);
+extern tlv *storeSwapMetaBuild (StoreEntry * e);
+extern tlv *storeSwapMetaUnpack (const char *buf, int *hdrlen);
+extern void storeSwapTLVFree (tlv * n);
 
 /*
  * store_rebuild.c
  */
-extern void storeRebuildStart(void);
-extern void storeRebuildComplete(struct _store_rebuild_data *);
-extern void storeRebuildProgress(int index, int total, int sofar);
+extern void storeRebuildStart (void);
+extern void storeRebuildComplete (struct _store_rebuild_data *);
+extern void storeRebuildProgress (int sd_index, int total, int sofar);
 
 /*
  * store_swapin.c
  */
-extern void storeSwapInStart(store_client *);
+extern void storeSwapInStart (store_client *);
 
 /*
  * store_swapout.c
  */
-extern void storeSwapOut(StoreEntry * e);
-extern void storeSwapOutFileClose(StoreEntry * e);
-extern int storeSwapOutAble(const StoreEntry * e);
+extern void storeSwapOut (StoreEntry * e);
+extern void storeSwapOutFileClose (StoreEntry * e);
+extern int storeSwapOutAble (const StoreEntry * e);
 
 /*
  * store_client.c
  */
 #if STORE_CLIENT_LIST_DEBUG
-extern store_client *storeClientListSearch(const MemObject * mem, void *data);
+extern store_client *storeClientListSearch (const MemObject * mem, void *data);
 #endif
-extern store_client *storeClientListAdd(StoreEntry * e, void *data);
-extern void storeClientCopy(store_client *, StoreEntry *, off_t, off_t, size_t, char *, STCB *, void *);
-extern int storeClientCopyPending(store_client *, StoreEntry * e, void *data);
-extern int storeUnregister(store_client * sc, StoreEntry * e, void *data);
-extern off_t storeLowestMemReaderOffset(const StoreEntry * entry);
-extern void InvokeHandlers(StoreEntry * e);
-extern int storePendingNClients(const StoreEntry * e);
-
-
-extern const char *getMyHostname(void);
-extern const char *uniqueHostname(void);
-extern void safeunlink(const char *path, int quiet);
-extern void death(int sig);
-extern void fatal(const char *message);
+extern store_client *storeClientListAdd (StoreEntry * e, void *data);
+extern void storeClientCopy (store_client *, StoreEntry *, off_t, off_t, size_t, char *, STCB *, void *);
+extern int storeClientCopyPending (store_client *, StoreEntry * e, void *data);
+extern int storeUnregister (store_client * sc, StoreEntry * e, void *data);
+extern off_t storeLowestMemReaderOffset (const StoreEntry * entry);
+extern void InvokeHandlers (StoreEntry * e);
+extern int storePendingNClients (const StoreEntry * e);
+
+
+extern const char *getMyHostname (void);
+extern const char *uniqueHostname (void);
+extern void safeunlink (const char *path, int quiet);
+extern void death (int sig);
+extern void fatal (const char *message);
 #if STDC_HEADERS
-extern void fatalf(const char *fmt,...);
+extern void fatalf (const char *fmt,...);
 #else
-extern void fatalf();
+extern void fatalf ();
 #endif
-extern void fatal_dump(const char *message);
-extern void sigusr2_handle(int sig);
-extern void sig_child(int sig);
-extern void leave_suid(void);
-extern void enter_suid(void);
-extern void no_suid(void);
-extern void writePidFile(void);
-extern void setSocketShutdownLifetimes(int);
-extern void setMaxFD(void);
-extern time_t getCurrentTime(void);
-extern int percent(int, int);
-extern double dpercent(double, double);
-extern void squid_signal(int sig, SIGHDLR *, int flags);
-extern pid_t readPidFile(void);
-extern struct in_addr inaddrFromHostent(const struct hostent *hp);
-extern int intAverage(int, int, int, int);
-extern double doubleAverage(double, double, int, int);
-extern void debug_trap(const char *);
-extern void logsFlush(void);
-extern char *checkNullString(char *p);
-extern void squid_getrusage(struct rusage *r);
-extern double rusage_cputime(struct rusage *r);
-extern int rusage_maxrss(struct rusage *r);
-extern int rusage_pagefaults(struct rusage *r);
-extern void releaseServerSockets(void);
-extern void PrintRusage(void);
-extern void dumpMallocStats(void);
+extern void fatal_dump (const char *message);
+extern void sigusr2_handle (int sig);
+extern void sig_child (int sig);
+extern void leave_suid (void);
+extern void enter_suid (void);
+extern void no_suid (void);
+extern void writePidFile (void);
+extern void setSocketShutdownLifetimes (int);
+extern void setMaxFD (void);
+extern time_t getCurrentTime (void);
+extern int percent (int, int);
+extern double dpercent (double, double);
+extern void squid_signal (int sig, SIGHDLR *, int flags);
+extern pid_t readPidFile (void);
+extern struct in_addr inaddrFromHostent (const struct hostent *hp);
+extern int intAverage (int, int, int, int);
+extern double doubleAverage (double, double, int, int);
+extern void debug_trap (const char *);
+extern void logsFlush (void);
+extern char *checkNullString (char *p);
+extern void squid_getrusage (struct rusage *r);
+extern double rusage_cputime (struct rusage *r);
+extern int rusage_maxrss (struct rusage *r);
+extern int rusage_pagefaults (struct rusage *r);
+extern void releaseServerSockets (void);
+extern void PrintRusage (void);
+extern void dumpMallocStats (void);
 
 #if USE_UNLINKD
-extern void unlinkdInit(void);
-extern void unlinkdClose(void);
-extern void unlinkdUnlink(const char *);
+extern void unlinkdInit (void);
+extern void unlinkdClose (void);
+extern void unlinkdUnlink (const char *);
 #endif
 
-extern char *url_convert_hex(char *org_url, int allocate);
-extern char *url_escape(const char *url);
-extern protocol_t urlParseProtocol(const char *);
-extern method_t urlParseMethod(const char *);
-extern void urlInitialize(void);
-extern request_t *urlParse(method_t, char *);
-extern const char *urlCanonical(request_t *);
-extern char *urlRInternal(const char *host, u_short port, const char *dir, const char *name);
-extern char *urlInternal(const char *dir, const char *name);
-extern int matchDomainName(const char *host, const char *domain);
-extern int urlCheckRequest(const request_t *);
-extern int urlDefaultPort(protocol_t p);
-extern char *urlCanonicalClean(const request_t *);
-extern char *urlHostname(const char *url);
-extern void urlExtMethodConfigure(void);
-
-extern void useragentOpenLog(void);
-extern void useragentRotateLog(void);
-extern void logUserAgent(const char *, const char *);
-extern void useragentLogClose(void);
-extern void refererOpenLog(void);
-extern void refererRotateLog(void);
-extern void logReferer(const char *, const char *, const char *);
-extern peer_t parseNeighborType(const char *s);
-
-extern void errorInitialize(void);
-extern void errorClean(void);
-extern HttpReply *errorBuildReply(ErrorState * err);
-extern void errorSend(int fd, ErrorState *);
-extern void errorAppendEntry(StoreEntry *, ErrorState *);
-extern void errorStateFree(ErrorState * err);
-extern int errorReservePageId(const char *page_name);
-extern ErrorState *errorCon(err_type type, http_status);
-
-extern void pconnPush(int, const char *host, u_short port);
-extern int pconnPop(const char *host, u_short port);
-extern void pconnInit(void);
-
-extern int asnMatchIp(void *, struct in_addr);
-extern void asnInit(void);
-extern void asnFreeMemory(void);
+extern char *url_convert_hex (char *org_url, int allocate);
+extern char *url_escape (const char *url);
+extern protocol_t urlParseProtocol (const char *);
+extern method_t urlParseMethod (const char *);
+extern void urlInitialize (void);
+extern request_t *urlParse (method_t, char *);
+extern const char *urlCanonical (request_t *);
+extern char *urlRInternal (const char *host, u_short port, const char *dir, const char *name);
+extern char *urlInternal (const char *dir, const char *name);
+extern int matchDomainName (const char *host, const char *domain);
+extern int urlCheckRequest (const request_t *);
+extern int urlDefaultPort (protocol_t p);
+extern char *urlCanonicalClean (const request_t *);
+extern char *urlHostname (const char *url);
+extern void urlExtMethodConfigure (void);
+
+extern void useragentOpenLog (void);
+extern void useragentRotateLog (void);
+extern void logUserAgent (const char *, const char *);
+extern void useragentLogClose (void);
+extern void refererOpenLog (void);
+extern void refererRotateLog (void);
+extern void logReferer (const char *, const char *, const char *);
+extern peer_t parseNeighborType (const char *s);
+
+extern void errorInitialize (void);
+extern void errorClean (void);
+extern HttpReply *errorBuildReply (ErrorState * err);
+extern void errorSend (int fd, ErrorState *);
+extern void errorAppendEntry (StoreEntry *, ErrorState *);
+extern void errorStateFree (ErrorState * err);
+extern int errorReservePageId (const char *page_name);
+extern ErrorState *errorCon (err_type type, http_status);
+
+extern void pconnPush (int, const char *host, u_short port);
+extern int pconnPop (const char *host, u_short port);
+extern void pconnInit (void);
+
+extern int asnMatchIp (void *, struct in_addr);
+extern void asnInit (void);
+extern void asnFreeMemory (void);
 
 /* tools.c */
-extern void dlinkAdd(void *data, dlink_node *, dlink_list *);
-extern void dlinkAddTail(void *data, dlink_node *, dlink_list *);
-extern void dlinkDelete(dlink_node * m, dlink_list * list);
-extern void dlinkNodeDelete(dlink_node * m);
-extern dlink_node *dlinkNodeNew(void);
-
-extern void kb_incr(kb_t *, size_t);
-extern double gb_to_double(const gb_t *);
-extern const char *gb_to_str(const gb_t *);
-extern void gb_flush(gb_t *);  /* internal, do not use this */
-extern int stringHasWhitespace(const char *);
-extern int stringHasCntl(const char *);
-extern void linklistPush(link_list **, void *);
-extern void *linklistShift(link_list **);
-extern int xrename(const char *from, const char *to);
-extern int isPowTen(int);
-extern void parseEtcHosts(void);
+extern void dlinkAdd (void *data, dlink_node *, dlink_list *);
+extern void dlinkAddTail (void *data, dlink_node *, dlink_list *);
+extern void dlinkDelete (dlink_node * m, dlink_list * list);
+extern void dlinkNodeDelete (dlink_node * m);
+extern dlink_node *dlinkNodeNew (void);
+
+extern void kb_incr (kb_t *, size_t);
+extern double gb_to_double (const gb_t *);
+extern const char *gb_to_str (const gb_t *);
+extern void gb_flush (gb_t *); /* internal, do not use this */
+extern int stringHasWhitespace (const char *);
+extern int stringHasCntl (const char *);
+extern void linklistPush (link_list **, void *);
+extern void *linklistShift (link_list **);
+extern int xrename (const char *from, const char *to);
+extern int isPowTen (int);
+extern void parseEtcHosts (void);
 
 #if USE_HTCP
-extern void htcpInit(void);
-extern void htcpQuery(StoreEntry * e, request_t * req, peer * p);
-extern void htcpSocketShutdown(void);
-extern void htcpSocketClose(void);
+extern void htcpInit (void);
+extern void htcpQuery (StoreEntry * e, request_t * req, peer * p);
+extern void htcpSocketShutdown (void);
+extern void htcpSocketClose (void);
 #endif
 
 /* String */
@@ -1183,145 +1179,145 @@ extern void htcpSocketClose(void);
 #define strCut(s,pos) (((s).len = pos) , ((s).buf[pos] = '\0'))
 #define strCutPtr(s,ptr) (((s).len = (ptr)-(s).buf) , ((s).buf[(s).len] = '\0'))
 /* #define strCat(s,str)  stringAppend(&(s), (str), strlen(str)+1) */
-extern void stringInit(String * s, const char *str);
-extern void stringLimitInit(String * s, const char *str, int len);
-extern String stringDup(const String * s);
-extern void stringClean(String * s);
-extern void stringReset(String * s, const char *str);
-extern void stringAppend(String * s, const char *buf, int len);
+extern void stringInit (String * s, const char *str);
+extern void stringLimitInit (String * s, const char *str, int len);
+extern String stringDup (const String * s);
+extern void stringClean (String * s);
+extern void stringReset (String * s, const char *str);
+extern void stringAppend (String * s, const char *buf, int len);
 /* extern void stringAppendf(String *s, const char *fmt, ...); */
 
 /*
  * ipc.c
  */
-extern int ipcCreate(int type,
-    const char *prog,
-    char *const args[],
-    const char *name,
-    int *rfd,
-    int *wfd);
+extern int ipcCreate (int type,
+                     const char *prog,
+                     char *const args[],
+                     const char *name,
+                     int *rfd,
+                     int *wfd);
 
 /* CacheDigest */
-extern CacheDigest *cacheDigestCreate(int capacity, int bpe);
-extern void cacheDigestDestroy(CacheDigest * cd);
-extern CacheDigest *cacheDigestClone(const CacheDigest * cd);
-extern void cacheDigestClear(CacheDigest * cd);
-extern void cacheDigestChangeCap(CacheDigest * cd, int new_cap);
-extern int cacheDigestTest(const CacheDigest * cd, const cache_key * key);
-extern void cacheDigestAdd(CacheDigest * cd, const cache_key * key);
-extern void cacheDigestDel(CacheDigest * cd, const cache_key * key);
-extern size_t cacheDigestCalcMaskSize(int cap, int bpe);
-extern int cacheDigestBitUtil(const CacheDigest * cd);
-extern void cacheDigestGuessStatsUpdate(cd_guess_stats * stats, int real_hit, int guess_hit);
-extern void cacheDigestGuessStatsReport(const cd_guess_stats * stats, StoreEntry * sentry, const char *label);
-extern void cacheDigestReport(CacheDigest * cd, const char *label, StoreEntry * e);
-
-extern void internalStart(request_t *, StoreEntry *);
-extern int internalCheck(const char *urlpath);
-extern int internalStaticCheck(const char *urlpath);
-extern char *internalLocalUri(const char *dir, const char *name);
-extern char *internalRemoteUri(const char *, u_short, const char *, const char *);
-extern const char *internalHostname(void);
-extern int internalHostnameIs(const char *);
+extern CacheDigest *cacheDigestCreate (int capacity, int bpe);
+extern void cacheDigestDestroy (CacheDigest * cd);
+extern CacheDigest *cacheDigestClone (const CacheDigest * cd);
+extern void cacheDigestClear (CacheDigest * cd);
+extern void cacheDigestChangeCap (CacheDigest * cd, int new_cap);
+extern int cacheDigestTest (const CacheDigest * cd, const cache_key * key);
+extern void cacheDigestAdd (CacheDigest * cd, const cache_key * key);
+extern void cacheDigestDel (CacheDigest * cd, const cache_key * key);
+extern size_t cacheDigestCalcMaskSize (int cap, int bpe);
+extern int cacheDigestBitUtil (const CacheDigest * cd);
+extern void cacheDigestGuessStatsUpdate (cd_guess_stats * stats, int real_hit, int guess_hit);
+extern void cacheDigestGuessStatsReport (const cd_guess_stats * stats, StoreEntry * sentry, const char *label);
+extern void cacheDigestReport (CacheDigest * cd, const char *label, StoreEntry * e);
+
+extern void internalStart (request_t *, StoreEntry *);
+extern int internalCheck (const char *urlpath);
+extern int internalStaticCheck (const char *urlpath);
+extern char *internalLocalUri (const char *dir, const char *name);
+extern char *internalRemoteUri (const char *, u_short, const char *, const char *);
+extern const char *internalHostname (void);
+extern int internalHostnameIs (const char *);
 
 #if USE_CARP
-extern void carpInit(void);
-extern peer *carpSelectParent(request_t *);
+extern void carpInit (void);
+extern peer *carpSelectParent (request_t *);
 #endif
 
 #if DELAY_POOLS
-extern void delayPoolsInit(void);
-extern void delayInitDelayData(unsigned short pools);
-extern void delayFreeDelayData(void);
-extern void delayCreateDelayPool(unsigned short pool, u_char class);
-extern void delayInitDelayPool(unsigned short pool, u_char class, delaySpecSet * rates);
-extern void delayFreeDelayPool(unsigned short pool);
-extern void delayPoolsReconfigure(void);
-extern void delaySetNoDelay(int fd);
-extern void delayClearNoDelay(int fd);
-extern int delayIsNoDelay(int fd);
-extern delay_id delayClient(request_t *);
+extern void delayPoolsInit (void);
+extern void delayInitDelayData (unsigned short pools);
+extern void delayFreeDelayData (void);
+extern void delayCreateDelayPool (unsigned short pool, u_char class);
+extern void delayInitDelayPool (unsigned short pool, u_char class, delaySpecSet * rates);
+extern void delayFreeDelayPool (unsigned short pool);
+extern void delayPoolsReconfigure (void);
+extern void delaySetNoDelay (int fd);
+extern void delayClearNoDelay (int fd);
+extern int delayIsNoDelay (int fd);
+extern delay_id delayClient (request_t *);
 extern EVH delayPoolsUpdate;
-extern int delayBytesWanted(delay_id d, int min, int max);
-extern void delayBytesIn(delay_id, int qty);
-extern int delayMostBytesWanted(const MemObject * mem, int max);
-extern delay_id delayMostBytesAllowed(const MemObject * mem);
-extern void delaySetStoreClient(store_client * sc, delay_id delay_id);
-extern void delayRegisterDelayIdPtr(delay_id * loc);
-extern void delayUnregisterDelayIdPtr(delay_id * loc);
+extern int delayBytesWanted (delay_id d, int min, int max);
+extern void delayBytesIn (delay_id, int qty);
+extern int delayMostBytesWanted (const MemObject * mem, int max);
+extern delay_id delayMostBytesAllowed (const MemObject * mem);
+extern void delaySetStoreClient (store_client * sc, delay_id delay_id);
+extern void delayRegisterDelayIdPtr (delay_id * loc);
+extern void delayUnregisterDelayIdPtr (delay_id * loc);
 #endif
 
 /* helper.c */
-extern void helperOpenServers(helper * hlp);
-extern void helperStatefulOpenServers(statefulhelper * hlp);
-extern void helperSubmit(helper * hlp, const char *buf, HLPCB * callback, void *data);
-extern void helperStatefulSubmit(statefulhelper * hlp, const char *buf, HLPSCB * callback, void *data, helper_stateful_server * lastserver);
-extern void helperStats(StoreEntry * sentry, helper * hlp);
-extern void helperStatefulStats(StoreEntry * sentry, statefulhelper * hlp);
-extern void helperShutdown(helper * hlp);
-extern void helperStatefulShutdown(statefulhelper * hlp);
-extern helper *helperCreate(const char *);
-extern statefulhelper *helperStatefulCreate(const char *);
-extern void helperFree(helper *);
-extern void helperStatefulFree(statefulhelper *);
-extern void helperStatefulReset(helper_stateful_server * srv);
-extern void helperStatefulReleaseServer(helper_stateful_server * srv);
-extern void *helperStatefulServerGetData(helper_stateful_server * srv);
-extern helper_stateful_server *helperStatefulDefer(statefulhelper *);
+extern void helperOpenServers (helper * hlp);
+extern void helperStatefulOpenServers (statefulhelper * hlp);
+extern void helperSubmit (helper * hlp, const char *buf, HLPCB * callback, void *data);
+extern void helperStatefulSubmit (statefulhelper * hlp, const char *buf, HLPSCB * callback, void *data, helper_stateful_server * lastserver);
+extern void helperStats (StoreEntry * sentry, helper * hlp);
+extern void helperStatefulStats (StoreEntry * sentry, statefulhelper * hlp);
+extern void helperShutdown (helper * hlp);
+extern void helperStatefulShutdown (statefulhelper * hlp);
+extern helper *helperCreate (const char *);
+extern statefulhelper *helperStatefulCreate (const char *);
+extern void helperFree (helper *);
+extern void helperStatefulFree (statefulhelper *);
+extern void helperStatefulReset (helper_stateful_server * srv);
+extern void helperStatefulReleaseServer (helper_stateful_server * srv);
+extern void *helperStatefulServerGetData (helper_stateful_server * srv);
+extern helper_stateful_server *helperStatefulDefer (statefulhelper *);
 
 
 
 #if USE_LEAKFINDER
-extern void leakInit(void);
-extern void *leakAddFL(void *, const char *, int);
-extern void *leakTouchFL(void *, const char *, int);
-extern void *leakFreeFL(void *, const char *, int);
+extern void leakInit (void);
+extern void *leakAddFL (void *, const char *, int);
+extern void *leakTouchFL (void *, const char *, int);
+extern void *leakFreeFL (void *, const char *, int);
 #endif
 
 /* logfile.c */
-extern Logfile *logfileOpen(const char *path, size_t bufsz, int);
-extern void logfileClose(Logfile * lf);
-extern void logfileRotate(Logfile * lf);
-extern void logfileWrite(Logfile * lf, void *buf, size_t len);
-extern void logfileFlush(Logfile * lf);
+extern Logfile *logfileOpen (const char *path, size_t bufsz, int);
+extern void logfileClose (Logfile * lf);
+extern void logfileRotate (Logfile * lf);
+extern void logfileWrite (Logfile * lf, void *buf, size_t len);
+extern void logfileFlush (Logfile * lf);
 #if STDC_HEADERS
-extern void logfilePrintf(Logfile * lf, const char *fmt,...);
+extern void logfilePrintf (Logfile * lf, const char *fmt,...);
 #else
-extern void logfilePrintf(va_alist);
+extern void logfilePrintf (va_alist);
 #endif
 
 /*
  * Removal Policies
  */
-extern RemovalPolicy *createRemovalPolicy(RemovalPolicySettings * settings);
+extern RemovalPolicy *createRemovalPolicy (RemovalPolicySettings * settings);
 
 /*
  * prototypes for system functions missing from system includes
  */
 
 #ifdef _SQUID_SOLARIS_
-extern int getrusage(int, struct rusage *);
-extern int getpagesize(void);
-extern int gethostname(char *, int);
+extern int getrusage (int, struct rusage *);
+extern int getpagesize (void);
+extern int gethostname (char *, int);
 #endif
 
 #if URL_CHECKSUM_DEBUG
-extern unsigned int url_checksum(const char *url);
+extern unsigned int url_checksum (const char *url);
 #endif
 
 /*
  * hack to allow snmp access to the statistics counters
  */
-extern StatCounters *snmpStatGet(int);
+extern StatCounters *snmpStatGet (int);
 
 /* Vary support functions */
-int varyEvaluateMatch(StoreEntry * entry, request_t * req);
+int varyEvaluateMatch (StoreEntry * entry, request_t * req);
 
 /* CygWin & Windows NT Port */
 /* win32.c */
 #if defined(_SQUID_MSWIN_) || defined(_SQUID_CYGWIN_)
-extern int WIN32_Subsystem_Init(void);
-extern void WIN32_Exit(void);
+extern int WIN32_Subsystem_Init (void);
+extern void WIN32_Exit (void);
 #endif
 
 #endif /* SQUID_PROTOS_H */
index fcd7f821ea5144a5f283217e6f85784c9ea0c803..cb3e5752549962a4cf7973d43665776657418b0b 100644 (file)
@@ -1,6 +1,6 @@
 
 /*
- * $Id: store_rebuild.cc,v 1.75 2001/01/12 00:37:22 wessels Exp $
+ * $Id: store_rebuild.cc,v 1.76 2001/10/17 10:59:09 adrian Exp $
  *
  * DEBUG: section 20    Store Rebuild Routines
  * AUTHOR: Duane Wessels
 
 static struct _store_rebuild_data counts;
 static struct timeval rebuild_start;
-static void storeCleanup(void *);
+static void storeCleanup (void *);
 
-typedef struct {
+typedef struct
+  {
     /* total number of "swap.state" entries that will be read */
     int total;
     /* number of entries read so far */
     int scanned;
-} store_rebuild_progress;
+  }
+store_rebuild_progress;
 
 static store_rebuild_progress *RebuildProgress = NULL;
 
 static int
-storeCleanupDoubleCheck(StoreEntry * e)
+storeCleanupDoubleCheck (StoreEntry * e)
 {
-    SwapDir *SD = &Config.cacheSwap.swapDirs[e->swap_dirn];
-    return (SD->dblcheck(SD, e));
+  SwapDir *SD = &Config.cacheSwap.swapDirs[e->swap_dirn];
+  return (SD->dblcheck (SD, e));
 }
 
 static void
-storeCleanup(void *datanotused)
+storeCleanup (void *datanotused)
 {
-    static int bucketnum = -1;
-    static int validnum = 0;
-    static int store_errors = 0;
-    int validnum_start;
-    StoreEntry *e;
-    hash_link *link_ptr = NULL;
-    hash_link *link_next = NULL;
-    validnum_start = validnum;
-    while (validnum - validnum_start < 500) {
-       if (++bucketnum >= store_hash_buckets) {
-           debug(20, 1) ("  Completed Validation Procedure\n");
-           debug(20, 1) ("  Validated %d Entries\n", validnum);
-           debug(20, 1) ("  store_swap_size = %dk\n", store_swap_size);
-           store_dirs_rebuilding--;
-           assert(0 == store_dirs_rebuilding);
-           if (opt_store_doublecheck)
-               assert(store_errors == 0);
-           if (store_digest)
-               storeDigestNoteStoreReady();
-           return;
+  static int bucketnum = -1;
+  static int validnum = 0;
+  static int store_errors = 0;
+  int validnum_start;
+  StoreEntry *e;
+  hash_link *link_ptr = NULL;
+  hash_link *link_next = NULL;
+  validnum_start = validnum;
+  while (validnum - validnum_start < 500)
+    {
+      if (++bucketnum >= store_hash_buckets)
+       {
+         debug (20, 1) ("  Completed Validation Procedure\n");
+         debug (20, 1) ("  Validated %d Entries\n", validnum);
+         debug (20, 1) ("  store_swap_size = %dk\n", store_swap_size);
+         store_dirs_rebuilding--;
+         assert (0 == store_dirs_rebuilding);
+         if (opt_store_doublecheck)
+           assert (store_errors == 0);
+         if (store_digest)
+           storeDigestNoteStoreReady ();
+         return;
        }
-       link_next = hash_get_bucket(store_table, bucketnum);
-       while (NULL != (link_ptr = link_next)) {
-           link_next = link_ptr->next;
-           e = (StoreEntry *) link_ptr;
-           if (EBIT_TEST(e->flags, ENTRY_VALIDATED))
-               continue;
-           /*
-            * Calling storeRelease() has no effect because we're
-            * still in 'store_rebuilding' state
-            */
-           if (e->swap_filen < 0)
-               continue;
-           if (opt_store_doublecheck)
-               if (storeCleanupDoubleCheck(e))
-                   store_errors++;
-           EBIT_SET(e->flags, ENTRY_VALIDATED);
-           /*
-            * Only set the file bit if we know its a valid entry
-            * otherwise, set it in the validation procedure
-            */
-           storeDirUpdateSwapSize(&Config.cacheSwap.swapDirs[e->swap_dirn], e->swap_file_sz, 1);
-           if ((++validnum & 0x3FFFF) == 0)
-               debug(20, 1) ("  %7d Entries Validated so far.\n", validnum);
+      link_next = hash_get_bucket (store_table, bucketnum);
+      while (NULL != (link_ptr = link_next))
+       {
+         link_next = link_ptr->next;
+         e = (StoreEntry *) link_ptr;
+         if (EBIT_TEST (e->flags, ENTRY_VALIDATED))
+           continue;
+         /*
+          * Calling storeRelease() has no effect because we're
+          * still in 'store_rebuilding' state
+          */
+         if (e->swap_filen < 0)
+           continue;
+         if (opt_store_doublecheck)
+           if (storeCleanupDoubleCheck (e))
+             store_errors++;
+         EBIT_SET (e->flags, ENTRY_VALIDATED);
+         /*
+          * Only set the file bit if we know its a valid entry
+          * otherwise, set it in the validation procedure
+          */
+         storeDirUpdateSwapSize (&Config.cacheSwap.swapDirs[e->swap_dirn], e->swap_file_sz, 1);
+         if ((++validnum & 0x3FFFF) == 0)
+           debug (20, 1) ("  %7d Entries Validated so far.\n", validnum);
        }
     }
-    eventAdd("storeCleanup", storeCleanup, NULL, 0.0, 1);
+  eventAdd ("storeCleanup", storeCleanup, NULL, 0.0, 1);
 }
 
 /* meta data recreated from disk image in swap directory */
 void
-storeRebuildComplete(struct _store_rebuild_data *dc)
+storeRebuildComplete (struct _store_rebuild_data *dc)
 {
-    double dt;
-    counts.objcount += dc->objcount;
-    counts.expcount += dc->expcount;
-    counts.scancount += dc->scancount;
-    counts.clashcount += dc->clashcount;
-    counts.dupcount += dc->dupcount;
-    counts.cancelcount += dc->cancelcount;
-    counts.invalid += dc->invalid;
-    counts.badflags += dc->badflags;
-    counts.bad_log_op += dc->bad_log_op;
-    counts.zero_object_sz += dc->zero_object_sz;
-    /*
-     * When store_dirs_rebuilding == 1, it means we are done reading
-     * or scanning all cache_dirs.  Now report the stats and start
-     * the validation (storeCleanup()) thread.
-     */
-    if (store_dirs_rebuilding > 1)
-       return;
-    dt = tvSubDsec(rebuild_start, current_time);
-    debug(20, 1) ("Finished rebuilding storage from disk.\n");
-    debug(20, 1) ("  %7d Entries scanned\n", counts.scancount);
-    debug(20, 1) ("  %7d Invalid entries.\n", counts.invalid);
-    debug(20, 1) ("  %7d With invalid flags.\n", counts.badflags);
-    debug(20, 1) ("  %7d Objects loaded.\n", counts.objcount);
-    debug(20, 1) ("  %7d Objects expired.\n", counts.expcount);
-    debug(20, 1) ("  %7d Objects cancelled.\n", counts.cancelcount);
-    debug(20, 1) ("  %7d Duplicate URLs purged.\n", counts.dupcount);
-    debug(20, 1) ("  %7d Swapfile clashes avoided.\n", counts.clashcount);
-    debug(20, 1) ("  Took %3.1f seconds (%6.1f objects/sec).\n", dt,
-       (double) counts.objcount / (dt > 0.0 ? dt : 1.0));
-    debug(20, 1) ("Beginning Validation Procedure\n");
-    eventAdd("storeCleanup", storeCleanup, NULL, 0.0, 1);
-    xfree(RebuildProgress);
-    RebuildProgress = NULL;
+  double dt;
+  counts.objcount += dc->objcount;
+  counts.expcount += dc->expcount;
+  counts.scancount += dc->scancount;
+  counts.clashcount += dc->clashcount;
+  counts.dupcount += dc->dupcount;
+  counts.cancelcount += dc->cancelcount;
+  counts.invalid += dc->invalid;
+  counts.badflags += dc->badflags;
+  counts.bad_log_op += dc->bad_log_op;
+  counts.zero_object_sz += dc->zero_object_sz;
+  /*
+   * When store_dirs_rebuilding == 1, it means we are done reading
+   * or scanning all cache_dirs.  Now report the stats and start
+   * the validation (storeCleanup()) thread.
+   */
+  if (store_dirs_rebuilding > 1)
+    return;
+  dt = tvSubDsec (rebuild_start, current_time);
+  debug (20, 1) ("Finished rebuilding storage from disk.\n");
+  debug (20, 1) ("  %7d Entries scanned\n", counts.scancount);
+  debug (20, 1) ("  %7d Invalid entries.\n", counts.invalid);
+  debug (20, 1) ("  %7d With invalid flags.\n", counts.badflags);
+  debug (20, 1) ("  %7d Objects loaded.\n", counts.objcount);
+  debug (20, 1) ("  %7d Objects expired.\n", counts.expcount);
+  debug (20, 1) ("  %7d Objects cancelled.\n", counts.cancelcount);
+  debug (20, 1) ("  %7d Duplicate URLs purged.\n", counts.dupcount);
+  debug (20, 1) ("  %7d Swapfile clashes avoided.\n", counts.clashcount);
+  debug (20, 1) ("  Took %3.1f seconds (%6.1f objects/sec).\n", dt,
+                (double) counts.objcount / (dt > 0.0 ? dt : 1.0));
+  debug (20, 1) ("Beginning Validation Procedure\n");
+  eventAdd ("storeCleanup", storeCleanup, NULL, 0.0, 1);
+  xfree (RebuildProgress);
+  RebuildProgress = NULL;
 }
 
 /*
@@ -153,18 +158,18 @@ storeRebuildComplete(struct _store_rebuild_data *dc)
  * actually started by the filesystem "fooDirInit" function.
  */
 void
-storeRebuildStart(void)
+storeRebuildStart (void)
 {
-    memset(&counts, '\0', sizeof(counts));
-    rebuild_start = current_time;
-    /*
-     * Note: store_dirs_rebuilding is initialized to 1 in globals.c.
-     * This prevents us from trying to write clean logs until we
-     * finished rebuilding for sure.  The corresponding decrement
-     * occurs in storeCleanup(), when it is finished.
-     */
-    RebuildProgress = xcalloc(Config.cacheSwap.n_configured,
-       sizeof(store_rebuild_progress));
+  memset (&counts, '\0', sizeof (counts));
+  rebuild_start = current_time;
+  /*
+   * Note: store_dirs_rebuilding is initialized to 1 in globals.c.
+   * This prevents us from trying to write clean logs until we
+   * finished rebuilding for sure.  The corresponding decrement
+   * occurs in storeCleanup(), when it is finished.
+   */
+  RebuildProgress = xcalloc (Config.cacheSwap.n_configured,
+                            sizeof (store_rebuild_progress));
 }
 
 /*
@@ -172,25 +177,26 @@ storeRebuildStart(void)
  * progress.
  */
 void
-storeRebuildProgress(int index, int total, int sofar)
+storeRebuildProgress (int sd_index, int total, int sofar)
 {
-    static time_t last_report = 0;
-    double n = 0.0;
-    double d = 0.0;
-    if (index < 0)
-       return;
-    if (index >= Config.cacheSwap.n_configured)
-       return;
-    if (NULL == RebuildProgress)
-       return;
-    RebuildProgress[index].total = total;
-    RebuildProgress[index].scanned = sofar;
-    if (squid_curtime - last_report < 15)
-       return;
-    for (index = 0; index < Config.cacheSwap.n_configured; index++) {
-       n += (double) RebuildProgress[index].scanned;
-       d += (double) RebuildProgress[index].total;
+  static time_t last_report = 0;
+  double n = 0.0;
+  double d = 0.0;
+  if (sd_index < 0)
+    return;
+  if (sd_index >= Config.cacheSwap.n_configured)
+    return;
+  if (NULL == RebuildProgress)
+    return;
+  RebuildProgress[sd_index].total = total;
+  RebuildProgress[sd_index].scanned = sofar;
+  if (squid_curtime - last_report < 15)
+    return;
+  for (sd_index = 0; sd_index < Config.cacheSwap.n_configured; sd_index++)
+    {
+      n += (double) RebuildProgress[sd_index].scanned;
+      d += (double) RebuildProgress[sd_index].total;
     }
-    debug(20, 1) ("Store rebuilding is %4.1f%% complete\n", 100.0 * n / d);
-    last_report = squid_curtime;
+  debug (20, 1) ("Store rebuilding is %4.1f%% complete\n", 100.0 * n / d);
+  last_report = squid_curtime;
 }