diff -ruN squid-2.6.STABLE5/ChangeLog squid-2.6.STABLE6/ChangeLog
--- squid-2.6.STABLE5/ChangeLog	Fri Nov  3 06:16:21 2006
+++ squid-2.6.STABLE6/ChangeLog	Mon Dec 11 16:20:13 2006
@@ -1,3 +1,35 @@
+Changes to squid-2.6.STABLE6 (Dec 12 2006)
+
+	- Bug #1817: Assertion failure assert(buflen >= copy_sz) in htcp.c htcpBuildAuth()
+	- Add client source port logformat tag >p
+	- Cleanup of transparent & accelerator mode request parsing to untangle the firewall dependencies a bit
+	- Bug #1799: Harmless 1 byte buffer overflow on long host names in /etc/hosts
+	- automake no longer recommends mkinstalldirs. Removed.
+	- Only use crypt() if it's available, allowing ncsa_auth to be built
+	  on platofms without crypt() support.
+	- Windows port documentation updates
+	- Bug #1818: Assertion failure assert(e->swap_dirn >= 0) in fs/coss/store_dir_coss.c storeCoss_DeleteStoreEntry
+	- Bug #1117: assertion failed: aufs/store_dir_aufs.c:642: "rb->flags.need_to_validate"
+	- Remove extra newline in redirect message sent by deny_info http://... aclname
+	- Bug #1805: assertion failed: StatHist.c:195: "D[i] >= 0"
+	- Clarify the external_acl_type helper format specification and some defaults
+	- Add support for the weight= parameter to round-robin peers
+	- Bug #1832: Error building squid-2.6.STABLE5 using --enable-truncate
+	- Convert snmpDebugOid to use a temporary String object instead of strcat
+	- Document that proxy_auth also accepts -i for case-insensitive operation
+	- Remove malloc/free of temporary buffer in time parsing routines.
+	- Reduce memory allocator pressure by not continually allocating client-side read buffers
+	- Accept large dates >2^31 on 64-bit platformst. Seen for example in the Google logo.
+	- Convert the connStateData->chr single link list to a normal dlink_list for clarity.
+	- Bug #1584: Unable to register with multiple WCCP2 routers
+	- Fix the WCCPv2 mask assignment code to not crash as the value assignments are built.
+	- Bug #439: Multicast ICP peering is unstable and considers most peers dead
+	- Bug #1801: NTLM authentication ends up in a loop if the server responds with a retriable error
+	- Bug #1839: Cosmetic debug message cleanup in peerHandleHtcpReply.
+	- Bug #1840: Disable digest and netdb queries to multicast peers
+	- Bug #1641: assertion failed: stmem.c:149: "size > 0" while processing certain Vary objects
+	- Fix build errors when using latest MinGW Windows environment
+
 Changes to squid-2.6.STABLE5 (Now 3 2006)
 
 	- Bug #1776: 2.6.STABLE4 aufs fails to compile if coss isn't enabled
diff -ruN squid-2.6.STABLE5/Makefile.in squid-2.6.STABLE6/Makefile.in
--- squid-2.6.STABLE5/Makefile.in	Sun Oct 29 19:21:09 2006
+++ squid-2.6.STABLE6/Makefile.in	Sat Nov  4 16:19:44 2006
@@ -15,7 +15,7 @@
 @SET_MAKE@
 
 #
-# $Id: Makefile.in,v 1.50 2006/10/30 02:21:09 hno Exp $
+# $Id: Makefile.in,v 1.51 2006/11/04 23:19:44 hno Exp $
 #
 srcdir = @srcdir@
 top_srcdir = @top_srcdir@
@@ -43,8 +43,7 @@
 	$(srcdir)/Makefile.in $(top_srcdir)/configure \
 	$(top_srcdir)/include/autoconf.h.in COPYING ChangeLog INSTALL \
 	cfgaux/compile cfgaux/config.guess cfgaux/config.sub \
-	cfgaux/depcomp cfgaux/install-sh cfgaux/missing \
-	cfgaux/mkinstalldirs
+	cfgaux/depcomp cfgaux/install-sh cfgaux/missing
 subdir = .
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
@@ -53,7 +52,7 @@
 	$(ACLOCAL_M4)
 am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
  configure.lineno configure.status.lineno
-mkinstalldirs = $(SHELL) $(top_srcdir)/cfgaux/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/include/autoconf.h
 CONFIG_CLEAN_FILES =
 SOURCES =
diff -ruN squid-2.6.STABLE5/RELEASENOTES.html squid-2.6.STABLE6/RELEASENOTES.html
--- squid-2.6.STABLE5/RELEASENOTES.html	Fri Nov  3 06:20:46 2006
+++ squid-2.6.STABLE6/RELEASENOTES.html	Mon Dec 11 16:21:04 2006
@@ -7,7 +7,7 @@
 <BODY>
 <H1>Squid 2.6 release notes</H1>
 
-<H2>Squid Developers</H2>$Id: release-2.6.html,v 1.36 2006/11/03 13:16:22 hno Exp $
+<H2>Squid Developers</H2>$Id: release-2.6.html,v 1.39 2006/12/11 00:57:40 hno Exp $
 <HR>
 <EM>This document contains the release notes for version 2.6 of Squid.
 Squid is a WWW Cache application developed by the Web Caching community.</EM>
@@ -42,6 +42,9 @@
 <P>
 <H2><A NAME="toc10">10.</A> <A HREF="#s10">Key changes squid-2.6.STABLE4 to 2.6.STABLE5</A></H2>
 
+<P>
+<H2><A NAME="toc11">11.</A> <A HREF="#s11">Key changes squid-2.6.STABLE5 to 2.6.STABLE6</A></H2>
+
 
 <HR>
 <H2><A NAME="s1">1.</A> <A HREF="#toc1">Key changes from squid 2.5</A></H2>
@@ -340,7 +343,19 @@
 </P>
 <P>
 <DL>
-<DT><B>Building Squid on Windows:</B><DD><P>A reasonably recent release of Cygwin or MinGW is needed. Like other Unix/Linux environments, -devel version of libraries must be installed.<BR>
+<DT><B>Building Squid on Windows:</B><DD><P>A reasonably recent release of 
+<A HREF="http://www.cygwin.com/">Cygwin</A> or 
+<A HREF="http://www.mingw.org/">MinGW</A> is needed.<BR>
+The usage of the Cygwin environment is very similar to other Unix/Linux environments, and -devel version of libraries must be installed.<BR>
+For the MinGW environment, the packages MSYS, MinGW and msysDTK must be installed. Some additional libraries and tools must be downloaded separately:<BR><BR>
+OpenSSL: 
+<A HREF="http://www.slproweb.com/products/Win32OpenSSL.html">Shining Light Productions Win32 OpenSSL</A><BR>
+libcrypt: 
+<A HREF="http://sourceforge.net/projects/mingwrep/">MinGW packages repository</A><BR>
+db-1.85: 
+<A HREF="http://tinycobol.org/download.html">TinyCOBOL download area</A><BR>
+uudecode: 
+<A HREF="http://unxutils.sourceforge.net/">Native Win32 ports of some GNU utilities</A><BR><BR>
 When running configure, --disable-wccp and --disable-wccpv2 options should always specified to avoid compile errors.<BR>
 <UL>
 <LI>New configure options:<BR>
@@ -356,11 +371,25 @@
 </LI>
 <LI>Unsupported configure options:<BR>
 <UL>
-<LI>--enable-coss-aio-ops: On Cygwin Posix AIO is not available<BR></LI>
+<LI>--enable-coss-aio-ops: On Windows Posix AIO is not available<BR></LI>
+<LI>--with-large-files: No suitable build environment is available on both Cygwin and MinGW, but --enable-large-cache-files works fine<BR></LI>
+</UL>
+</LI>
+<LI>Recommended configure minimal options for Windows:<BR>
+<UL>
+<LI>--prefix=c:/squid --disable-wccp --disable-wccpv2 --enable-win32-service --enable-default-hostsfile=none</LI>
 </UL>
 </LI>
 </UL>
+<BR>
+Before build Squid with SSL support, some operations are needed (in the following example OpenSSL is installed in C:\OpenSSL and MinGW in C:\MinGW):
+<UL>
+<LI>Copy C:\OpenSSL\lib\MinGW content to C:\MinGW\lib<BR></LI>
+<LI>Copy C:\OpenSSL\include\openssl content to C:\MinGW\include\openssl<BR></LI>
+<LI>Rename C:\MinGW\lib\ssleay32.a to C:\MinGW\lib\libssleay32.a<BR></LI>
+</UL>
 </P>
+
 </DL>
 </P>
 <P>
@@ -491,10 +520,25 @@
 <LI>Bug <a href="http://www.squid-cache.org/bugs/show_bug.cgi?id=1796">#1796</a>: Assertion error HttpHeader.c:914: "str"</LI>
 <LI>All comm loops now use the generic event framework</LI>
 <LI>a number of other minor and cosmetic bugfixes. See the list of 
-<A HREF="http://www.squid-cache.org/Versions/v2/2.6/changesets/SQUID_2_6_STABLE5.html">squid-2.6.STABLE4 changes</A> and the 
+<A HREF="http://www.squid-cache.org/Versions/v2/2.6/changesets/SQUID_2_6_STABLE5.html">squid-2.6.STABLE5 changes</A> and the 
 <A HREF="ChangeLog">ChangeLog</A> file for details.</LI>
 </UL>
 </P>
 
+<H2><A NAME="s11">11.</A> <A HREF="#toc11">Key changes squid-2.6.STABLE5 to 2.6.STABLE6</A></H2>
+
+<P>
+<UL>
+<LI>Bug <a href="http://www.squid-cache.org/bugs/show_bug.cgi?id=1805">#1805</a>: assertion failed: StatHist.c:195: "D[i] &gt;= 0"</LI>
+<LI>Add support for the weight= parameter to round-robin peers</LI>
+<LI>Bug <a href="http://www.squid-cache.org/bugs/show_bug.cgi?id=1584">#1584</a>: Unable to register with multiple WCCP2 routers</LI>
+<LI>Bug <a href="http://www.squid-cache.org/bugs/show_bug.cgi?id=439">#439</a>: Multicast ICP peering is unstable and considers most peers dead</LI>
+<LI>Bug <a href="http://www.squid-cache.org/bugs/show_bug.cgi?id=1801">#1801</a>: NTLM authentication ends up in a loop if the server responds with a retriable error</LI>
+<LI>Bug <a href="http://www.squid-cache.org/bugs/show_bug.cgi?id=1641">#1641</a>: assertion failed: stmem.c:149: "size &gt; 0" while processing certain Vary objects</LI>
+<LI>a number of other minor and cosmetic bugfixes. See the list of 
+<A HREF="http://www.squid-cache.org/Versions/v2/2.6/changesets/SQUID_2_6_STABLE6.html">squid-2.6.STABLE6 changes</A> and the 
+<A HREF="ChangeLog">ChangeLog</A> file for details.</LI>
+</UL>
+</P>
 </BODY>
 </HTML>
diff -ruN squid-2.6.STABLE5/cfgaux/mkinstalldirs squid-2.6.STABLE6/cfgaux/mkinstalldirs
--- squid-2.6.STABLE5/cfgaux/mkinstalldirs	Tue May 23 08:54:24 2006
+++ squid-2.6.STABLE6/cfgaux/mkinstalldirs	Wed Dec 31 17:00:00 1969
@@ -1,158 +0,0 @@
-#! /bin/sh
-# mkinstalldirs --- make directory hierarchy
-
-scriptversion=2005-06-29.22
-
-# Original author: Noah Friedman <friedman@prep.ai.mit.edu>
-# Created: 1993-05-16
-# Public domain.
-#
-# This file is maintained in Automake, please report
-# bugs to <bug-automake@gnu.org> or send patches to
-# <automake-patches@gnu.org>.
-
-errstatus=0
-dirmode=
-
-usage="\
-Usage: mkinstalldirs [-h] [--help] [--version] [-m MODE] DIR ...
-
-Create each directory DIR (with mode MODE, if specified), including all
-leading file name components.
-
-Report bugs to <bug-automake@gnu.org>."
-
-# process command line arguments
-while test $# -gt 0 ; do
-  case $1 in
-    -h | --help | --h*)         # -h for help
-      echo "$usage"
-      exit $?
-      ;;
-    -m)                         # -m PERM arg
-      shift
-      test $# -eq 0 && { echo "$usage" 1>&2; exit 1; }
-      dirmode=$1
-      shift
-      ;;
-    --version)
-      echo "$0 $scriptversion"
-      exit $?
-      ;;
-    --)                         # stop option processing
-      shift
-      break
-      ;;
-    -*)                         # unknown option
-      echo "$usage" 1>&2
-      exit 1
-      ;;
-    *)                          # first non-opt arg
-      break
-      ;;
-  esac
-done
-
-for file
-do
-  if test -d "$file"; then
-    shift
-  else
-    break
-  fi
-done
-
-case $# in
-  0) exit 0 ;;
-esac
-
-# Solaris 8's mkdir -p isn't thread-safe.  If you mkdir -p a/b and
-# mkdir -p a/c at the same time, both will detect that a is missing,
-# one will create a, then the other will try to create a and die with
-# a "File exists" error.  This is a problem when calling mkinstalldirs
-# from a parallel make.  We use --version in the probe to restrict
-# ourselves to GNU mkdir, which is thread-safe.
-case $dirmode in
-  '')
-    if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then
-      echo "mkdir -p -- $*"
-      exec mkdir -p -- "$@"
-    else
-      # On NextStep and OpenStep, the `mkdir' command does not
-      # recognize any option.  It will interpret all options as
-      # directories to create, and then abort because `.' already
-      # exists.
-      test -d ./-p && rmdir ./-p
-      test -d ./--version && rmdir ./--version
-    fi
-    ;;
-  *)
-    if mkdir -m "$dirmode" -p --version . >/dev/null 2>&1 &&
-       test ! -d ./--version; then
-      echo "mkdir -m $dirmode -p -- $*"
-      exec mkdir -m "$dirmode" -p -- "$@"
-    else
-      # Clean up after NextStep and OpenStep mkdir.
-      for d in ./-m ./-p ./--version "./$dirmode";
-      do
-        test -d $d && rmdir $d
-      done
-    fi
-    ;;
-esac
-
-for file
-do
-  case $file in
-    /*) pathcomp=/ ;;
-    *)  pathcomp= ;;
-  esac
-  oIFS=$IFS
-  IFS=/
-  set fnord $file
-  shift
-  IFS=$oIFS
-
-  for d
-  do
-    test "x$d" = x && continue
-
-    pathcomp=$pathcomp$d
-    case $pathcomp in
-      -*) pathcomp=./$pathcomp ;;
-    esac
-
-    if test ! -d "$pathcomp"; then
-      echo "mkdir $pathcomp"
-
-      mkdir "$pathcomp" || lasterr=$?
-
-      if test ! -d "$pathcomp"; then
-	errstatus=$lasterr
-      else
-	if test ! -z "$dirmode"; then
-	  echo "chmod $dirmode $pathcomp"
-	  lasterr=
-	  chmod "$dirmode" "$pathcomp" || lasterr=$?
-
-	  if test ! -z "$lasterr"; then
-	    errstatus=$lasterr
-	  fi
-	fi
-      fi
-    fi
-
-    pathcomp=$pathcomp/
-  done
-done
-
-exit $errstatus
-
-# Local Variables:
-# mode: shell-script
-# sh-indentation: 2
-# eval: (add-hook 'write-file-hooks 'time-stamp)
-# time-stamp-start: "scriptversion="
-# time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-end: "$"
-# End:
diff -ruN squid-2.6.STABLE5/configure squid-2.6.STABLE6/configure
--- squid-2.6.STABLE5/configure	Fri Nov  3 06:20:14 2006
+++ squid-2.6.STABLE6/configure	Mon Dec 11 16:20:32 2006
@@ -1,7 +1,7 @@
 #! /bin/sh
-# From configure.in Revision: 1.410 .
+# From configure.in Revision: 1.414 .
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.59 for Squid Web Proxy 2.6.STABLE5.
+# Generated by GNU Autoconf 2.59 for Squid Web Proxy 2.6.STABLE6.
 #
 # Report bugs to <http://www.squid-cache.org/bugs/>.
 #
@@ -270,8 +270,8 @@
 # Identity of this package.
 PACKAGE_NAME='Squid Web Proxy'
 PACKAGE_TARNAME='squid'
-PACKAGE_VERSION='2.6.STABLE5'
-PACKAGE_STRING='Squid Web Proxy 2.6.STABLE5'
+PACKAGE_VERSION='2.6.STABLE6'
+PACKAGE_STRING='Squid Web Proxy 2.6.STABLE6'
 PACKAGE_BUGREPORT='http://www.squid-cache.org/bugs/'
 
 ac_default_prefix=/usr/local/squid
@@ -781,7 +781,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures Squid Web Proxy 2.6.STABLE5 to adapt to many kinds of systems.
+\`configure' configures Squid Web Proxy 2.6.STABLE6 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -847,7 +847,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of Squid Web Proxy 2.6.STABLE5:";;
+     short | recursive ) echo "Configuration of Squid Web Proxy 2.6.STABLE6:";;
    esac
   cat <<\_ACEOF
 
@@ -1158,7 +1158,7 @@
 test -n "$ac_init_help" && exit 0
 if $ac_init_version; then
   cat <<\_ACEOF
-Squid Web Proxy configure 2.6.STABLE5
+Squid Web Proxy configure 2.6.STABLE6
 generated by GNU Autoconf 2.59
 
 Copyright (C) 2003 Free Software Foundation, Inc.
@@ -1172,7 +1172,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by Squid Web Proxy $as_me 2.6.STABLE5, which was
+It was created by Squid Web Proxy $as_me 2.6.STABLE6, which was
 generated by GNU Autoconf 2.59.  Invocation command line was
 
   $ $0 $@
@@ -1818,7 +1818,7 @@
 
 # Define the identity of the package.
  PACKAGE='squid'
- VERSION='2.6.STABLE5'
+ VERSION='2.6.STABLE6'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -4231,7 +4231,7 @@
 
     case "$host_os" in
     mingw|mingw32)
-	SSLLIB='-lssl -lcrypto -lgdi32'
+	SSLLIB='-lssleay32 -leay32 -lgdi32'
 	;;
     *)
 	SSLLIB='-lssl -lcrypto'
@@ -15926,13 +15926,13 @@
 for ac_func in \
 	bcopy \
 	backtrace_symbols_fd \
-	crypt \
 	fchmod \
 	getdtablesize \
 	getpagesize \
 	getpass \
 	getrusage \
 	getspnam \
+	gettimeofday \
 	kqueue \
 	lrand48 \
 	mallinfo \
@@ -16187,6 +16187,112 @@
 
 LIBS="$SAVED_LIBS"
 
+SAVED_LIBS="$LIBS"
+LIBS="$LIBS $CRYPTLIB"
+
+for ac_func in crypt
+do
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
+if eval "test \"\${$as_ac_var+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define $ac_func innocuous_$ac_func
+
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $ac_func
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+char (*f) () = $ac_func;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
+int
+main ()
+{
+return f != $ac_func;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "$as_ac_var=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "$as_ac_var=no"
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
+if test `eval echo '${'$as_ac_var'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+done
+
+LIBS="$SAVED_LIBS"
+
 if test $ac_cv_func_epoll_ctl = yes; then
   echo "$as_me:$LINENO: checking if epoll works" >&5
 echo $ECHO_N "checking if epoll works... $ECHO_C" >&6
@@ -18386,7 +18492,7 @@
 } >&5
 cat >&5 <<_CSEOF
 
-This file was extended by Squid Web Proxy $as_me 2.6.STABLE5, which was
+This file was extended by Squid Web Proxy $as_me 2.6.STABLE6, which was
 generated by GNU Autoconf 2.59.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -18449,7 +18555,7 @@
 
 cat >>$CONFIG_STATUS <<_ACEOF
 ac_cs_version="\\
-Squid Web Proxy config.status 2.6.STABLE5
+Squid Web Proxy config.status 2.6.STABLE6
 configured by $0, generated by GNU Autoconf 2.59,
   with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
 
diff -ruN squid-2.6.STABLE5/configure.in squid-2.6.STABLE6/configure.in
--- squid-2.6.STABLE5/configure.in	Fri Nov  3 06:20:14 2006
+++ squid-2.6.STABLE6/configure.in	Mon Dec 11 16:20:32 2006
@@ -1,16 +1,16 @@
 dnl
 dnl  Configuration input file for Squid
 dnl
-dnl  $Id: configure.in,v 1.410 2006/11/03 13:16:21 hno Exp $
+dnl  $Id: configure.in,v 1.414 2006/12/11 23:16:58 hno Exp $
 dnl
 dnl
 dnl
-AC_INIT(Squid Web Proxy, 2.6.STABLE5, http://www.squid-cache.org/bugs/, squid)
+AC_INIT(Squid Web Proxy, 2.6.STABLE6, http://www.squid-cache.org/bugs/, squid)
 AC_PREREQ(2.52)
 AM_CONFIG_HEADER(include/autoconf.h)
 AC_CONFIG_AUX_DIR(cfgaux)
 AM_INIT_AUTOMAKE
-AC_REVISION($Revision: 1.410 $)dnl
+AC_REVISION($Revision: 1.414 $)dnl
 AC_PREFIX_DEFAULT(/usr/local/squid)
 AM_MAINTAINER_MODE
 
@@ -697,7 +697,7 @@
     AM_CONDITIONAL(ENABLE_SSL, true)
     case "$host_os" in
     mingw|mingw32)
-	SSLLIB='-lssl -lcrypto -lgdi32'
+	SSLLIB='-lssleay32 -leay32 -lgdi32'
 	;;
     *)
 	SSLLIB='-lssl -lcrypto'
@@ -2301,13 +2301,13 @@
 AC_CHECK_FUNCS(\
 	bcopy \
 	backtrace_symbols_fd \
-	crypt \
 	fchmod \
 	getdtablesize \
 	getpagesize \
 	getpass \
 	getrusage \
 	getspnam \
+	gettimeofday \
 	kqueue \
 	lrand48 \
 	mallinfo \
@@ -2359,6 +2359,11 @@
 SAVED_LIBS="$LIBS"
 LIBS="$LIBS $LIB_EPOLL"
 AC_CHECK_FUNCS(epoll_ctl)
+LIBS="$SAVED_LIBS"
+
+SAVED_LIBS="$LIBS"
+LIBS="$LIBS $CRYPTLIB"
+AC_CHECK_FUNCS(crypt)
 LIBS="$SAVED_LIBS"
 
 dnl Verify that epoll really works
diff -ruN squid-2.6.STABLE5/contrib/Makefile.in squid-2.6.STABLE6/contrib/Makefile.in
--- squid-2.6.STABLE5/contrib/Makefile.in	Sun Oct 29 19:21:10 2006
+++ squid-2.6.STABLE6/contrib/Makefile.in	Sat Nov  4 16:19:44 2006
@@ -47,7 +47,7 @@
 	$(top_srcdir)/configure.in
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/cfgaux/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/include/autoconf.h
 CONFIG_CLEAN_FILES =
 SOURCES =
diff -ruN squid-2.6.STABLE5/doc/Makefile.in squid-2.6.STABLE6/doc/Makefile.in
--- squid-2.6.STABLE5/doc/Makefile.in	Sun Oct 29 19:21:11 2006
+++ squid-2.6.STABLE6/doc/Makefile.in	Sat Nov  4 16:19:45 2006
@@ -17,7 +17,7 @@
 #
 #  Makefile for the Squid Object Cache server
 #
-#  $Id: Makefile.in,v 1.31 2006/10/30 02:21:11 hno Exp $
+#  $Id: Makefile.in,v 1.32 2006/11/04 23:19:45 hno Exp $
 #
 #  Uncomment and customize the following to suit your needs:
 #
@@ -50,7 +50,7 @@
 	$(top_srcdir)/configure.in
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/cfgaux/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/include/autoconf.h
 CONFIG_CLEAN_FILES =
 SOURCES =
diff -ruN squid-2.6.STABLE5/errors/Makefile.in squid-2.6.STABLE6/errors/Makefile.in
--- squid-2.6.STABLE5/errors/Makefile.in	Sun Oct 29 19:21:13 2006
+++ squid-2.6.STABLE6/errors/Makefile.in	Sat Nov  4 16:19:47 2006
@@ -15,7 +15,7 @@
 @SET_MAKE@
 
 #
-# $Id: Makefile.in,v 1.47 2006/10/30 02:21:13 hno Exp $
+# $Id: Makefile.in,v 1.48 2006/11/04 23:19:47 hno Exp $
 #
 srcdir = @srcdir@
 top_srcdir = @top_srcdir@
@@ -46,7 +46,7 @@
 	$(top_srcdir)/configure.in
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/cfgaux/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/include/autoconf.h
 CONFIG_CLEAN_FILES =
 SOURCES =
diff -ruN squid-2.6.STABLE5/helpers/Makefile.in squid-2.6.STABLE6/helpers/Makefile.in
--- squid-2.6.STABLE5/helpers/Makefile.in	Sun Oct 29 19:21:14 2006
+++ squid-2.6.STABLE6/helpers/Makefile.in	Sat Nov  4 16:19:48 2006
@@ -42,7 +42,7 @@
 	$(top_srcdir)/configure.in
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/cfgaux/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/include/autoconf.h
 CONFIG_CLEAN_FILES =
 SOURCES =
diff -ruN squid-2.6.STABLE5/helpers/basic_auth/LDAP/Makefile.in squid-2.6.STABLE6/helpers/basic_auth/LDAP/Makefile.in
--- squid-2.6.STABLE5/helpers/basic_auth/LDAP/Makefile.in	Sun Oct 29 19:21:16 2006
+++ squid-2.6.STABLE6/helpers/basic_auth/LDAP/Makefile.in	Sat Nov  4 16:19:49 2006
@@ -17,7 +17,7 @@
 #
 #  Makefile for the Squid LDAP authentication helper
 #
-#  $Id: Makefile.in,v 1.39 2006/10/30 02:21:16 hno Exp $
+#  $Id: Makefile.in,v 1.40 2006/11/04 23:19:49 hno Exp $
 #
 #  Uncomment and customize the following to suit your needs:
 #
@@ -52,7 +52,7 @@
 	$(top_srcdir)/configure.in
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/cfgaux/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/include/autoconf.h
 CONFIG_CLEAN_FILES =
 am__installdirs = "$(DESTDIR)$(libexecdir)" "$(DESTDIR)$(man8dir)"
diff -ruN squid-2.6.STABLE5/helpers/basic_auth/MSNT/Makefile.in squid-2.6.STABLE6/helpers/basic_auth/MSNT/Makefile.in
--- squid-2.6.STABLE5/helpers/basic_auth/MSNT/Makefile.in	Sun Oct 29 19:21:17 2006
+++ squid-2.6.STABLE6/helpers/basic_auth/MSNT/Makefile.in	Sat Nov  4 16:19:50 2006
@@ -17,7 +17,7 @@
 #
 #  Makefile for the Squid Object Cache server
 #
-#  $Id: Makefile.in,v 1.42 2006/10/30 02:21:17 hno Exp $
+#  $Id: Makefile.in,v 1.43 2006/11/04 23:19:50 hno Exp $
 #
 #  Uncomment and customize the following to suit your needs:
 #
@@ -53,7 +53,7 @@
 	$(top_srcdir)/configure.in
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/cfgaux/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/include/autoconf.h
 CONFIG_CLEAN_FILES =
 am__installdirs = "$(DESTDIR)$(libexecdir)" "$(DESTDIR)$(sysconfdir)"
diff -ruN squid-2.6.STABLE5/helpers/basic_auth/Makefile.in squid-2.6.STABLE6/helpers/basic_auth/Makefile.in
--- squid-2.6.STABLE5/helpers/basic_auth/Makefile.in	Sun Oct 29 19:21:15 2006
+++ squid-2.6.STABLE6/helpers/basic_auth/Makefile.in	Sat Nov  4 16:19:48 2006
@@ -16,7 +16,7 @@
 
 #  Makefile for storage modules in the Squid Object Cache server
 #
-#  $Id: Makefile.in,v 1.38 2006/10/30 02:21:15 hno Exp $
+#  $Id: Makefile.in,v 1.39 2006/11/04 23:19:48 hno Exp $
 #
 srcdir = @srcdir@
 top_srcdir = @top_srcdir@
@@ -47,7 +47,7 @@
 	$(top_srcdir)/configure.in
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/cfgaux/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/include/autoconf.h
 CONFIG_CLEAN_FILES =
 SOURCES =
diff -ruN squid-2.6.STABLE5/helpers/basic_auth/NCSA/Makefile.in squid-2.6.STABLE6/helpers/basic_auth/NCSA/Makefile.in
--- squid-2.6.STABLE5/helpers/basic_auth/NCSA/Makefile.in	Sun Oct 29 19:21:17 2006
+++ squid-2.6.STABLE6/helpers/basic_auth/NCSA/Makefile.in	Sat Nov  4 16:19:50 2006
@@ -17,7 +17,7 @@
 #
 #  Makefile for the Squid Object Cache server
 #
-#  $Id: Makefile.in,v 1.39 2006/10/30 02:21:17 hno Exp $
+#  $Id: Makefile.in,v 1.40 2006/11/04 23:19:50 hno Exp $
 #
 #  Uncomment and customize the following to suit your needs:
 #
@@ -52,7 +52,7 @@
 	$(top_srcdir)/configure.in
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/cfgaux/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/include/autoconf.h
 CONFIG_CLEAN_FILES =
 am__installdirs = "$(DESTDIR)$(libexecdir)" "$(DESTDIR)$(man8dir)"
diff -ruN squid-2.6.STABLE5/helpers/basic_auth/NCSA/ncsa_auth.c squid-2.6.STABLE6/helpers/basic_auth/NCSA/ncsa_auth.c
--- squid-2.6.STABLE5/helpers/basic_auth/NCSA/ncsa_auth.c	Sat Sep 30 15:25:01 2006
+++ squid-2.6.STABLE6/helpers/basic_auth/NCSA/ncsa_auth.c	Sat Nov  4 16:26:22 2006
@@ -141,8 +141,10 @@
 	u = (user_data *)hash_lookup(hash, user);
 	if (u == NULL) {
 	    printf("ERR No such user\n");
+#if HAVE_CRYPT
 	} else if (strcmp(u->passwd, (char *) crypt(passwd, u->passwd)) == 0) {
 	    printf("OK\n");
+#endif
 	} else if (strcmp(u->passwd, (char *) crypt_md5(passwd, u->passwd)) == 0) {
 	    printf("OK\n");
 	} else if (strcmp(u->passwd, (char *) md5sum(passwd)) == 0) { /* md5 without salt and magic strings - Added by Ramon de Carvalho and Rodrigo Rubira Branco */
diff -ruN squid-2.6.STABLE5/helpers/basic_auth/PAM/Makefile.in squid-2.6.STABLE6/helpers/basic_auth/PAM/Makefile.in
--- squid-2.6.STABLE5/helpers/basic_auth/PAM/Makefile.in	Sun Oct 29 19:21:18 2006
+++ squid-2.6.STABLE6/helpers/basic_auth/PAM/Makefile.in	Sat Nov  4 16:19:50 2006
@@ -17,7 +17,7 @@
 #
 #  Makefile for the Squid PAM authentication helper
 #
-#  $Id: Makefile.in,v 1.38 2006/10/30 02:21:18 hno Exp $
+#  $Id: Makefile.in,v 1.39 2006/11/04 23:19:50 hno Exp $
 #
 #  Uncomment and customize the following to suit your needs:
 #
@@ -52,7 +52,7 @@
 	$(top_srcdir)/configure.in
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/cfgaux/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/include/autoconf.h
 CONFIG_CLEAN_FILES =
 am__installdirs = "$(DESTDIR)$(libexecdir)" "$(DESTDIR)$(man8dir)"
diff -ruN squid-2.6.STABLE5/helpers/basic_auth/SASL/Makefile.in squid-2.6.STABLE6/helpers/basic_auth/SASL/Makefile.in
--- squid-2.6.STABLE5/helpers/basic_auth/SASL/Makefile.in	Sun Oct 29 19:21:19 2006
+++ squid-2.6.STABLE6/helpers/basic_auth/SASL/Makefile.in	Sat Nov  4 16:19:51 2006
@@ -17,7 +17,7 @@
 #
 #  Makefile for the Squid SASL authentication helper
 #
-#  $Id: Makefile.in,v 1.35 2006/10/30 02:21:19 hno Exp $
+#  $Id: Makefile.in,v 1.36 2006/11/04 23:19:51 hno Exp $
 #
 #  Uncomment and customize the following to suit your needs:
 #
@@ -52,7 +52,7 @@
 	$(top_srcdir)/configure.in
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/cfgaux/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/include/autoconf.h
 CONFIG_CLEAN_FILES =
 am__installdirs = "$(DESTDIR)$(libexecdir)"
diff -ruN squid-2.6.STABLE5/helpers/basic_auth/SMB/Makefile.in squid-2.6.STABLE6/helpers/basic_auth/SMB/Makefile.in
--- squid-2.6.STABLE5/helpers/basic_auth/SMB/Makefile.in	Sun Oct 29 19:21:19 2006
+++ squid-2.6.STABLE6/helpers/basic_auth/SMB/Makefile.in	Sat Nov  4 16:19:52 2006
@@ -17,7 +17,7 @@
 #
 #  Makefile for the Squid Object Cache server
 #
-#  $Id: Makefile.in,v 1.38 2006/10/30 02:21:19 hno Exp $
+#  $Id: Makefile.in,v 1.39 2006/11/04 23:19:52 hno Exp $
 #
 #  Uncomment and customize the following to suit your needs:
 #
@@ -59,7 +59,7 @@
 	$(top_srcdir)/configure.in
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/cfgaux/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/include/autoconf.h
 CONFIG_CLEAN_FILES =
 am__installdirs = "$(DESTDIR)$(libexecdir)" "$(DESTDIR)$(libexecdir)"
diff -ruN squid-2.6.STABLE5/helpers/basic_auth/YP/Makefile.in squid-2.6.STABLE6/helpers/basic_auth/YP/Makefile.in
--- squid-2.6.STABLE5/helpers/basic_auth/YP/Makefile.in	Sun Oct 29 19:21:20 2006
+++ squid-2.6.STABLE6/helpers/basic_auth/YP/Makefile.in	Sat Nov  4 16:19:52 2006
@@ -17,7 +17,7 @@
 #
 #  Makefile for the Squid Object Cache server
 #
-#  $Id: Makefile.in,v 1.39 2006/10/30 02:21:20 hno Exp $
+#  $Id: Makefile.in,v 1.40 2006/11/04 23:19:52 hno Exp $
 #
 #
 
@@ -51,7 +51,7 @@
 	$(top_srcdir)/configure.in
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/cfgaux/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/include/autoconf.h
 CONFIG_CLEAN_FILES =
 am__installdirs = "$(DESTDIR)$(libexecdir)"
diff -ruN squid-2.6.STABLE5/helpers/basic_auth/getpwnam/Makefile.in squid-2.6.STABLE6/helpers/basic_auth/getpwnam/Makefile.in
--- squid-2.6.STABLE5/helpers/basic_auth/getpwnam/Makefile.in	Sun Oct 29 19:21:20 2006
+++ squid-2.6.STABLE6/helpers/basic_auth/getpwnam/Makefile.in	Sat Nov  4 16:19:53 2006
@@ -17,7 +17,7 @@
 #
 #  Makefile for the Squid Object Cache server
 #
-#  $Id: Makefile.in,v 1.37 2006/10/30 02:21:20 hno Exp $
+#  $Id: Makefile.in,v 1.38 2006/11/04 23:19:53 hno Exp $
 #
 #  Uncomment and customize the following to suit your needs:
 #
@@ -52,7 +52,7 @@
 	$(top_srcdir)/configure.in
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/cfgaux/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/include/autoconf.h
 CONFIG_CLEAN_FILES =
 am__installdirs = "$(DESTDIR)$(libexecdir)"
diff -ruN squid-2.6.STABLE5/helpers/basic_auth/mswin_sspi/Makefile.in squid-2.6.STABLE6/helpers/basic_auth/mswin_sspi/Makefile.in
--- squid-2.6.STABLE5/helpers/basic_auth/mswin_sspi/Makefile.in	Sun Oct 29 19:21:22 2006
+++ squid-2.6.STABLE6/helpers/basic_auth/mswin_sspi/Makefile.in	Sat Nov  4 16:19:53 2006
@@ -17,7 +17,7 @@
 #
 #  Makefile for the Squid Object Cache server
 #
-#  $Id: Makefile.in,v 1.11 2006/10/30 02:21:22 hno Exp $
+#  $Id: Makefile.in,v 1.12 2006/11/04 23:19:53 hno Exp $
 #
 #  Uncomment and customize the following to suit your needs:
 #
@@ -52,7 +52,7 @@
 	$(top_srcdir)/configure.in
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/cfgaux/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/include/autoconf.h
 CONFIG_CLEAN_FILES =
 am__installdirs = "$(DESTDIR)$(libexecdir)"
diff -ruN squid-2.6.STABLE5/helpers/basic_auth/multi-domain-NTLM/Makefile.in squid-2.6.STABLE6/helpers/basic_auth/multi-domain-NTLM/Makefile.in
--- squid-2.6.STABLE5/helpers/basic_auth/multi-domain-NTLM/Makefile.in	Sun Oct 29 19:21:22 2006
+++ squid-2.6.STABLE6/helpers/basic_auth/multi-domain-NTLM/Makefile.in	Sat Nov  4 16:19:53 2006
@@ -17,7 +17,7 @@
 #
 #  Makefile for the Squid Object Cache server
 #
-#  $Id: Makefile.in,v 1.35 2006/10/30 02:21:22 hno Exp $
+#  $Id: Makefile.in,v 1.36 2006/11/04 23:19:53 hno Exp $
 #
 #  Uncomment and customize the following to suit your needs:
 #
@@ -51,7 +51,7 @@
 	$(top_srcdir)/configure.in
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/cfgaux/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/include/autoconf.h
 CONFIG_CLEAN_FILES =
 am__installdirs = "$(DESTDIR)$(libexecdir)"
diff -ruN squid-2.6.STABLE5/helpers/digest_auth/Makefile.in squid-2.6.STABLE6/helpers/digest_auth/Makefile.in
--- squid-2.6.STABLE5/helpers/digest_auth/Makefile.in	Sun Oct 29 19:21:22 2006
+++ squid-2.6.STABLE6/helpers/digest_auth/Makefile.in	Sat Nov  4 16:19:54 2006
@@ -16,7 +16,7 @@
 
 #  Makefile for digest auth helpers in the Squid Object Cache server
 #
-#  $Id: Makefile.in,v 1.35 2006/10/30 02:21:22 hno Exp $
+#  $Id: Makefile.in,v 1.36 2006/11/04 23:19:54 hno Exp $
 #
 srcdir = @srcdir@
 top_srcdir = @top_srcdir@
@@ -47,7 +47,7 @@
 	$(top_srcdir)/configure.in
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/cfgaux/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/include/autoconf.h
 CONFIG_CLEAN_FILES =
 SOURCES =
diff -ruN squid-2.6.STABLE5/helpers/digest_auth/ldap/Makefile.in squid-2.6.STABLE6/helpers/digest_auth/ldap/Makefile.in
--- squid-2.6.STABLE5/helpers/digest_auth/ldap/Makefile.in	Sun Oct 29 19:21:22 2006
+++ squid-2.6.STABLE6/helpers/digest_auth/ldap/Makefile.in	Sat Nov  4 16:19:54 2006
@@ -17,7 +17,7 @@
 #
 #  Makefile for the Squid Object Cache server
 #
-#  $Id: Makefile.in,v 1.16 2006/10/30 02:21:22 hno Exp $
+#  $Id: Makefile.in,v 1.17 2006/11/04 23:19:54 hno Exp $
 #
 #  Uncomment and customize the following to suit your needs:
 #
@@ -52,7 +52,7 @@
 	$(top_srcdir)/configure.in
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/cfgaux/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/include/autoconf.h
 CONFIG_CLEAN_FILES =
 am__installdirs = "$(DESTDIR)$(libexecdir)"
diff -ruN squid-2.6.STABLE5/helpers/digest_auth/password/Makefile.in squid-2.6.STABLE6/helpers/digest_auth/password/Makefile.in
--- squid-2.6.STABLE5/helpers/digest_auth/password/Makefile.in	Sun Oct 29 19:21:23 2006
+++ squid-2.6.STABLE6/helpers/digest_auth/password/Makefile.in	Sat Nov  4 16:19:55 2006
@@ -17,7 +17,7 @@
 #
 #  Makefile for the Squid Object Cache server
 #
-#  $Id: Makefile.in,v 1.37 2006/10/30 02:21:23 hno Exp $
+#  $Id: Makefile.in,v 1.38 2006/11/04 23:19:55 hno Exp $
 #
 #  Uncomment and customize the following to suit your needs:
 #
@@ -52,7 +52,7 @@
 	$(top_srcdir)/configure.in
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/cfgaux/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/include/autoconf.h
 CONFIG_CLEAN_FILES =
 am__installdirs = "$(DESTDIR)$(libexecdir)"
diff -ruN squid-2.6.STABLE5/helpers/external_acl/Makefile.in squid-2.6.STABLE6/helpers/external_acl/Makefile.in
--- squid-2.6.STABLE5/helpers/external_acl/Makefile.in	Sun Oct 29 19:21:23 2006
+++ squid-2.6.STABLE6/helpers/external_acl/Makefile.in	Sat Nov  4 16:19:55 2006
@@ -16,7 +16,7 @@
 
 #  Makefile for storage modules in the Squid Object Cache server
 #
-#  $Id: Makefile.in,v 1.25 2006/10/30 02:21:23 hno Exp $
+#  $Id: Makefile.in,v 1.26 2006/11/04 23:19:55 hno Exp $
 #
 srcdir = @srcdir@
 top_srcdir = @top_srcdir@
@@ -47,7 +47,7 @@
 	$(top_srcdir)/configure.in
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/cfgaux/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/include/autoconf.h
 CONFIG_CLEAN_FILES =
 SOURCES =
diff -ruN squid-2.6.STABLE5/helpers/external_acl/ip_user/Makefile.in squid-2.6.STABLE6/helpers/external_acl/ip_user/Makefile.in
--- squid-2.6.STABLE5/helpers/external_acl/ip_user/Makefile.in	Sun Oct 29 19:21:24 2006
+++ squid-2.6.STABLE6/helpers/external_acl/ip_user/Makefile.in	Sat Nov  4 16:19:55 2006
@@ -17,7 +17,7 @@
 #
 #  Makefile for the ip_user external_acl helper by Rodrigo Campos
 #
-#  $Id: Makefile.in,v 1.24 2006/10/30 02:21:24 hno Exp $
+#  $Id: Makefile.in,v 1.25 2006/11/04 23:19:55 hno Exp $
 #
 #  Uncomment and customize the following to suit your needs:
 #
@@ -52,7 +52,7 @@
 	$(top_srcdir)/configure.in
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/cfgaux/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/include/autoconf.h
 CONFIG_CLEAN_FILES =
 am__installdirs = "$(DESTDIR)$(libexecdir)"
diff -ruN squid-2.6.STABLE5/helpers/external_acl/ldap_group/Makefile.in squid-2.6.STABLE6/helpers/external_acl/ldap_group/Makefile.in
--- squid-2.6.STABLE5/helpers/external_acl/ldap_group/Makefile.in	Sun Oct 29 19:21:24 2006
+++ squid-2.6.STABLE6/helpers/external_acl/ldap_group/Makefile.in	Sat Nov  4 16:19:56 2006
@@ -17,7 +17,7 @@
 #
 #  Makefile for the Squid LDAP authentication helper
 #
-#  $Id: Makefile.in,v 1.25 2006/10/30 02:21:24 hno Exp $
+#  $Id: Makefile.in,v 1.26 2006/11/04 23:19:56 hno Exp $
 #
 #  Uncomment and customize the following to suit your needs:
 #
@@ -53,7 +53,7 @@
 	$(top_srcdir)/configure.in
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/cfgaux/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/include/autoconf.h
 CONFIG_CLEAN_FILES =
 am__installdirs = "$(DESTDIR)$(libexecdir)" "$(DESTDIR)$(man8dir)"
diff -ruN squid-2.6.STABLE5/helpers/external_acl/mswin_lm_group/Makefile.in squid-2.6.STABLE6/helpers/external_acl/mswin_lm_group/Makefile.in
--- squid-2.6.STABLE5/helpers/external_acl/mswin_lm_group/Makefile.in	Sun Oct 29 19:21:25 2006
+++ squid-2.6.STABLE6/helpers/external_acl/mswin_lm_group/Makefile.in	Sat Nov  4 16:19:56 2006
@@ -17,7 +17,7 @@
 #
 #  Makefile for the Squid Object Cache server
 #
-#  $Id: Makefile.in,v 1.10 2006/10/30 02:21:25 hno Exp $
+#  $Id: Makefile.in,v 1.11 2006/11/04 23:19:56 hno Exp $
 #
 #  Uncomment and customize the following to suit your needs:
 #
@@ -52,7 +52,7 @@
 	$(top_srcdir)/configure.in
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/cfgaux/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/include/autoconf.h
 CONFIG_CLEAN_FILES =
 am__installdirs = "$(DESTDIR)$(libexecdir)"
diff -ruN squid-2.6.STABLE5/helpers/external_acl/session/Makefile.in squid-2.6.STABLE6/helpers/external_acl/session/Makefile.in
--- squid-2.6.STABLE5/helpers/external_acl/session/Makefile.in	Sun Oct 29 19:21:26 2006
+++ squid-2.6.STABLE6/helpers/external_acl/session/Makefile.in	Sat Nov  4 16:19:57 2006
@@ -17,7 +17,7 @@
 #
 #  Makefile for the Squid LDAP authentication helper
 #
-#  $Id: Makefile.in,v 1.11 2006/10/30 02:21:26 hno Exp $
+#  $Id: Makefile.in,v 1.12 2006/11/04 23:19:57 hno Exp $
 #
 #  Uncomment and customize the following to suit your needs:
 #
@@ -52,7 +52,7 @@
 	$(top_srcdir)/configure.in
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/cfgaux/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/include/autoconf.h
 CONFIG_CLEAN_FILES =
 am__installdirs = "$(DESTDIR)$(libexecdir)" "$(DESTDIR)$(man8dir)"
diff -ruN squid-2.6.STABLE5/helpers/external_acl/unix_group/Makefile.in squid-2.6.STABLE6/helpers/external_acl/unix_group/Makefile.in
--- squid-2.6.STABLE5/helpers/external_acl/unix_group/Makefile.in	Sun Oct 29 19:21:27 2006
+++ squid-2.6.STABLE6/helpers/external_acl/unix_group/Makefile.in	Sat Nov  4 16:19:58 2006
@@ -17,7 +17,7 @@
 #
 #  Makefile for the Squid LDAP authentication helper
 #
-#  $Id: Makefile.in,v 1.24 2006/10/30 02:21:27 hno Exp $
+#  $Id: Makefile.in,v 1.25 2006/11/04 23:19:58 hno Exp $
 #
 #  Uncomment and customize the following to suit your needs:
 #
@@ -52,7 +52,7 @@
 	$(top_srcdir)/configure.in
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/cfgaux/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/include/autoconf.h
 CONFIG_CLEAN_FILES =
 am__installdirs = "$(DESTDIR)$(libexecdir)" "$(DESTDIR)$(man8dir)"
diff -ruN squid-2.6.STABLE5/helpers/external_acl/wbinfo_group/Makefile.in squid-2.6.STABLE6/helpers/external_acl/wbinfo_group/Makefile.in
--- squid-2.6.STABLE5/helpers/external_acl/wbinfo_group/Makefile.in	Sun Oct 29 19:21:28 2006
+++ squid-2.6.STABLE6/helpers/external_acl/wbinfo_group/Makefile.in	Sat Nov  4 16:19:58 2006
@@ -17,7 +17,7 @@
 #
 #  Makefile for the Squid LDAP authentication helper
 #
-#  $Id: Makefile.in,v 1.23 2006/10/30 02:21:28 hno Exp $
+#  $Id: Makefile.in,v 1.24 2006/11/04 23:19:58 hno Exp $
 #
 #  Uncomment and customize the following to suit your needs:
 #
@@ -51,7 +51,7 @@
 	$(top_srcdir)/configure.in
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/cfgaux/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/include/autoconf.h
 CONFIG_CLEAN_FILES =
 am__installdirs = "$(DESTDIR)$(libexecdir)"
diff -ruN squid-2.6.STABLE5/helpers/negotiate_auth/Makefile.in squid-2.6.STABLE6/helpers/negotiate_auth/Makefile.in
--- squid-2.6.STABLE5/helpers/negotiate_auth/Makefile.in	Sun Oct 29 19:21:28 2006
+++ squid-2.6.STABLE6/helpers/negotiate_auth/Makefile.in	Sat Nov  4 16:19:58 2006
@@ -16,7 +16,7 @@
 
 #  Makefile for storage modules in the Squid Object Cache server
 #
-#  $Id: Makefile.in,v 1.12 2006/10/30 02:21:28 hno Exp $
+#  $Id: Makefile.in,v 1.13 2006/11/04 23:19:58 hno Exp $
 #
 srcdir = @srcdir@
 top_srcdir = @top_srcdir@
@@ -47,7 +47,7 @@
 	$(top_srcdir)/configure.in
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/cfgaux/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/include/autoconf.h
 CONFIG_CLEAN_FILES =
 SOURCES =
diff -ruN squid-2.6.STABLE5/helpers/negotiate_auth/mswin_sspi/Makefile.in squid-2.6.STABLE6/helpers/negotiate_auth/mswin_sspi/Makefile.in
--- squid-2.6.STABLE5/helpers/negotiate_auth/mswin_sspi/Makefile.in	Sun Oct 29 19:21:29 2006
+++ squid-2.6.STABLE6/helpers/negotiate_auth/mswin_sspi/Makefile.in	Sat Nov  4 16:19:59 2006
@@ -17,7 +17,7 @@
 #
 #  Makefile for the Squid Object Cache server
 #
-#  $Id: Makefile.in,v 1.10 2006/10/30 02:21:29 hno Exp $
+#  $Id: Makefile.in,v 1.11 2006/11/04 23:19:59 hno Exp $
 #
 
 srcdir = @srcdir@
@@ -50,7 +50,7 @@
 	$(top_srcdir)/configure.in
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/cfgaux/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/include/autoconf.h
 CONFIG_CLEAN_FILES =
 am__installdirs = "$(DESTDIR)$(libexecdir)"
diff -ruN squid-2.6.STABLE5/helpers/ntlm_auth/Makefile.in squid-2.6.STABLE6/helpers/ntlm_auth/Makefile.in
--- squid-2.6.STABLE5/helpers/ntlm_auth/Makefile.in	Sun Oct 29 19:21:30 2006
+++ squid-2.6.STABLE6/helpers/ntlm_auth/Makefile.in	Sat Nov  4 16:19:59 2006
@@ -16,7 +16,7 @@
 
 #  Makefile for storage modules in the Squid Object Cache server
 #
-#  $Id: Makefile.in,v 1.38 2006/10/30 02:21:30 hno Exp $
+#  $Id: Makefile.in,v 1.39 2006/11/04 23:19:59 hno Exp $
 #
 srcdir = @srcdir@
 top_srcdir = @top_srcdir@
@@ -47,7 +47,7 @@
 	$(top_srcdir)/configure.in
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/cfgaux/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/include/autoconf.h
 CONFIG_CLEAN_FILES =
 SOURCES =
diff -ruN squid-2.6.STABLE5/helpers/ntlm_auth/SMB/Makefile.in squid-2.6.STABLE6/helpers/ntlm_auth/SMB/Makefile.in
--- squid-2.6.STABLE5/helpers/ntlm_auth/SMB/Makefile.in	Sun Oct 29 19:21:30 2006
+++ squid-2.6.STABLE6/helpers/ntlm_auth/SMB/Makefile.in	Sat Nov  4 16:19:59 2006
@@ -17,7 +17,7 @@
 #
 #  Makefile for the Squid Object Cache server
 #
-#  $Id: Makefile.in,v 1.37 2006/10/30 02:21:30 hno Exp $
+#  $Id: Makefile.in,v 1.38 2006/11/04 23:19:59 hno Exp $
 #
 
 srcdir = @srcdir@
@@ -50,7 +50,7 @@
 	$(top_srcdir)/configure.in
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/cfgaux/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/include/autoconf.h
 CONFIG_CLEAN_FILES =
 am__installdirs = "$(DESTDIR)$(libexecdir)"
diff -ruN squid-2.6.STABLE5/helpers/ntlm_auth/SMB/smbval/Makefile.in squid-2.6.STABLE6/helpers/ntlm_auth/SMB/smbval/Makefile.in
--- squid-2.6.STABLE5/helpers/ntlm_auth/SMB/smbval/Makefile.in	Sun Oct 29 19:21:30 2006
+++ squid-2.6.STABLE6/helpers/ntlm_auth/SMB/smbval/Makefile.in	Sat Nov  4 16:20:00 2006
@@ -45,7 +45,7 @@
 	$(top_srcdir)/configure.in
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/cfgaux/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/include/autoconf.h
 CONFIG_CLEAN_FILES =
 LIBRARIES = $(noinst_LIBRARIES)
diff -ruN squid-2.6.STABLE5/helpers/ntlm_auth/fakeauth/Makefile.in squid-2.6.STABLE6/helpers/ntlm_auth/fakeauth/Makefile.in
--- squid-2.6.STABLE5/helpers/ntlm_auth/fakeauth/Makefile.in	Sun Oct 29 19:21:31 2006
+++ squid-2.6.STABLE6/helpers/ntlm_auth/fakeauth/Makefile.in	Sat Nov  4 16:20:00 2006
@@ -17,7 +17,7 @@
 #
 #  Makefile for the Squid Object Cache server
 #
-#  $Id: Makefile.in,v 1.36 2006/10/30 02:21:31 hno Exp $
+#  $Id: Makefile.in,v 1.37 2006/11/04 23:20:00 hno Exp $
 #
 #  Uncomment and customize the following to suit your needs:
 #
@@ -52,7 +52,7 @@
 	$(top_srcdir)/configure.in
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/cfgaux/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/include/autoconf.h
 CONFIG_CLEAN_FILES =
 am__installdirs = "$(DESTDIR)$(libexecdir)"
diff -ruN squid-2.6.STABLE5/helpers/ntlm_auth/mswin_sspi/Makefile.in squid-2.6.STABLE6/helpers/ntlm_auth/mswin_sspi/Makefile.in
--- squid-2.6.STABLE5/helpers/ntlm_auth/mswin_sspi/Makefile.in	Sun Oct 29 19:21:31 2006
+++ squid-2.6.STABLE6/helpers/ntlm_auth/mswin_sspi/Makefile.in	Sat Nov  4 16:20:01 2006
@@ -17,7 +17,7 @@
 #
 #  Makefile for the Squid Object Cache server
 #
-#  $Id: Makefile.in,v 1.10 2006/10/30 02:21:31 hno Exp $
+#  $Id: Makefile.in,v 1.11 2006/11/04 23:20:01 hno Exp $
 #
 
 srcdir = @srcdir@
@@ -50,7 +50,7 @@
 	$(top_srcdir)/configure.in
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/cfgaux/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/include/autoconf.h
 CONFIG_CLEAN_FILES =
 am__installdirs = "$(DESTDIR)$(libexecdir)"
diff -ruN squid-2.6.STABLE5/helpers/ntlm_auth/no_check/Makefile.in squid-2.6.STABLE6/helpers/ntlm_auth/no_check/Makefile.in
--- squid-2.6.STABLE5/helpers/ntlm_auth/no_check/Makefile.in	Sun Oct 29 19:21:31 2006
+++ squid-2.6.STABLE6/helpers/ntlm_auth/no_check/Makefile.in	Sat Nov  4 16:20:01 2006
@@ -17,7 +17,7 @@
 #
 #  Makefile for the Squid Object Cache server
 #
-#  $Id: Makefile.in,v 1.38 2006/10/30 02:21:31 hno Exp $
+#  $Id: Makefile.in,v 1.39 2006/11/04 23:20:01 hno Exp $
 #
 #  Uncomment and customize the following to suit your needs:
 #
@@ -51,7 +51,7 @@
 	$(top_srcdir)/configure.in
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/cfgaux/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/include/autoconf.h
 CONFIG_CLEAN_FILES =
 am__installdirs = "$(DESTDIR)$(libexecdir)"
diff -ruN squid-2.6.STABLE5/icons/Makefile.in squid-2.6.STABLE6/icons/Makefile.in
--- squid-2.6.STABLE5/icons/Makefile.in	Sun Oct 29 19:21:32 2006
+++ squid-2.6.STABLE6/icons/Makefile.in	Sat Nov  4 16:20:02 2006
@@ -14,7 +14,7 @@
 
 @SET_MAKE@
 
-# $Id: Makefile.in,v 1.48 2006/10/30 02:21:32 hno Exp $
+# $Id: Makefile.in,v 1.49 2006/11/04 23:20:02 hno Exp $
 #
 
 srcdir = @srcdir@
@@ -46,7 +46,7 @@
 	$(top_srcdir)/configure.in
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/cfgaux/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/include/autoconf.h
 CONFIG_CLEAN_FILES =
 SOURCES =
diff -ruN squid-2.6.STABLE5/include/autoconf.h.in squid-2.6.STABLE6/include/autoconf.h.in
--- squid-2.6.STABLE5/include/autoconf.h.in	Sun Oct 29 19:21:33 2006
+++ squid-2.6.STABLE6/include/autoconf.h.in	Sun Dec 10 06:41:18 2006
@@ -149,6 +149,9 @@
 /* Define to 1 if you have the `getspnam' function. */
 #undef HAVE_GETSPNAM
 
+/* Define to 1 if you have the `gettimeofday' function. */
+#undef HAVE_GETTIMEOFDAY
+
 /* Define to 1 if you have the <glib.h> header file. */
 #undef HAVE_GLIB_H
 
diff -ruN squid-2.6.STABLE5/include/squid_mswin.h squid-2.6.STABLE6/include/squid_mswin.h
--- squid-2.6.STABLE5/include/squid_mswin.h	Fri Sep 22 05:30:17 2006
+++ squid-2.6.STABLE6/include/squid_mswin.h	Sun Dec 10 06:36:23 2006
@@ -1,5 +1,5 @@
 /*
- * $Id: squid_mswin.h,v 1.3 2006/09/22 11:30:17 serassio Exp $
+ * $Id: squid_mswin.h,v 1.4 2006/12/10 13:36:23 serassio Exp $
  *
  * AUTHOR: Andrey Shorin <tolsty@tushino.com>
  * AUTHOR: Guido Serassio <serassio@squid-cache.org>
@@ -219,11 +219,13 @@
    long    f_spare[6]; /* spare for later */
 };
 
+#ifndef HAVE_GETTIMEOFDAY
 struct timezone 
   {
     int	tz_minuteswest;	/* minutes west of Greenwich */
     int	tz_dsttime;	/* type of dst correction */
   };
+#endif
 
 #define CHANGE_FD_SETSIZE 1
 #if CHANGE_FD_SETSIZE && SQUID_MAXFD > DEFAULT_FD_SETSIZE
diff -ruN squid-2.6.STABLE5/include/util.h squid-2.6.STABLE6/include/util.h
--- squid-2.6.STABLE5/include/util.h	Mon Sep 18 16:54:38 2006
+++ squid-2.6.STABLE6/include/util.h	Sun Dec 10 06:36:23 2006
@@ -1,5 +1,5 @@
 /*
- * $Id: util.h,v 1.67 2006/09/18 22:54:38 hno Exp $
+ * $Id: util.h,v 1.69 2006/12/10 13:36:23 serassio Exp $
  *
  * AUTHOR: Harvest Derived
  *
@@ -52,6 +52,10 @@
 #define _etext etext
 #endif
 
+#ifndef MIN
+#define	MIN(a, b)	((a) < (b) ? (a) : (b))
+#endif
+
 extern const char *getfullhostname(void);
 extern const char *mkhttpdlogtime(const time_t *);
 extern const char *mkrfc1123(time_t);
@@ -64,7 +68,7 @@
 extern double tvSubDsec(struct timeval, struct timeval);
 extern char *xstrncpy(char *, const char *, size_t);
 extern size_t xcountws(const char *str);
-extern time_t parse_rfc1123(const char *str);
+extern time_t parse_rfc1123(const char *str, int len);
 extern void *xcalloc(size_t, size_t);
 extern void *xmalloc(size_t);
 extern void *xrealloc(void *, size_t);
@@ -130,7 +134,9 @@
 #endif
 extern int chroot(const char *);
 extern int ftruncate(int, off_t);
+#ifndef HAVE_GETTIMEOFDAY
 extern int gettimeofday(struct timeval *, struct timezone *);
+#endif
 extern int inet_aton(const char *, struct in_addr *);
 extern int kill(pid_t, int);
 extern int statfs(const char *, struct statfs *);
diff -ruN squid-2.6.STABLE5/include/version.h squid-2.6.STABLE6/include/version.h
--- squid-2.6.STABLE5/include/version.h	Fri Nov  3 06:20:14 2006
+++ squid-2.6.STABLE6/include/version.h	Mon Dec 11 16:20:32 2006
@@ -9,5 +9,5 @@
  */
 
 #ifndef SQUID_RELEASE_TIME
-#define SQUID_RELEASE_TIME 1162560011
+#define SQUID_RELEASE_TIME 1165879230
 #endif
diff -ruN squid-2.6.STABLE5/lib/Makefile.in squid-2.6.STABLE6/lib/Makefile.in
--- squid-2.6.STABLE5/lib/Makefile.in	Sun Oct 29 19:21:33 2006
+++ squid-2.6.STABLE6/lib/Makefile.in	Sat Nov  4 16:20:02 2006
@@ -15,7 +15,7 @@
 @SET_MAKE@
 
 #
-#  $Id: Makefile.in,v 1.87 2006/10/30 02:21:33 hno Exp $
+#  $Id: Makefile.in,v 1.88 2006/11/04 23:20:02 hno Exp $
 #
 
 srcdir = @srcdir@
@@ -48,7 +48,7 @@
 	$(top_srcdir)/configure.in
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/cfgaux/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/include/autoconf.h
 CONFIG_CLEAN_FILES =
 LIBRARIES = $(noinst_LIBRARIES)
diff -ruN squid-2.6.STABLE5/lib/rfc1123.c squid-2.6.STABLE6/lib/rfc1123.c
--- squid-2.6.STABLE5/lib/rfc1123.c	Mon May 22 12:55:23 2006
+++ squid-2.6.STABLE6/lib/rfc1123.c	Wed Nov 29 08:54:58 2006
@@ -1,6 +1,6 @@
 
 /*
- * $Id: rfc1123.c,v 1.34 2006/05/22 18:55:23 serassio Exp $
+ * $Id: rfc1123.c,v 1.36 2006/11/29 15:54:58 hno Exp $
  *
  * DEBUG: 
  * AUTHOR: Harvest Derived
@@ -119,9 +119,7 @@
 	return 0;
     if (tm->tm_mon < 0 || tm->tm_mon > 11)
 	return 0;
-    if (tm->tm_year < 70 || tm->tm_year > 120)
-	return 0;
-    return 1;
+    return mktime(tm) != -1;
 }
 
 static struct tm *
@@ -157,11 +155,14 @@
     return tmSaneValues(&tm) ? &tm : NULL;
 }
 
+#define	TIMEBUFLEN	128
+
+/* This routine should be rewritten to not require copying the buffer - [ahc] */
 static struct tm *
-parse_date(const char *str)
+parse_date(const char *str, int len)
 {
     struct tm *tm;
-    char *tmp = xstrdup(str);
+    char tmp[TIMEBUFLEN];
     char *t;
     char *wday = NULL;
     char *day = NULL;
@@ -169,6 +170,10 @@
     char *year = NULL;
     char *time = NULL;
     char *zone = NULL;
+    int bl = MIN(len, TIMEBUFLEN - 1);
+
+    memcpy(tmp, str, bl);
+    tmp[bl] = '\0';
 
     for (t = strtok(tmp, ", "); t; t = strtok(NULL, ", ")) {
 	if (xisdigit(*t)) {
@@ -196,19 +201,17 @@
 	    zone = t;
     }
     tm = parse_date_elements(day, month, year, time, zone);
-
-    xfree(tmp);
     return tm;
 }
 
 time_t
-parse_rfc1123(const char *str)
+parse_rfc1123(const char *str, int len)
 {
     struct tm *tm;
     time_t t;
     if (NULL == str)
 	return -1;
-    tm = parse_date(str);
+    tm = parse_date(str, len);
     if (!tm)
 	return -1;
     tm->tm_isdst = -1;
diff -ruN squid-2.6.STABLE5/lib/win32lib.c squid-2.6.STABLE6/lib/win32lib.c
--- squid-2.6.STABLE5/lib/win32lib.c	Sat Sep  9 09:41:45 2006
+++ squid-2.6.STABLE6/lib/win32lib.c	Sun Dec 10 06:36:24 2006
@@ -1,6 +1,6 @@
 
 /*
- * $Id: win32lib.c,v 1.2 2006/09/09 15:41:45 serassio Exp $
+ * $Id: win32lib.c,v 1.3 2006/12/10 13:36:24 serassio Exp $
  *
  * Windows support
  * AUTHOR: Guido Serassio <serassio@squid-cache.org>
@@ -309,6 +309,7 @@
 	return 0;
 }
 
+#ifndef HAVE_GETTIMEOFDAY
 int
 gettimeofday(struct timeval *pcur_time, struct timezone *tz)
 {
@@ -325,6 +326,7 @@
     }
     return 0;
 }
+#endif
 
 int
 statfs(const char *path, struct statfs *sfs)
diff -ruN squid-2.6.STABLE5/scripts/Makefile.in squid-2.6.STABLE6/scripts/Makefile.in
--- squid-2.6.STABLE5/scripts/Makefile.in	Sun Oct 29 19:21:33 2006
+++ squid-2.6.STABLE6/scripts/Makefile.in	Sat Nov  4 16:20:03 2006
@@ -49,7 +49,7 @@
 	$(top_srcdir)/configure.in
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/cfgaux/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/include/autoconf.h
 CONFIG_CLEAN_FILES = RunCache
 am__installdirs = "$(DESTDIR)$(bindir)"
diff -ruN squid-2.6.STABLE5/snmplib/Makefile.in squid-2.6.STABLE6/snmplib/Makefile.in
--- squid-2.6.STABLE5/snmplib/Makefile.in	Sun Oct 29 19:21:33 2006
+++ squid-2.6.STABLE6/snmplib/Makefile.in	Sat Nov  4 16:20:03 2006
@@ -43,7 +43,7 @@
 	$(top_srcdir)/configure.in
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/cfgaux/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/include/autoconf.h
 CONFIG_CLEAN_FILES =
 LIBRARIES = $(noinst_LIBRARIES)
diff -ruN squid-2.6.STABLE5/src/HttpHeader.c squid-2.6.STABLE6/src/HttpHeader.c
--- squid-2.6.STABLE5/src/HttpHeader.c	Wed Jul 19 10:05:11 2006
+++ squid-2.6.STABLE6/src/HttpHeader.c	Tue Nov 28 22:31:48 2006
@@ -1,6 +1,6 @@
 
 /*
- * $Id: HttpHeader.c,v 1.89 2006/07/19 16:05:11 hno Exp $
+ * $Id: HttpHeader.c,v 1.90 2006/11/29 05:31:48 adrian Exp $
  *
  * DEBUG: section 55    HTTP Header
  * AUTHOR: Alex Rousskov
@@ -1026,7 +1026,7 @@
     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));
+	value = parse_rfc1123(strBuf(e->value), strLen(e->value));
 	httpHeaderNoteParsedEntry(e->id, e->value, value < 0);
     }
     return value;
@@ -1144,7 +1144,7 @@
 	    tot.valid = 1;
 	} else {
 	    /* or maybe it is time? */
-	    tot.time = parse_rfc1123(str);
+	    tot.time = parse_rfc1123(str, strLen(e->value));
 	    if (tot.time >= 0)
 		tot.valid = 1;
 	    tot.tag = NULL;
diff -ruN squid-2.6.STABLE5/src/Makefile.in squid-2.6.STABLE6/src/Makefile.in
--- squid-2.6.STABLE5/src/Makefile.in	Sun Oct 29 19:21:34 2006
+++ squid-2.6.STABLE6/src/Makefile.in	Sat Nov  4 16:20:03 2006
@@ -17,7 +17,7 @@
 #
 #  Makefile for the Squid Object Cache server
 #
-#  $Id: Makefile.in,v 1.280 2006/10/30 02:21:34 hno Exp $
+#  $Id: Makefile.in,v 1.281 2006/11/04 23:20:03 hno Exp $
 #
 #  Uncomment and customize the following to suit your needs:
 #
@@ -56,7 +56,7 @@
 	$(top_srcdir)/configure.in
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/cfgaux/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/include/autoconf.h
 CONFIG_CLEAN_FILES =
 @ENABLE_PINGER_TRUE@am__EXEEXT_1 = pinger$(EXEEXT)
diff -ruN squid-2.6.STABLE5/src/access_log.c squid-2.6.STABLE6/src/access_log.c
--- squid-2.6.STABLE5/src/access_log.c	Thu Sep 28 15:55:37 2006
+++ squid-2.6.STABLE6/src/access_log.c	Sat Nov  4 08:39:26 2006
@@ -1,6 +1,6 @@
 
 /*
- * $Id: access_log.c,v 1.93 2006/09/28 21:55:37 hno Exp $
+ * $Id: access_log.c,v 1.94 2006/11/04 15:39:26 hno Exp $
  *
  * DEBUG: section 46    Access Log
  * AUTHOR: Duane Wessels
@@ -279,7 +279,7 @@
 
     LFT_CLIENT_IP_ADDRESS,
     LFT_CLIENT_FQDN,
-/*LFT_CLIENT_PORT, */
+    LFT_CLIENT_PORT,
 
 /*LFT_SERVER_IP_ADDRESS, */
     LFT_SERVER_IP_OR_PEER_NAME,
@@ -382,7 +382,7 @@
 {
 
     {">a", LFT_CLIENT_IP_ADDRESS},
-/*{ ">p", LFT_CLIENT_PORT}, */
+    {">p", LFT_CLIENT_PORT},
     {">A", LFT_CLIENT_FQDN},
 
 /*{ "<a", LFT_SERVER_IP_ADDRESS }, */
@@ -485,7 +485,12 @@
 		out = inet_ntoa(al->cache.caddr);
 	    break;
 
-	    /* case LFT_CLIENT_PORT: */
+	case LFT_CLIENT_PORT:
+	    if (al->request) {
+		outint = al->request->client_port;
+		doint = 1;
+	    }
+	    break;
 
 	    /* case LFT_SERVER_IP_ADDRESS: */
 
diff -ruN squid-2.6.STABLE5/src/auth/Makefile.in squid-2.6.STABLE6/src/auth/Makefile.in
--- squid-2.6.STABLE5/src/auth/Makefile.in	Sun Oct 29 19:21:35 2006
+++ squid-2.6.STABLE6/src/auth/Makefile.in	Sat Nov  4 16:20:04 2006
@@ -43,7 +43,7 @@
 	$(top_srcdir)/configure.in
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/cfgaux/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/include/autoconf.h
 CONFIG_CLEAN_FILES =
 LIBRARIES = $(noinst_LIBRARIES)
@@ -259,7 +259,7 @@
 
 #  Makefile for authentication modules in the Squid Object Cache server
 #
-#  $Id: Makefile.in,v 1.37 2006/10/30 02:21:35 hno Exp $
+#  $Id: Makefile.in,v 1.38 2006/11/04 23:20:04 hno Exp $
 #
 AUTOMAKE_OPTIONS = subdir-objects
 EXTRA_LIBRARIES = libbasic.a libdigest.a libntlm.a libnegotiate.a
diff -ruN squid-2.6.STABLE5/src/cache_cf.c squid-2.6.STABLE6/src/cache_cf.c
--- squid-2.6.STABLE5/src/cache_cf.c	Sat Sep 30 15:01:08 2006
+++ squid-2.6.STABLE6/src/cache_cf.c	Sat Dec  9 22:33:25 2006
@@ -1,6 +1,6 @@
 
 /*
- * $Id: cache_cf.c,v 1.458 2006/09/30 21:01:08 hno Exp $
+ * $Id: cache_cf.c,v 1.459 2006/12/10 05:33:25 hno Exp $
  *
  * DEBUG: section 3     Configuration File Parsing
  * AUTHOR: Harvest Derived
@@ -1605,6 +1605,10 @@
     if ((token = strtok(NULL, w_space)) == NULL)
 	self_destruct();
     p->type = parseNeighborType(token);
+    if (p->type == PEER_MULTICAST) {
+	p->options.no_digest = 1;
+	p->options.no_netdb_exchange = 1;
+    }
     p->http_port = GetShort();
     if (!p->http_port)
 	self_destruct();
diff -ruN squid-2.6.STABLE5/src/cf.data.pre squid-2.6.STABLE6/src/cf.data.pre
--- squid-2.6.STABLE5/src/cf.data.pre	Thu Oct 12 14:48:48 2006
+++ squid-2.6.STABLE6/src/cf.data.pre	Tue Nov 28 16:51:52 2006
@@ -1,6 +1,6 @@
 
 #
-# $Id: cf.data.pre,v 1.374 2006/10/12 20:48:48 wessels Exp $
+# $Id: cf.data.pre,v 1.377 2006/11/28 23:51:52 hno Exp $
 #
 #
 # SQUID Web Proxy Cache          http://www.squid-cache.org/
@@ -1220,6 +1220,7 @@
 
 		>a	Client source IP address
 		>A	Client FQDN
+		>p	Client source port
 		<A	Server IP address or peer name
 		la	Local IP address (http_port)
 		lp	Local port number (http_port)
@@ -2122,9 +2123,9 @@
 			TTL for cached negative lookups (default same
 			as ttl)
 	  children=n	number of processes spawn to service external acl
-			lookups of this type.
-	  concurrency=n	concurrency level per process. Use 0 for simple helpers
-			who can only process a single request at a time.
+			lookups of this type. (default 5).
+	  concurrency=n	concurrency level per process. Only used with helpers
+	  		capable of processing more than one query at a time.
 			Note: see compatibility note below
 	  cache=n	result cache size, 0 is unbounded (default)
 	  grace=	Percentage remaining of TTL where a refresh of a
@@ -2159,9 +2160,9 @@
 	 %DATA		The ACL arguments. If not used then any arguments
 			is automatically added at the end
 
-	In addition, any string specified in the referencing acl will
-	also be included in the helper request line, after the specified
-	formats (see the "acl external" directive)
+	The request sent to the helper consists of the data in the format
+	specification in the order specified, plus any values specified in
+	the referencing acl (see the "acl external" directive).
 
 	The helper receives lines per the above format specification,
 	and returns lines starting with OK or ERR indicating the validity
@@ -2181,12 +2182,16 @@
 	  log=		String to be logged in access.log. Available as
 			%ea in logformat specifications
 
-	Keyword values need to be enclosed in quotes if they may contain
-	whitespace, or the whitespace escaped using \. Any quotes or \
-	characters within the keyword value must be \ escaped.
+	If protocol=3.0 (the default) then URL escaping is used to protect
+	each value in both requests and responses.
 
-	If protocol=3.0 then URL escaping of the strings is used instead
-	of the above described quoting format.
+	If using protocol=2.5 then all values need to be enclosed in quotes
+	if they may contain whitespace, or the whitespace escaped using \.
+	And quotes or \ characters within the keyword value must be \ escaped.
+
+	When using the concurrency= option the protocol is changed by
+	introducing a query channel tag infront of the request/response.
+	The query channel tag is a number between 0 and concurrency-1.
 
 	Compatibility Note: The children= option was named concurrency= in
 	Squid-2.5.STABLE3 and earlier, and was accepted as an alias for the
@@ -2703,7 +2708,7 @@
 	  # cache_peer_access mycache.mydomain.net allow asexample
 	  # cache_peer_access mycache_mydomain.net deny all
 
-	acl aclname proxy_auth username ...
+	acl aclname proxy_auth [-i] username ...
 	acl aclname proxy_auth_regex [-i] pattern ...
 	  # list of valid usernames
 	  # use REQUIRED to accept any valid username.
diff -ruN squid-2.6.STABLE5/src/client_side.c squid-2.6.STABLE6/src/client_side.c
--- squid-2.6.STABLE5/src/client_side.c	Sat Sep 30 15:10:48 2006
+++ squid-2.6.STABLE6/src/client_side.c	Sun Dec 10 16:53:44 2006
@@ -1,6 +1,6 @@
 
 /*
- * $Id: client_side.c,v 1.680 2006/09/30 21:10:48 hno Exp $
+ * $Id: client_side.c,v 1.688 2006/12/10 23:53:44 hno Exp $
  *
  * DEBUG: section 33    Client-side Routines
  * AUTHOR: Duane Wessels
@@ -165,6 +165,7 @@
 static int varyEvaluateMatch(StoreEntry * entry, request_t * request);
 static int modifiedSince(StoreEntry *, request_t *);
 static StoreEntry *clientCreateStoreEntry(clientHttpRequest *, method_t, request_flags);
+static inline int clientNatLookup(ConnStateData * conn);
 
 #if USE_IDENT
 static void
@@ -398,8 +399,7 @@
     if (h->log_type != LOG_TCP_DENIED)
 	delaySetStoreClient(h->sc, delayClient(h));
 #endif
-    storeClientCopy(h->sc, e, 0, 0, CLIENT_SOCK_SZ,
-	memAllocate(MEM_CLIENT_SOCK_BUF), clientSendMoreHeaderData, h);
+    storeClientCopy(h->sc, e, 0, 0, CLIENT_SOCK_SZ, h->readbuf, clientSendMoreHeaderData, h);
     return e;
 }
 
@@ -697,11 +697,9 @@
     debug(33, 3) ("clientHandleETagReply: %s, %d bytes\n", url, (int) size);
     if (entry == NULL) {
 	/* client aborted */
-	memFree(buf, MEM_CLIENT_SOCK_BUF);
 	return;
     }
     if (size < 0 && !EBIT_TEST(entry->flags, ENTRY_ABORTED)) {
-	memFree(buf, MEM_CLIENT_SOCK_BUF);
 	clientHandleETagMiss(http);
 	return;
     }
@@ -709,7 +707,6 @@
     status = mem->reply->sline.status;
     if (EBIT_TEST(entry->flags, ENTRY_ABORTED)) {
 	debug(33, 3) ("clientHandleETagReply: ABORTED '%s'\n", url);
-	memFree(buf, MEM_CLIENT_SOCK_BUF);
 	clientHandleETagMiss(http);
 	return;
     }
@@ -718,7 +715,6 @@
 	if (size >= CLIENT_SOCK_SZ) {
 	    /* will not get any bigger than that */
 	    debug(33, 3) ("clientHandleETagReply: Reply is too large '%s'\n", url);
-	    memFree(buf, MEM_CLIENT_SOCK_BUF);
 	    clientHandleETagMiss(http);
 	} else {
 	    storeClientCopy(http->sc, entry,
@@ -733,7 +729,6 @@
     }
     if (HTTP_NOT_MODIFIED == mem->reply->sline.status) {
 	/* Remember the ETag and restart */
-	memFree(buf, MEM_CLIENT_SOCK_BUF);
 	if (mem->reply) {
 	    request_t *request = http->request;
 	    const char *etag = httpHeaderGetStr(&mem->reply->header, HDR_ETAG);
@@ -781,8 +776,7 @@
     storeClientCopy(http->sc, entry,
 	http->out.offset,
 	http->out.offset,
-	CLIENT_SOCK_SZ,
-	memAllocate(MEM_CLIENT_SOCK_BUF),
+	CLIENT_SOCK_SZ, http->readbuf,
 	clientHandleETagReply,
 	http);
 }
@@ -865,8 +859,7 @@
     storeClientCopy(http->sc, entry,
 	http->out.offset,
 	http->out.offset,
-	CLIENT_SOCK_SZ,
-	memAllocate(MEM_CLIENT_SOCK_BUF),
+	CLIENT_SOCK_SZ, http->readbuf,
 	clientHandleIMSReply,
 	http);
 }
@@ -940,11 +933,9 @@
 	http->old_entry->mem_obj->ims_entry = NULL;
     }
     if (entry == NULL) {
-	memFree(buf, MEM_CLIENT_SOCK_BUF);
 	return;
     }
     if (size < 0 && !EBIT_TEST(entry->flags, ENTRY_ABORTED)) {
-	memFree(buf, MEM_CLIENT_SOCK_BUF);
 	return;
     }
     mem = entry->mem_obj;
@@ -1112,8 +1103,7 @@
 	    storeClientCopy(http->sc, http->entry,
 		http->out.offset,
 		http->out.offset,
-		CLIENT_SOCK_SZ,
-		memAllocate(MEM_CLIENT_SOCK_BUF),
+		CLIENT_SOCK_SZ, http->readbuf,
 		clientCacheHit,
 		http);
 	    return;
@@ -1251,7 +1241,6 @@
 httpRequestFree(void *data)
 {
     clientHttpRequest *http = data;
-    clientHttpRequest **H;
     ConnStateData *conn = http->conn;
     StoreEntry *e;
     request_t *request = http->request;
@@ -1359,18 +1348,9 @@
     if (http->reply)
 	httpReplyDestroy(http->reply);
     http->reply = NULL;
-    assert(http != http->next);
-    assert(http->conn->chr != NULL);
+    assert(DLINK_HEAD(http->conn->reqs) != NULL);
     /* Unlink us from the clients request list */
-    H = &http->conn->chr;
-    while (*H) {
-	if (*H == http)
-	    break;
-	H = &(*H)->next;
-    }
-    assert(*H != NULL);
-    *H = http->next;
-    http->next = NULL;
+    dlinkDelete(&http->node, &http->conn->reqs);
     dlinkDelete(&http->active, &ClientActiveRequests);
     cbdataFree(http);
 }
@@ -1380,13 +1360,16 @@
 connStateFree(int fd, void *data)
 {
     ConnStateData *connState = data;
+    dlink_node *n;
     clientHttpRequest *http;
     debug(33, 3) ("connStateFree: FD %d\n", fd);
     assert(connState != NULL);
     clientdbEstablished(connState->peer.sin_addr, -1);	/* decrement */
-    while ((http = connState->chr) != NULL) {
+    n = connState->reqs.head;
+    while (n != NULL) {
+	http = n->data;
+	n = n->next;
 	assert(http->conn == connState);
-	assert(connState->chr != connState->chr->next);
 	httpRequestFree(http);
     }
     if (connState->auth_user_request)
@@ -2076,12 +2059,10 @@
     debug(33, 3) ("clientCacheHit: %s, %d bytes\n", http->uri, (int) size);
     http->flags.hit = 0;
     if (http->entry == NULL) {
-	memFree(buf, MEM_CLIENT_SOCK_BUF);
 	debug(33, 3) ("clientCacheHit: request aborted\n");
 	return;
     } else if (size <= 0) {
 	/* swap in failure */
-	memFree(buf, MEM_CLIENT_SOCK_BUF);
 	debug(33, 3) ("clientCacheHit: swapin failure for %s\n", http->uri);
 	http->log_type = LOG_TCP_SWAPFAIL_MISS;
 	if ((e = http->entry)) {
@@ -2102,10 +2083,8 @@
 	 * punt to clientProcessMiss.
 	 */
 	if (e->mem_status == IN_MEMORY || e->store_status == STORE_OK) {
-	    memFree(buf, MEM_CLIENT_SOCK_BUF);
 	    clientProcessMiss(http);
 	} else if (size == CLIENT_SOCK_SZ && http->out.offset == 0) {
-	    memFree(buf, MEM_CLIENT_SOCK_BUF);
 	    clientProcessMiss(http);
 	} else {
 	    debug(33, 3) ("clientCacheHit: waiting for HTTP reply headers\n");
@@ -2138,7 +2117,6 @@
 	     */
 	    store_client *sc = http->sc;
 	    http->entry = NULL;	/* saved in e */
-	    memFree(buf, MEM_CLIENT_SOCK_BUF);
 	    /* Warning: storeClientUnregister may abort the object so we must
 	     * call storeLocateVary before unregistering, and
 	     * storeLocateVary may complete immediately so we cannot
@@ -2165,12 +2143,10 @@
     case VARY_CANCEL:
 	/* varyEvaluateMatch found a object loop. Process as miss */
 	debug(33, 1) ("clientProcessHit: Vary object loop!\n");
-	memFree(buf, MEM_CLIENT_SOCK_BUF);
 	clientProcessMiss(http);
 	return;
     }
     if (r->method == METHOD_PURGE) {
-	memFree(buf, MEM_CLIENT_SOCK_BUF);
 	http->entry = NULL;
 	storeClientUnregister(http->sc, e, http);
 	http->sc = NULL;
@@ -2188,7 +2164,6 @@
 	    http->log_type = LOG_TCP_NEGATIVE_HIT;
 	    clientSendMoreHeaderData(data, buf, size);
 	} else {
-	    memFree(buf, MEM_CLIENT_SOCK_BUF);
 	    http->log_type = LOG_TCP_MISS;
 	    clientProcessMiss(http);
 	}
@@ -2207,7 +2182,6 @@
 	     * be a hit for the requested object.
 	     */
 	    http->log_type = LOG_TCP_MISS;
-	    memFree(buf, MEM_CLIENT_SOCK_BUF);
 	    clientProcessMiss(http);
 	    return;
 	}
@@ -2219,7 +2193,6 @@
 	     * hit for this object. Qyery the origin.
 	     */
 	    http->log_type = LOG_TCP_MISS;
-	    memFree(buf, MEM_CLIENT_SOCK_BUF);
 	    clientProcessMiss(http);
 	    return;
 	}
@@ -2269,7 +2242,6 @@
 	    http->log_type = LOG_TCP_MISS;
 	    clientProcessMiss(http);
 	}
-	memFree(buf, MEM_CLIENT_SOCK_BUF);
 	return;
     }
   hit:
@@ -2280,7 +2252,6 @@
 	if (mem->reply->sline.status != HTTP_OK) {
 	    debug(33, 4) ("clientCacheHit: Reply code %d != 200\n",
 		mem->reply->sline.status);
-	    memFree(buf, MEM_CLIENT_SOCK_BUF);
 	    http->log_type = LOG_TCP_MISS;
 	    clientProcessMiss(http);
 	    return;
@@ -2291,7 +2262,6 @@
 	     * be on the safe side.
 	     */
 	    http->log_type = LOG_TCP_MISS;
-	    memFree(buf, MEM_CLIENT_SOCK_BUF);
 	    clientProcessMiss(http);
 	    return;
 	}
@@ -2310,7 +2280,6 @@
 	if (mem->reply->sline.status != HTTP_OK) {
 	    debug(33, 4) ("clientCacheHit: Reply code %d != 200\n",
 		mem->reply->sline.status);
-	    memFree(buf, MEM_CLIENT_SOCK_BUF);
 	    http->log_type = LOG_TCP_MISS;
 	    clientProcessMiss(http);
 	    return;
@@ -2325,7 +2294,6 @@
 	time_t timestamp = e->timestamp;
 	MemBuf mb = httpPacked304Reply(e->mem_obj->reply);
 	http->log_type = LOG_TCP_IMS_HIT;
-	memFree(buf, MEM_CLIENT_SOCK_BUF);
 	storeClientUnregister(http->sc, e, http);
 	http->sc = NULL;
 	storeUnlockObject(e);
@@ -2636,29 +2604,25 @@
     dlinkAdd(http, &http->active, &ClientActiveRequests);
     debug(33, 5) ("clientSendMoreHeaderData: FD %d '%s', out.offset=%ld \n",
 	fd, storeUrl(entry), (long int) http->out.offset);
-    if (conn->chr != http) {
+    assert(conn->reqs.head != NULL);
+    if (DLINK_HEAD(conn->reqs) != http) {
 	/* there is another object in progress, defer this one */
 	debug(33, 2) ("clientSendMoreHeaderData: Deferring %s\n", storeUrl(entry));
-	memFree(buf, MEM_CLIENT_SOCK_BUF);
 	return;
     } else if (http->request->flags.reset_tcp) {
-	memFree(buf, MEM_CLIENT_SOCK_BUF);
 	comm_reset_close(fd);
 	return;
     } else if (entry && EBIT_TEST(entry->flags, ENTRY_ABORTED)) {
 	/* call clientWriteComplete so the client socket gets closed */
 	clientWriteComplete(fd, NULL, 0, COMM_OK, http);
-	memFree(buf, MEM_CLIENT_SOCK_BUF);
 	return;
     } else if (size < 0) {
 	/* call clientWriteComplete so the client socket gets closed */
 	clientWriteComplete(fd, NULL, 0, COMM_OK, http);
-	memFree(buf, MEM_CLIENT_SOCK_BUF);
 	return;
     } else if (size == 0) {
 	/* call clientWriteComplete so the client socket gets closed */
 	clientWriteComplete(fd, NULL, 0, COMM_OK, http);
-	memFree(buf, MEM_CLIENT_SOCK_BUF);
 	return;
     }
     assert(http->out.offset == 0);
@@ -2668,7 +2632,6 @@
 	MemBuf mb;
 	memBufDefInit(&mb);
 	memBufAppend(&mb, buf, size);
-	memFree(buf, MEM_CLIENT_SOCK_BUF);
 	http->out.offset += body_size;
 	comm_write_mbuf(http->conn->fd, mb, clientWriteComplete, http);
 	return;
@@ -2688,7 +2651,6 @@
 	http->entry = clientCreateStoreEntry(http, http->request->method,
 	    null_request_flags);
 	errorAppendEntry(http->entry, err);
-	memFree(buf, MEM_CLIENT_SOCK_BUF);
 	return;
     }
     body_size = size - rep->hdr_sz;
@@ -2910,7 +2872,6 @@
 static void
 clientCheckHeaderDone(clientCheckHeaderStateData * state)
 {
-    char *buf = state->buf;
     const char *body_buf = state->body_buf;
     ssize_t body_size = state->body_size;
     HttpReply *rep = state->http->reply;
@@ -2951,7 +2912,6 @@
     comm_write_mbuf(http->conn->fd, mb, clientWriteComplete, http);
     /* clean up */
   aborted:
-    memFree(buf, MEM_CLIENT_SOCK_BUF);
     cbdataUnlock(http);
     http = NULL;
 }
@@ -2976,25 +2936,22 @@
     dlinkAdd(http, &http->active, &ClientActiveRequests);
     debug(33, 5) ("clientSendMoreData: FD %d '%s', out.offset=%d \n",
 	fd, storeUrl(entry), (int) http->out.offset);
-    if (conn->chr != http) {
+    assert(conn->reqs.head != NULL);
+    if (DLINK_HEAD(conn->reqs) != http) {
 	/* there is another object in progress, defer this one */
 	debug(33, 1) ("clientSendMoreData: Deferring %s\n", storeUrl(entry));
-	memFree(buf, MEM_CLIENT_SOCK_BUF);
 	return;
     } else if (entry && EBIT_TEST(entry->flags, ENTRY_ABORTED)) {
 	/* call clientWriteComplete so the client socket gets closed */
 	clientWriteComplete(fd, NULL, 0, COMM_OK, http);
-	memFree(buf, MEM_CLIENT_SOCK_BUF);
 	return;
     } else if (size < 0) {
 	/* call clientWriteComplete so the client socket gets closed */
 	clientWriteComplete(fd, NULL, 0, COMM_OK, http);
-	memFree(buf, MEM_CLIENT_SOCK_BUF);
 	return;
     } else if (size == 0) {
 	/* call clientWriteComplete so the client socket gets closed */
 	clientWriteComplete(fd, NULL, 0, COMM_OK, http);
-	memFree(buf, MEM_CLIENT_SOCK_BUF);
 	return;
     }
     if (!http->request->range) {
@@ -3035,8 +2992,6 @@
     }
     /* write */
     comm_write_mbuf(fd, mb, clientWriteComplete, http);
-    /* if we don't do it, who will? */
-    memFree(buf, MEM_CLIENT_SOCK_BUF);
 }
 
 /*
@@ -3053,7 +3008,6 @@
      * (second) argument, so we pass in NULL.
      */
     clientWriteComplete(fd, NULL, size, errflag, data);
-    memFree(buf, MEM_CLIENT_SOCK_BUF);
 }
 
 static void
@@ -3069,7 +3023,11 @@
 	comm_close(conn->fd);
 	return;
     }
-    if ((http = conn->chr) == NULL) {
+    http = NULL;
+    if (conn->reqs.head != NULL) {
+	http = DLINK_HEAD(conn->reqs);
+    }
+    if (http == NULL) {
 	debug(33, 5) ("clientKeepaliveNextRequest: FD %d reading next req\n",
 	    conn->fd);
 	fd_note(conn->fd, "Waiting for next request");
@@ -3099,8 +3057,7 @@
 	    storeClientCopy(http->sc, entry,
 		http->out.offset,
 		http->out.offset,
-		CLIENT_SOCK_SZ,
-		memAllocate(MEM_CLIENT_SOCK_BUF),
+		CLIENT_SOCK_SZ, http->readbuf,
 		clientSendMoreHeaderData,
 		http);
 	}
@@ -3187,8 +3144,7 @@
 	storeClientCopy(http->sc, entry,
 	    http->out.offset,
 	    http->out.offset,
-	    CLIENT_SOCK_SZ,
-	    memAllocate(MEM_CLIENT_SOCK_BUF),
+	    CLIENT_SOCK_SZ, http->readbuf,
 	    clientSendMoreData,
 	    http);
     }
@@ -3417,8 +3373,7 @@
 	storeClientCopy(http->sc, http->entry,
 	    http->out.offset,
 	    http->out.offset,
-	    CLIENT_SOCK_SZ,
-	    memAllocate(MEM_CLIENT_SOCK_BUF),
+	    CLIENT_SOCK_SZ, http->readbuf,
 	    clientCacheHit,
 	    http);
     } else {
@@ -3545,7 +3500,6 @@
     char *end;
     size_t header_sz;		/* size of headers, not including first line */
     size_t prefix_sz;		/* size of whole request (req-line + headers) */
-    size_t url_sz;
     size_t req_sz;
     method_t method;
     clientHttpRequest *http = NULL;
@@ -3683,29 +3637,80 @@
 	    debug(33, 1) ("parseHttpRequest: CONNECT not valid in accelerator mode\n");
 	    goto invalid_request;
 	}
-    } else if (*url == '/')
-  accel:{
-	int vhost = conn->port->vhost || conn->port->transparent;
+    } else if (*url == '/' && Config.onoff.global_internal_static && internalCheck(url)) {
+      internal:
+	/* prepend our name & port */
+	http->uri = xstrdup(internalStoreUri("", url));
+	http->flags.internal = 1;
+	http->flags.accel = 1;
+	debug(33, 5) ("INTERNAL REWRITE: '%s'\n", http->uri);
+    } else if (*url == '/' && conn->port->transparent) {
+	int port = 0;
+	const char *host = mime_get_header(req_hdr, "Host");
+	char *portstr;
+	if (host && (portstr = strchr(host, ':')) != NULL) {
+	    *portstr++ = '\0';
+	    port = atoi(portstr);
+	}
+	http->flags.transparent = 1;
+	if (Config.onoff.accel_no_pmtu_disc) {
+#if defined(IP_MTU_DISCOVER) && defined(IP_PMTUDISC_DONT)
+	    int i = IP_PMTUDISC_DONT;
+	    setsockopt(conn->fd, SOL_IP, IP_MTU_DISCOVER, &i, sizeof i);
+#else
+	    static int reported = 0;
+	    if (!reported) {
+		debug(33, 1) ("Notice: httpd_accel_no_pmtu_disc not supported on your platform\n");
+		reported = 1;
+	    }
+#endif
+	}
+	if (!host && !conn->transparent && clientNatLookup(conn) == 0)
+	    conn->transparent = 1;
+	if (!host && conn->transparent) {
+	    port = ntohs(conn->me.sin_port);
+	    if (!host)
+		host = inet_ntoa(conn->me.sin_addr);
+	}
+	if (host) {
+	    size_t url_sz = 10 + strlen(host) + 6 + strlen(url) + 32 + Config.appendDomainLen;
+	    http->uri = xcalloc(url_sz, 1);
+	    if (port) {
+		snprintf(http->uri, url_sz, "%s://%s:%d%s",
+		    conn->port->protocol, host, port, url);
+	    } else {
+		snprintf(http->uri, url_sz, "%s://%s%s",
+		    conn->port->protocol, host, url);
+	    }
+	} else if (internalCheck(url)) {
+	    goto internal;
+	} else {
+	    goto invalid_request;
+	}
+    } else if (*url == '/' || conn->port->accel) {
+	int vhost = conn->port->vhost;
 	int vport = conn->port->vport;
-	int accel = conn->port->accel;
-	if (!vport && conn->transparent)
-	    vport = ntohs(conn->me.sin_port);
-	if (Config.onoff.global_internal_static && conn->port->accel && internalCheck(url)) {
-	    /* prepend our name & port */
-	    http->uri = xstrdup(internalStoreUri("", url));
-	    http->flags.internal = 1;
-	    debug(33, 5) ("INTERNAL REWRITE: '%s'\n", http->uri);
+	http->flags.accel = 1;
+	if (*url != '/' && !vhost && strncasecmp(url, "cache_object://", 15) != 0) {
+	    url = strstr(url, "//");
+	    if (!url)
+		goto invalid_request;
+	    url = strchr(url + 2, '/');
+	    if (!url)
+		url = (char *) "/";
+	}
+	if (*url != '/') {
+	    /* Fully qualified URL. Nothing special to do */
 	} else if (vhost && (t = mime_get_header(req_hdr, "Host"))) {
 	    char *portstr = strchr(t, ':');
 	    int port = 0;
+	    size_t url_sz = strlen(url) + 32 + Config.appendDomainLen + strlen(t);
 	    if (portstr) {
 		*portstr++ = '\0';
 		port = atoi(portstr);
 	    }
 	    if (vport && !port)
 		port = vport;
-	    url_sz = strlen(url) + 32 + Config.appendDomainLen +
-		strlen(t);
 	    http->uri = xcalloc(url_sz, 1);
 	    if (vport)
 		snprintf(http->uri, url_sz, "%s://%s:%d%s",
@@ -3715,18 +3720,16 @@
 		    conn->port->protocol, t, url);
 	    debug(33, 5) ("VHOST REWRITE: '%s'\n", http->uri);
 	} else if (conn->port->defaultsite) {
-	    url_sz = strlen(url) + 32 + Config.appendDomainLen +
-		strlen(conn->port->defaultsite);
+	    size_t url_sz = strlen(url) + 32 + Config.appendDomainLen +
+	    strlen(conn->port->defaultsite);
 	    http->uri = xcalloc(url_sz, 1);
 	    snprintf(http->uri, url_sz, "%s://%s%s",
 		conn->port->protocol, conn->port->defaultsite, url);
 	    debug(33, 5) ("DEFAULTSITE REWRITE: '%s'\n", http->uri);
 	} else if (vport) {
 	    /* Put the local socket IP address as the hostname.
-	     * Note: In transparent mode clientNatLookup() has replaced
-	     * the local socket IP with the real destination
 	     */
-	    url_sz = strlen(url) + 32 + Config.appendDomainLen;
+	    size_t url_sz = strlen(url) + 32 + Config.appendDomainLen;
 	    http->uri = xcalloc(url_sz, 1);
 	    snprintf(http->uri, url_sz, "%s://%s:%d%s",
 		http->conn->port->protocol,
@@ -3734,33 +3737,15 @@
 		vport, url);
 	    debug(33, 5) ("VPORT REWRITE: '%s'\n", http->uri);
 	} else if (internalCheck(url)) {
-	    /* prepend our name & port */
-	    http->uri = xstrdup(internalStoreUri("", url));
-	    http->flags.internal = 1;
-	    debug(33, 5) ("INTERNAL REWRITE: '%s'\n", http->uri);
+	    goto internal;
 	} else {
 	    goto invalid_request;
 	}
-	if (accel)
-	    http->flags.accel = 1;
-	else if (conn->port->transparent)
-	    http->flags.transparent = 1;
-    } else if (conn->port->accel) {
-	http->flags.accel = 1;
-	if (!conn->port->vhost && strncasecmp(url, "cache_object://", 15) != 0) {
-	    url = strstr(url, "//");
-	    if (!url)
-		goto invalid_request;
-	    url = strchr(url + 2, '/');
-	    if (!url)
-		url = (char *) "/";
-	    goto accel;
-	}
     }
     if (!http->uri) {
 	/* No special rewrites have been applied above, use the
 	 * requested url. may be rewritten later, so make extra room */
-	url_sz = strlen(url) + Config.appendDomainLen + 5;
+	size_t url_sz = strlen(url) + Config.appendDomainLen + 5;
 	http->uri = xcalloc(url_sz, 1);
 	strcpy(http->uri, url);
     }
@@ -3815,7 +3800,6 @@
     int size;
     method_t method;
     clientHttpRequest *http = NULL;
-    clientHttpRequest **H = NULL;
     char *prefix = NULL;
     ErrorState *err = NULL;
     fde *F = &fd_table[fd];
@@ -3845,7 +3829,7 @@
 	conn->in.offset += size;
 	conn->in.buf[conn->in.offset] = '\0';	/* Terminate the string */
     } else if (size == 0) {
-	if (conn->chr == NULL && conn->in.offset == 0) {
+	if (DLINK_ISEMPTY(conn->reqs) && conn->in.offset == 0) {
 	    /* no current or pending requests */
 	    debug(33, 4) ("clientReadRequest: FD %d closed\n", fd);
 	    comm_close(fd);
@@ -3889,6 +3873,7 @@
     /* Process next request */
     while (conn->in.offset > 0 && conn->body.size_left == 0) {
 	int nrequests;
+	dlink_node *n;
 	size_t req_line_sz = 0;
 	/* Skip leading (and trailing) whitespace */
 	while (conn->in.offset > 0 && xisspace(conn->in.buf[0])) {
@@ -3899,7 +3884,7 @@
 	if (conn->in.offset == 0)
 	    break;
 	/* Limit the number of concurrent requests to 2 */
-	for (H = &conn->chr, nrequests = 0; *H; H = &(*H)->next, nrequests++);
+	for (n = conn->reqs.head, nrequests = 0; n; n = n->next, nrequests++);
 	if (nrequests >= (Config.onoff.pipeline_prefetch ? 2 : 1)) {
 	    debug(33, 3) ("clientReadRequest: FD %d max concurrent requests reached\n", fd);
 	    debug(33, 5) ("clientReadRequest: FD %d defering new request until one is done\n", fd);
@@ -3929,8 +3914,7 @@
 	    if (conn->in.offset > 0)
 		xmemmove(conn->in.buf, conn->in.buf + http->req_sz, conn->in.offset);
 	    /* add to the client request queue */
-	    for (H = &conn->chr; *H; H = &(*H)->next);
-	    *H = http;
+	    dlinkAddTail(http, &http->node, &conn->reqs);
 	    conn->nrequests++;
 	    commSetTimeout(fd, Config.Timeout.lifetime, clientLifetimeTimeout, http);
 	    if (parser_return_code < 0) {
@@ -4047,11 +4031,12 @@
 	    if (request->method == METHOD_CONNECT) {
 		/* Stop reading requests... */
 		commSetSelect(fd, COMM_SELECT_READ, NULL, NULL, 0);
-		if (conn->chr == http)
+		if (!DLINK_ISEMPTY(conn->reqs) && DLINK_HEAD(conn->reqs) == http)
 		    clientCheckFollowXForwardedFor(http);
 		else {
 		    debug(33, 1) ("WARNING: pipelined CONNECT request seen from %s\n", inet_ntoa(http->conn->peer.sin_addr));
-		    debugObj(33, 1, "Previous request:\n", conn->chr->request, (ObjPackMethod) & httpRequestPackDebug);
+		    debugObj(33, 1, "Previous request:\n", ((clientHttpRequest *) DLINK_HEAD(conn->reqs))->request,
+			(ObjPackMethod) & httpRequestPackDebug);
 		    debugObj(33, 1, "This request:\n", request, (ObjPackMethod) & httpRequestPackDebug);
 		}
 		break;
@@ -4073,8 +4058,7 @@
 		err->src_addr = conn->peer.sin_addr;
 		http = parseHttpRequestAbort(conn, "error:request-too-large");
 		/* add to the client request queue */
-		for (H = &conn->chr; *H; H = &(*H)->next);
-		*H = http;
+		dlinkAddTail(http, &http->node, &conn->reqs);
 		http->log_type = LOG_TCP_DENIED;
 		http->entry = clientCreateStoreEntry(http, METHOD_NONE, null_request_flags);
 		errorAppendEntry(http->entry, err);
@@ -4494,12 +4478,12 @@
     }
 }
 #else
-static int inline
+static int
 clientNatLookup(ConnStateData * conn)
 {
     static int reported = 0;
     if (!reported) {
-	debug(33, 1) ("NOTICE: no explicit transparent proxy support. Assuming getsockname works\n");
+	debug(33, 1) ("NOTICE: no explicit transparent proxy support enabled. Assuming getsockname() works on intercepted connections\n");
 	reported = 1;
     }
     return 0;
@@ -4543,23 +4527,6 @@
 	connState->fd = fd;
 	connState->pinning.fd = -1;
 	connState->in.buf = memAllocBuf(CLIENT_REQ_BUF_SZ, &connState->in.size);
-	if (connState->port->transparent) {
-	    if (clientNatLookup(connState) == 0) {
-		connState->transparent = 1;
-		if (Config.onoff.accel_no_pmtu_disc) {
-#if defined(IP_MTU_DISCOVER) && defined(IP_PMTUDISC_DONT)
-		    int i = IP_PMTUDISC_DONT;
-		    setsockopt(fd, SOL_IP, IP_MTU_DISCOVER, &i, sizeof i);
-#else
-		    static int reported = 0;
-		    if (!reported) {
-			debug(33, 1) ("Notice: httpd_accel_no_pmtu_disc not supported on your platform\n");
-			reported = 1;
-		    }
-#endif
-		}
-	    }
-	}
 	comm_add_close_handler(fd, connStateFree, connState);
 	if (Config.onoff.log_fqdn)
 	    fqdncache_gethostbyaddr(peer.sin_addr, FQDN_LOOKUP_IF_MISS);
@@ -4720,10 +4687,6 @@
 	connState->fd = fd;
 	connState->pinning.fd = -1;
 	connState->in.buf = memAllocBuf(CLIENT_REQ_BUF_SZ, &connState->in.size);
-	/* transparent on SSL does not really make sense, but what the heck */
-	if (connState->port->transparent)
-	    if (clientNatLookup(connState))
-		connState->transparent = 1;
 	comm_add_close_handler(fd, connStateFree, connState);
 	if (Config.onoff.log_fqdn)
 	    fqdncache_gethostbyaddr(peer.sin_addr, FQDN_LOOKUP_IF_MISS);
diff -ruN squid-2.6.STABLE5/src/defines.h squid-2.6.STABLE6/src/defines.h
--- squid-2.6.STABLE5/src/defines.h	Sat Aug 19 06:40:31 2006
+++ squid-2.6.STABLE6/src/defines.h	Wed Nov 29 08:58:52 2006
@@ -1,6 +1,6 @@
 
 /*
- * $Id: defines.h,v 1.121 2006/08/19 12:40:31 serassio Exp $
+ * $Id: defines.h,v 1.122 2006/11/29 15:58:52 adrian Exp $
  *
  *
  * SQUID Web Proxy Cache          http://www.squid-cache.org/
@@ -350,5 +350,8 @@
 /* swap_filen is 25 bits, signed */
 #define FILEMAP_MAX_SIZE (1<<24)
 #define FILEMAP_MAX (FILEMAP_MAX_SIZE - 65536)
+
+#define	DLINK_ISEMPTY(n)	( (n).head == NULL )
+#define	DLINK_HEAD(n)		( (n).head->data )
 
 #endif /* SQUID_DEFINES_H */
diff -ruN squid-2.6.STABLE5/src/errorpage.c squid-2.6.STABLE6/src/errorpage.c
--- squid-2.6.STABLE5/src/errorpage.c	Fri Aug 25 06:26:07 2006
+++ squid-2.6.STABLE6/src/errorpage.c	Mon Nov  6 19:59:27 2006
@@ -1,6 +1,6 @@
 
 /*
- * $Id: errorpage.c,v 1.188 2006/08/25 12:26:07 serassio Exp $
+ * $Id: errorpage.c,v 1.189 2006/11/07 02:59:27 hno Exp $
  *
  * DEBUG: section 4     Error Generation
  * AUTHOR: Duane Wessels
@@ -635,7 +635,7 @@
 	    char *quoted_url = rfc1738_escape_part(urlCanonical(err->request));
 	    httpHeaderPutStrf(&rep->header, HDR_LOCATION, name, quoted_url);
 	}
-	httpHeaderPutStrf(&rep->header, HDR_X_SQUID_ERROR, "%d %s\n", err->http_status, "Access Denied");
+	httpHeaderPutStrf(&rep->header, HDR_X_SQUID_ERROR, "%d %s", err->http_status, "Access Denied");
     } else {
 	MemBuf content = errorBuildContent(err);
 	httpReplySetHeaders(rep, version, err->http_status, NULL, "text/html", content.size, 0, squid_curtime);
diff -ruN squid-2.6.STABLE5/src/forward.c squid-2.6.STABLE6/src/forward.c
--- squid-2.6.STABLE5/src/forward.c	Sat Sep 30 15:10:48 2006
+++ squid-2.6.STABLE6/src/forward.c	Sat Dec  9 22:22:41 2006
@@ -1,6 +1,6 @@
 
 /*
- * $Id: forward.c,v 1.117 2006/09/30 21:10:48 hno Exp $
+ * $Id: forward.c,v 1.118 2006/12/10 05:22:41 hno Exp $
  *
  * DEBUG: section 17    Request Forwarding
  * AUTHOR: Duane Wessels
@@ -741,6 +741,10 @@
 	debug(17, 3) ("fwdReforward: No, ENTRY_FWD_HDR_WAIT isn't set\n");
 	return 0;
     }
+    if (fwdState->request->flags.pinned) {
+	debug(17, 3) ("fwdReforward: No, Connection oriented authentication is used\n");
+	return 0;
+    }
     if (fwdState->n_tries > 9)
 	return 0;
     if (fwdState->origin_tries > 1)
@@ -788,7 +792,8 @@
     fwdState->request = requestLink(r);
     fwdState->start = squid_curtime;
     storeLockObject(e);
-    EBIT_SET(e->flags, ENTRY_FWD_HDR_WAIT);
+    if (!fwdState->request->flags.pinned)
+	EBIT_SET(e->flags, ENTRY_FWD_HDR_WAIT);
     storeRegisterAbort(e, fwdAbort, fwdState);
     peerAddFwdServer(&peer, p, HIER_DIRECT);
     fwdStartComplete(peer, fwdState);
@@ -870,7 +875,8 @@
 #endif
 
     storeLockObject(e);
-    EBIT_SET(e->flags, ENTRY_FWD_HDR_WAIT);
+    if (!fwdState->request->flags.pinned)
+	EBIT_SET(e->flags, ENTRY_FWD_HDR_WAIT);
     storeRegisterAbort(e, fwdAbort, fwdState);
     peerSelect(r, e, fwdStartComplete, fwdState);
 }
diff -ruN squid-2.6.STABLE5/src/fs/Makefile.in squid-2.6.STABLE6/src/fs/Makefile.in
--- squid-2.6.STABLE5/src/fs/Makefile.in	Sun Oct 29 19:21:35 2006
+++ squid-2.6.STABLE6/src/fs/Makefile.in	Sat Nov  4 16:20:05 2006
@@ -16,7 +16,7 @@
 
 #  Makefile for storage modules in the Squid Object Cache server
 #
-#  $Id: Makefile.in,v 1.40 2006/10/30 02:21:35 hno Exp $
+#  $Id: Makefile.in,v 1.41 2006/11/04 23:20:05 hno Exp $
 #
 
 
@@ -50,7 +50,7 @@
 	$(top_srcdir)/configure.in
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/cfgaux/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/include/autoconf.h
 CONFIG_CLEAN_FILES =
 LIBRARIES = $(noinst_LIBRARIES)
diff -ruN squid-2.6.STABLE5/src/fs/aufs/store_dir_aufs.c squid-2.6.STABLE6/src/fs/aufs/store_dir_aufs.c
--- squid-2.6.STABLE5/src/fs/aufs/store_dir_aufs.c	Fri Sep 15 14:13:02 2006
+++ squid-2.6.STABLE6/src/fs/aufs/store_dir_aufs.c	Sat Nov 25 13:07:41 2006
@@ -1,6 +1,6 @@
 
 /*
- * $Id: store_dir_aufs.c,v 1.64 2006/09/15 20:13:02 serassio Exp $
+ * $Id: store_dir_aufs.c,v 1.67 2006/11/25 20:07:41 serassio Exp $
  *
  * DEBUG: section 47    Store Directory Routines
  * AUTHOR: Duane Wessels
@@ -51,7 +51,6 @@
     int curlvl1;
     int curlvl2;
     struct {
-	unsigned int need_to_validate:1;
 	unsigned int clean:1;
 	unsigned int init:1;
     } flags;
@@ -608,7 +607,6 @@
 		 * the cleanup procedure.
 		 */
 		storeRecycle(e);
-		rb->counts.objcount--;
 		rb->counts.cancelcount++;
 	    }
 	    continue;
@@ -674,9 +672,7 @@
 	     * swapfiles back to StoreEntrys, we don't know the state
 	     * of the entry using that file.  */
 	    /* We'll assume the existing entry is valid, probably because
-	     * were in a slow rebuild and the the swap file number got taken
-	     * and the validation procedure hasn't run. */
-	    assert(rb->flags.need_to_validate);
+	     * the swap file number got taken while we rebuild */
 	    rb->counts.clashcount++;
 	    continue;
 	} else if (e && !disk_entry_newer) {
@@ -759,7 +755,6 @@
 		 * the cleanup procedure.
 		 */
 		storeRecycle(e);
-		rb->counts.objcount--;
 		rb->counts.cancelcount++;
 	    }
 	    continue;
@@ -825,9 +820,7 @@
 	     * swapfiles back to StoreEntrys, we don't know the state
 	     * of the entry using that file.  */
 	    /* We'll assume the existing entry is valid, probably because
-	     * were in a slow rebuild and the the swap file number got taken
-	     * and the validation procedure hasn't run. */
-	    assert(rb->flags.need_to_validate);
+	     * the swap file number got taken while we rebuld */
 	    rb->counts.clashcount++;
 	    continue;
 	} else if (e && !disk_entry_newer) {
@@ -1064,8 +1057,6 @@
 	rb->log = fp;
 	rb->flags.clean = (unsigned int) clean;
     }
-    if (!clean)
-	rb->flags.need_to_validate = 1;
     debug(47, 1) ("Rebuilding storage in %s (%s)\n",
 	sd->path, clean ? "CLEAN" : "DIRTY");
     store_dirs_rebuilding++;
@@ -1634,7 +1625,7 @@
     debug(79, 3) ("storeAufsDirUnlinkFile: unlinking fileno %08X\n", f);
     /* storeAufsDirMapBitReset(SD, f); */
 #if USE_TRUNCATE
-    aioTruncate(storeAufsDirFullPath(SD, f, NULL), NULL, NULL);
+    aioTruncate(storeAufsDirFullPath(SD, f, NULL), 0, NULL, NULL);
 #else
     aioUnlink(storeAufsDirFullPath(SD, f, NULL), NULL, NULL);
 #endif
diff -ruN squid-2.6.STABLE5/src/fs/aufs/store_io_aufs.c squid-2.6.STABLE6/src/fs/aufs/store_io_aufs.c
--- squid-2.6.STABLE5/src/fs/aufs/store_io_aufs.c	Sat Sep  9 10:04:38 2006
+++ squid-2.6.STABLE6/src/fs/aufs/store_io_aufs.c	Sun Nov  5 14:14:31 2006
@@ -1,6 +1,6 @@
 
 /*
- * $Id: store_io_aufs.c,v 1.33 2006/09/09 16:04:38 serassio Exp $
+ * $Id: store_io_aufs.c,v 1.34 2006/11/05 21:14:31 hno Exp $
  *
  * DEBUG: section 79    Squid-side AUFS I/O functions.
  *
@@ -278,18 +278,15 @@
 void
 storeAufsRecycle(SwapDir * SD, StoreEntry * e)
 {
-    debug(79, 3) ("storeAufsUnlink: fileno %08X\n", e->swap_filen);
+    debug(79, 3) ("storeAufsRecycle: fileno %08X\n", e->swap_filen);
 
-    /* Release the object without releasing the underlying physical object */
-    storeExpireNow(e);
-    storeReleaseRequest(e);
+    /* detach from the underlying physical object */
     if (e->swap_filen > -1) {
 	storeAufsDirReplRemove(e);
 	storeAufsDirMapBitReset(SD, e->swap_filen);
 	e->swap_filen = -1;
 	e->swap_dirn = -1;
     }
-    storeRelease(e);
 }
 
 /*  === STATIC =========================================================== */
diff -ruN squid-2.6.STABLE5/src/fs/coss/store_dir_coss.c squid-2.6.STABLE6/src/fs/coss/store_dir_coss.c
--- squid-2.6.STABLE5/src/fs/coss/store_dir_coss.c	Thu Oct 26 14:00:21 2006
+++ squid-2.6.STABLE6/src/fs/coss/store_dir_coss.c	Sun Nov  5 14:14:32 2006
@@ -1,6 +1,6 @@
 
 /*
- * $Id: store_dir_coss.c,v 1.65 2006/10/26 20:00:21 serassio Exp $
+ * $Id: store_dir_coss.c,v 1.66 2006/11/05 21:14:32 hno Exp $
  *
  * DEBUG: section 47    Store COSS Directory Routines
  * AUTHOR: Eric Stern
@@ -1441,10 +1441,6 @@
 static void
 storeCoss_DeleteStoreEntry(RebuildState * rb, const cache_key * key, StoreEntry * e)
 {
-    assert(rb->counts.objcount >= 0);
-    /* XXX are these counters even correct, considering e could be a different storedir? */
-    rb->counts.objcount--;
-    assert(e->swap_dirn >= 0);
     storeRecycle(e);
 }
 
diff -ruN squid-2.6.STABLE5/src/fs/coss/store_io_coss.c squid-2.6.STABLE6/src/fs/coss/store_io_coss.c
--- squid-2.6.STABLE5/src/fs/coss/store_io_coss.c	Sat Sep 23 04:34:41 2006
+++ squid-2.6.STABLE6/src/fs/coss/store_io_coss.c	Sun Nov  5 14:14:32 2006
@@ -1,6 +1,6 @@
 
 /*
- * $Id: store_io_coss.c,v 1.34 2006/09/23 10:34:41 serassio Exp $
+ * $Id: store_io_coss.c,v 1.35 2006/11/05 21:14:32 hno Exp $
  *
  * DEBUG: section 79    Storage Manager COSS Interface
  * AUTHOR: Eric Stern
@@ -264,10 +264,6 @@
 {
     debug(79, 3) ("storeCossRecycle: %s: offset %d\n", stripePath(SD), e->swap_filen);
 
-    /* Expire the object */
-    storeExpireNow(e);
-    storeReleaseRequest(e);
-
     /* If there is a valid filen remove from COSS linked list */
     if (e->swap_filen > -1) {
 	storeCossUnlink(SD, e);
@@ -279,8 +275,6 @@
 	e->swap_filen = -1;
 	e->swap_dirn = -1;
     }
-    /* Finally make the store layer forget about this object */
-    storeRelease(e);
 }
 
 static int
diff -ruN squid-2.6.STABLE5/src/fs/diskd/store_dir_diskd.c squid-2.6.STABLE6/src/fs/diskd/store_dir_diskd.c
--- squid-2.6.STABLE5/src/fs/diskd/store_dir_diskd.c	Thu Sep 21 18:51:43 2006
+++ squid-2.6.STABLE6/src/fs/diskd/store_dir_diskd.c	Sun Nov  5 14:32:12 2006
@@ -1,6 +1,6 @@
 
 /*
- * $Id: store_dir_diskd.c,v 1.85 2006/09/22 00:51:43 adrian Exp $
+ * $Id: store_dir_diskd.c,v 1.87 2006/11/05 21:32:12 hno Exp $
  *
  * DEBUG: section 47    Store Directory Routines
  * AUTHOR: Duane Wessels
@@ -56,7 +56,6 @@
     int curlvl1;
     int curlvl2;
     struct {
-	unsigned int need_to_validate:1;
 	unsigned int clean:1;
 	unsigned int init:1;
     } flags;
@@ -799,7 +798,6 @@
 		 * the cleanup procedure.
 		 */
 		storeRecycle(e);
-		rb->counts.objcount--;
 		rb->counts.cancelcount++;
 	    }
 	    continue;
@@ -865,9 +863,7 @@
 	     * swapfiles back to StoreEntrys, we don't know the state
 	     * of the entry using that file.  */
 	    /* We'll assume the existing entry is valid, probably because
-	     * were in a slow rebuild and the the swap file number got taken
-	     * and the validation procedure hasn't run. */
-	    assert(rb->flags.need_to_validate);
+	     * the swap file number got taken while we rebuild */
 	    rb->counts.clashcount++;
 	    continue;
 	} else if (e && !disk_entry_newer) {
@@ -975,7 +971,6 @@
 		 * the cleanup procedure.
 		 */
 		storeRecycle(e);
-		rb->counts.objcount--;
 		rb->counts.cancelcount++;
 	    }
 	    continue;
@@ -1041,9 +1036,7 @@
 	     * swapfiles back to StoreEntrys, we don't know the state
 	     * of the entry using that file.  */
 	    /* We'll assume the existing entry is valid, probably because
-	     * were in a slow rebuild and the the swap file number got taken
-	     * and the validation procedure hasn't run. */
-	    assert(rb->flags.need_to_validate);
+	     * the swap file number got taken while we rebuild */
 	    rb->counts.clashcount++;
 	    continue;
 	} else if (e && !disk_entry_newer) {
@@ -1280,8 +1273,6 @@
 	rb->log = fp;
 	rb->flags.clean = (unsigned int) clean;
     }
-    if (!clean)
-	rb->flags.need_to_validate = 1;
     debug(20, 1) ("Rebuilding storage in %s (%s)\n",
 	sd->path, clean ? "CLEAN" : "DIRTY");
     store_dirs_rebuilding++;
diff -ruN squid-2.6.STABLE5/src/fs/diskd/store_io_diskd.c squid-2.6.STABLE6/src/fs/diskd/store_io_diskd.c
--- squid-2.6.STABLE5/src/fs/diskd/store_io_diskd.c	Wed Jul  5 00:52:13 2006
+++ squid-2.6.STABLE6/src/fs/diskd/store_io_diskd.c	Sun Nov  5 14:14:36 2006
@@ -1,6 +1,6 @@
 
 /*
- * $Id: store_io_diskd.c,v 1.32 2006/07/05 06:52:13 adrian Exp $
+ * $Id: store_io_diskd.c,v 1.33 2006/11/05 21:14:36 hno Exp $
  *
  * DEBUG: section 79    Squid-side DISKD I/O functions.
  * AUTHOR: Duane Wessels
@@ -304,16 +304,13 @@
 {
     debug(79, 3) ("storeDiskdUnlink: fileno %08X\n", e->swap_filen);
 
-    /* Release the object without releasing the underlying physical object */
-    storeExpireNow(e);
-    storeReleaseRequest(e);
+    /* Detach from the underlying physical object */
     if (e->swap_filen > -1) {
 	storeDiskdDirReplRemove(e);
 	storeDiskdDirMapBitReset(SD, e->swap_filen);
 	e->swap_filen = -1;
 	e->swap_dirn = -1;
     }
-    storeRelease(e);
 }
 
 
diff -ruN squid-2.6.STABLE5/src/fs/ufs/store_dir_ufs.c squid-2.6.STABLE6/src/fs/ufs/store_dir_ufs.c
--- squid-2.6.STABLE5/src/fs/ufs/store_dir_ufs.c	Wed Aug  2 20:31:13 2006
+++ squid-2.6.STABLE6/src/fs/ufs/store_dir_ufs.c	Sun Nov  5 14:32:13 2006
@@ -1,6 +1,6 @@
 
 /*
- * $Id: store_dir_ufs.c,v 1.61 2006/08/03 02:31:13 adrian Exp $
+ * $Id: store_dir_ufs.c,v 1.63 2006/11/05 21:32:13 hno Exp $
  *
  * DEBUG: section 47    Store Directory Routines
  * AUTHOR: Duane Wessels
@@ -50,7 +50,6 @@
     int curlvl1;
     int curlvl2;
     struct {
-	unsigned int need_to_validate:1;
 	unsigned int clean:1;
 	unsigned int init:1;
     } flags;
@@ -613,11 +612,6 @@
 		 * the cleanup procedure.
 		 */
 		storeRecycle(e);
-		/*
-		 * XXX considering we might've canceled an object from another store;
-		 * XXX what should happen with these stats?
-		 */
-		rb->counts.objcount--;
 		rb->counts.cancelcount++;
 	    }
 	    continue;
@@ -683,9 +677,7 @@
 	     * swapfiles back to StoreEntrys, we don't know the state
 	     * of the entry using that file.  */
 	    /* We'll assume the existing entry is valid, probably because
-	     * were in a slow rebuild and the the swap file number got taken
-	     * and the validation procedure hasn't run. */
-	    assert(rb->flags.need_to_validate);
+	     * the swap file number got taken while we rebuild */
 	    rb->counts.clashcount++;
 	    continue;
 	} else if (e && !disk_entry_newer) {
@@ -768,8 +760,6 @@
 		 * the cleanup procedure.
 		 */
 		storeRecycle(e);
-		/* XXX are these counters valid since e could be from another swapfs? */
-		rb->counts.objcount--;
 		rb->counts.cancelcount++;
 	    }
 	    continue;
@@ -835,9 +825,7 @@
 	     * swapfiles back to StoreEntrys, we don't know the state
 	     * of the entry using that file.  */
 	    /* We'll assume the existing entry is valid, probably because
-	     * were in a slow rebuild and the the swap file number got taken
-	     * and the validation procedure hasn't run. */
-	    assert(rb->flags.need_to_validate);
+	     * the swap file number got taken while we rebuild */
 	    rb->counts.clashcount++;
 	    continue;
 	} else if (e && !disk_entry_newer) {
@@ -1073,8 +1061,6 @@
 	rb->log = fp;
 	rb->flags.clean = (unsigned int) clean;
     }
-    if (!clean)
-	rb->flags.need_to_validate = 1;
     debug(47, 1) ("Rebuilding storage in %s (%s)\n",
 	sd->path, clean ? "CLEAN" : "DIRTY");
     store_dirs_rebuilding++;
diff -ruN squid-2.6.STABLE5/src/fs/ufs/store_io_ufs.c squid-2.6.STABLE6/src/fs/ufs/store_io_ufs.c
--- squid-2.6.STABLE5/src/fs/ufs/store_io_ufs.c	Wed Jul  5 00:52:14 2006
+++ squid-2.6.STABLE6/src/fs/ufs/store_io_ufs.c	Sun Nov  5 14:14:37 2006
@@ -1,6 +1,6 @@
 
 /*
- * $Id: store_io_ufs.c,v 1.15 2006/07/05 06:52:14 adrian Exp $
+ * $Id: store_io_ufs.c,v 1.16 2006/11/05 21:14:37 hno Exp $
  *
  * DEBUG: section 79    Storage Manager UFS Interface
  * AUTHOR: Duane Wessels
@@ -200,16 +200,13 @@
 {
     debug(79, 3) ("storeUfsUnlink: fileno %08X\n", e->swap_filen);
 
-    /* Release the object without releasing the underlying physical object */
-    storeExpireNow(e);
-    storeReleaseRequest(e);
+    /* Detach from underlying physical object */
     if (e->swap_filen > -1) {
 	storeUfsDirReplRemove(e);
 	storeUfsDirMapBitReset(SD, e->swap_filen);
 	e->swap_filen = -1;
 	e->swap_dirn = -1;
     }
-    storeRelease(e);
 }
 
 /*  === STATIC =========================================================== */
diff -ruN squid-2.6.STABLE5/src/htcp.c squid-2.6.STABLE6/src/htcp.c
--- squid-2.6.STABLE5/src/htcp.c	Sat Jul 29 11:35:31 2006
+++ squid-2.6.STABLE6/src/htcp.c	Sat Nov  4 07:14:07 2006
@@ -1,6 +1,6 @@
 
 /*
- * $Id: htcp.c,v 1.53 2006/07/29 17:35:31 serassio Exp $
+ * $Id: htcp.c,v 1.54 2006/11/04 14:14:07 hno Exp $
  *
  * DEBUG: section 31    Hypertext Caching Protocol
  * AUTHOR: Duane Wesssels
@@ -242,7 +242,8 @@
     assert(2 == sizeof(u_short));
     auth.length = htons(2);
     copy_sz += 2;
-    assert(buflen >= copy_sz);
+    if (buflen < copy_sz)
+	return -1;
     xmemcpy(buf, &auth, copy_sz);
     return copy_sz;
 }
diff -ruN squid-2.6.STABLE5/src/neighbors.c squid-2.6.STABLE6/src/neighbors.c
--- squid-2.6.STABLE5/src/neighbors.c	Tue Jul 25 12:11:44 2006
+++ squid-2.6.STABLE6/src/neighbors.c	Sat Dec  9 22:18:47 2006
@@ -1,6 +1,6 @@
 
 /*
- * $Id: neighbors.c,v 1.310 2006/07/25 18:11:44 hno Exp $
+ * $Id: neighbors.c,v 1.312 2006/12/10 05:18:47 hno Exp $
  *
  * DEBUG: section 15    Neighbor Routines
  * AUTHOR: Harvest Derived
@@ -265,8 +265,12 @@
 	    continue;
 	if (!peerHTTPOkay(p, request))
 	    continue;
-	if (q && q->rr_count < p->rr_count)
+	if (p->weight == 1) {
+	    if (q && q->rr_count < p->rr_count)
+		continue;
+	} else if (p->weight == 0 || (q && q->rr_count < (p->rr_count / p->weight))) {
 	    continue;
+	}
 	q = p;
     }
     if (q)
@@ -488,11 +492,6 @@
 
 	p->stats.pings_sent++;
 	if (p->type == PEER_MULTICAST) {
-	    /*
-	     * set a bogus last_reply time so neighborUp() never
-	     * says a multicast peer is dead.
-	     */
-	    p->stats.last_reply = squid_curtime;
 	    mcast_exprep += p->mcast.n_replies_expected;
 	    mcast_timeout += (p->stats.rtt * p->mcast.n_replies_expected);
 	} else if (neighborUp(p)) {
@@ -514,7 +513,11 @@
 	    }
 	}
 	p->stats.last_query = squid_curtime;
-	if (p->stats.probe_start == 0)
+	/*
+	 * keep probe_start == 0 for a multicast peer,
+	 * so neighborUp() never says this peer is dead.
+	 */
+	if ((p->type != PEER_MULTICAST) && (p->stats.probe_start == 0))
 	    p->stats.probe_start = squid_curtime;
     }
     if ((first_ping = first_ping->next) == NULL)
@@ -938,16 +941,16 @@
 	return 0;
     if (p->monitor.state != PEER_ALIVE)
 	return 0;
-    if (p->options.no_query)
-	return 1;
-    if (p->stats.probe_start != 0 &&
-	squid_curtime - p->stats.probe_start > Config.Timeout.deadPeer)
-	return 0;
     /*
      * The peer can not be UP if we don't have any IP addresses
      * for it. 
      */
     if (0 == p->n_addresses)
+	return 0;
+    if (p->options.no_query)
+	return 1;
+    if (p->stats.probe_start != 0 &&
+	squid_curtime - p->stats.probe_start > Config.Timeout.deadPeer)
 	return 0;
     return 1;
 }
diff -ruN squid-2.6.STABLE5/src/peer_select.c squid-2.6.STABLE6/src/peer_select.c
--- squid-2.6.STABLE5/src/peer_select.c	Tue Jun 27 03:27:48 2006
+++ squid-2.6.STABLE6/src/peer_select.c	Sat Dec  9 22:24:52 2006
@@ -1,6 +1,6 @@
 
 /*
- * $Id: peer_select.c,v 1.130 2006/06/27 09:27:48 hno Exp $
+ * $Id: peer_select.c,v 1.131 2006/12/10 05:24:52 hno Exp $
  *
  * DEBUG: section 44    Peer Selection Algorithm
  * AUTHOR: Duane Wessels
@@ -618,7 +618,7 @@
 peerHandleHtcpReply(peer * p, peer_t type, htcpReplyData * htcp, void *data)
 {
     ps_state *psstate = data;
-    debug(44, 3) ("peerHandleIcpReply: %s %s\n",
+    debug(44, 3) ("peerHandleHtcpReply: %s %s\n",
 	htcp->hit ? "HIT" : "MISS",
 	storeUrl(psstate->entry));
     psstate->ping.n_recv++;
diff -ruN squid-2.6.STABLE5/src/repl/Makefile.in squid-2.6.STABLE6/src/repl/Makefile.in
--- squid-2.6.STABLE5/src/repl/Makefile.in	Sun Oct 29 19:21:36 2006
+++ squid-2.6.STABLE6/src/repl/Makefile.in	Sat Nov  4 16:20:05 2006
@@ -16,7 +16,7 @@
 
 #  Makefile for storage modules in the Squid Object Cache server
 #
-#  $Id: Makefile.in,v 1.37 2006/10/30 02:21:36 hno Exp $
+#  $Id: Makefile.in,v 1.38 2006/11/04 23:20:05 hno Exp $
 #
 
 srcdir = @srcdir@
@@ -48,7 +48,7 @@
 	$(top_srcdir)/configure.in
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/cfgaux/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/include/autoconf.h
 CONFIG_CLEAN_FILES =
 LIBRARIES = $(noinst_LIBRARIES)
diff -ruN squid-2.6.STABLE5/src/snmp_agent.c squid-2.6.STABLE6/src/snmp_agent.c
--- squid-2.6.STABLE5/src/snmp_agent.c	Thu Sep 21 20:49:24 2006
+++ squid-2.6.STABLE6/src/snmp_agent.c	Thu Nov  9 09:35:07 2006
@@ -1,6 +1,6 @@
 
 /*
- * $Id: snmp_agent.c,v 1.88 2006/09/22 02:49:24 hno Exp $
+ * $Id: snmp_agent.c,v 1.89 2006/11/09 16:35:07 hno Exp $
  *
  * DEBUG: section 49     SNMP Interface
  * AUTHOR: Kostas Anagnostakis
@@ -498,7 +498,7 @@
 	    break;
 	case PERF_MEDIAN_HTTP_NH:
 	    x = statHistDeltaMedian(&l->client_http.nh_svc_time,
-		&f->client_http.nm_svc_time);
+		&f->client_http.nh_svc_time);
 	    break;
 	default:
 	    *ErrP = SNMP_ERR_NOSUCHNAME;
diff -ruN squid-2.6.STABLE5/src/snmp_core.c squid-2.6.STABLE6/src/snmp_core.c
--- squid-2.6.STABLE5/src/snmp_core.c	Thu Sep 21 20:49:24 2006
+++ squid-2.6.STABLE6/src/snmp_core.c	Tue Nov 28 16:16:48 2006
@@ -1,6 +1,6 @@
 
 /*
- * $Id: snmp_core.c,v 1.62 2006/09/22 02:49:24 hno Exp $
+ * $Id: snmp_core.c,v 1.63 2006/11/28 23:16:48 hno Exp $
  *
  * DEBUG: section 49    SNMP support
  * AUTHOR: Glenn Chisholm
@@ -1094,16 +1094,17 @@
 void
 snmpDebugOid(int lvl, oid * Name, snint Len)
 {
-    char mbuf[16], objid[1024];
+    char mbuf[16];
     int x;
-    objid[0] = '\0';
+    String objid = StringNull;
 
     for (x = 0; x < Len; x++) {
 	snprintf(mbuf, sizeof(mbuf), ".%u", (unsigned int) Name[x]);
-	strncat(objid, mbuf, sizeof(objid));
+	strCat(objid, mbuf);
     }
 
-    debug(49, lvl) ("   oid = %s\n", objid);
+    debug(49, lvl) ("   oid = %s\n", strBuf(objid));
+    stringClean(&objid);
 }
 
 static void
diff -ruN squid-2.6.STABLE5/src/store.c squid-2.6.STABLE6/src/store.c
--- squid-2.6.STABLE5/src/store.c	Mon Oct  9 07:18:24 2006
+++ squid-2.6.STABLE6/src/store.c	Sat Dec  9 22:55:17 2006
@@ -1,6 +1,6 @@
 
 /*
- * $Id: store.c,v 1.568 2006/10/09 13:18:24 hno Exp $
+ * $Id: store.c,v 1.569 2006/12/10 05:55:17 hno Exp $
  *
  * DEBUG: section 20    Storage Manager
  * AUTHOR: Harvest Derived
@@ -654,7 +654,10 @@
 	    break;
 	assert(p <= (buf + size));
     }
-    if (p == state->buf && size == state->buf_size) {
+    state->buf_offset = l;
+    if (l && p != state->buf)
+	memmove(state->buf, p, l);
+    if (state->buf_offset == state->buf_size) {
 	/* Oops.. the buffer size is not sufficient. Grow */
 	if (state->buf_size < 65536) {
 	    debug(11, 2) ("storeAddVaryReadOld: Increasing entry buffer size to %d\n", (int) state->buf_size * 2);
@@ -666,9 +669,6 @@
 	    return;
 	}
     }
-    state->buf_offset = l;
-    if (l)
-	memmove(state->buf, p, l);
     debug(11, 3) ("storeAddVaryReadOld: %p seen_offset=%" PRINTF_OFF_T " buf_offset=%d\n", data, state->seen_offset, (int) state->buf_offset);
     storeBufferFlush(state->e);
     storeClientCopy(state->sc, state->oe,
diff -ruN squid-2.6.STABLE5/src/store_io.c squid-2.6.STABLE6/src/store_io.c
--- squid-2.6.STABLE5/src/store_io.c	Wed Jul  5 00:52:12 2006
+++ squid-2.6.STABLE6/src/store_io.c	Sun Nov  5 14:14:31 2006
@@ -122,9 +122,20 @@
 void
 storeRecycle(StoreEntry * e)
 {
-    SwapDir *SD = INDEXSD(e->swap_dirn);
-    SD->obj.recycle(SD, e);
+    if (e->swap_dirn >= 0 && !storeEntryLocked(e)) {
+	SwapDir *SD = INDEXSD(e->swap_dirn);
+
+	/* Expire the object */
+	storeExpireNow(e);
+	storeReleaseRequest(e);
+
+	/* Make the cache_dir forget about it */
+	SD->obj.recycle(SD, e);
+    }
+    /* Finally make the store layer forget about this object */
+    storeRelease(e);
 }
+
 
 squid_off_t
 storeOffset(storeIOState * sio)
diff -ruN squid-2.6.STABLE5/src/structs.h squid-2.6.STABLE6/src/structs.h
--- squid-2.6.STABLE5/src/structs.h	Mon Oct 23 05:22:21 2006
+++ squid-2.6.STABLE6/src/structs.h	Wed Nov 29 08:58:52 2006
@@ -1,6 +1,6 @@
 
 /*
- * $Id: structs.h,v 1.504 2006/10/23 11:22:21 hno Exp $
+ * $Id: structs.h,v 1.506 2006/11/29 15:58:52 adrian Exp $
  *
  *
  * SQUID Web Proxy Cache          http://www.squid-cache.org/
@@ -1182,6 +1182,7 @@
 
 struct _clientHttpRequest {
     ConnStateData *conn;
+    dlink_node node;
     request_t *request;		/* Parsed URL ... */
     request_t *orig_request;	/* Parsed URL ... */
     store_client *sc;		/* The store_client we're using */
@@ -1210,7 +1211,6 @@
     http_version_t http_ver;
     int redirect_state;
     aclCheck_t *acl_checklist;	/* need ptr back so we can unreg if needed */
-    clientHttpRequest *next;
     AccessLogEntry al;
     struct {
 	unsigned int accel:1;
@@ -1226,6 +1226,12 @@
     } redirect;
     dlink_node active;
     squid_off_t maxBodySize;
+    /*
+     * This can be changed into a pointer later on when the memory allocator
+     * has been taught the difference between buffers to zero and buffers not to
+     * zero.. [ahc]
+     */
+    char readbuf[CLIENT_SOCK_SZ];
 };
 
 struct _ConnStateData {
@@ -1248,7 +1254,7 @@
     /* note this is ONLY connection based because NTLM is against HTTP spec */
     /* the user details for connection based authentication */
     auth_user_request_t *auth_user_request;
-    clientHttpRequest *chr;
+    dlink_list reqs;
     struct sockaddr_in peer;
     struct sockaddr_in me;
     struct in_addr log_addr;
diff -ruN squid-2.6.STABLE5/src/tools.c squid-2.6.STABLE6/src/tools.c
--- squid-2.6.STABLE5/src/tools.c	Wed Nov  1 13:58:52 2006
+++ squid-2.6.STABLE6/src/tools.c	Sat Nov  4 10:09:45 2006
@@ -1,6 +1,6 @@
 
 /*
- * $Id: tools.c,v 1.249 2006/11/01 20:58:52 wessels Exp $
+ * $Id: tools.c,v 1.250 2006/11/04 17:09:45 hno Exp $
  *
  * DEBUG: section 21    Misc Functions
  * AUTHOR: Harvest Derived
@@ -1178,7 +1178,7 @@
 	    if (Config.appendDomain && !strchr(lt, '.')) {
 		/* I know it's ugly, but it's only at reconfig */
 		strncpy(buf2, lt, 512);
-		strncat(buf2, Config.appendDomain, 512 - strlen(lt));
+		strncat(buf2, Config.appendDomain, 512 - strlen(lt) - 1);
 		host = buf2;
 	    } else {
 		host = lt;
diff -ruN squid-2.6.STABLE5/src/wccp2.c squid-2.6.STABLE6/src/wccp2.c
--- squid-2.6.STABLE5/src/wccp2.c	Wed Oct 25 18:50:04 2006
+++ squid-2.6.STABLE6/src/wccp2.c	Thu Dec  7 15:32:22 2006
@@ -1,6 +1,6 @@
 
 /*
- * $Id: wccp2.c,v 1.28 2006/10/26 00:50:04 swilton Exp $
+ * $Id: wccp2.c,v 1.30 2006/12/07 22:32:22 adrian Exp $
  *
  * DEBUG: section 80    WCCP Support
  * AUTHOR: Steven WIlton
@@ -772,6 +772,12 @@
 	"WCCPv2 Socket");
     if (theWccp2Connection < 0)
 	fatal("Cannot open WCCP Port");
+#if defined(IP_MTU_DISCOVER) && defined(IP_PMTUDISC_DONT)
+    {
+	int i = IP_PMTUDISC_DONT;
+	setsockopt(theWccp2Connection, SOL_IP, IP_MTU_DISCOVER, &i, sizeof i);
+    }
+#endif
     commSetSelect(theWccp2Connection,
 	COMM_SELECT_READ,
 	wccp2HandleUdp,
@@ -1472,6 +1478,10 @@
 		value = 0;
 		for (valuecounter = 0; valuecounter < 64; valuecounter++) {
 		    value_element = (struct wccp2_value_element_t *) &wccp_packet[offset];
+		    /* Update the value according the the "correct" formula */
+		    for (; (value & 0x1741) != value; value++) {
+			assert(value <= 0x1741);
+		    }
 
 		    if ((service_flags & WCCP2_SERVICE_SRC_IP_HASH) || (service_flags & WCCP2_SERVICE_SRC_IP_ALT_HASH)) {
 			value_element->source_ip_value = htonl(value);
@@ -1498,11 +1508,8 @@
 		    }
 		    value_element->cache_ip = cache_list_ptr->cache_ip;
 		    offset += sizeof(struct wccp2_value_element_t);
+		    value++;
 
-		    /* Update the value according the the "correct" formula */
-		    for (value++; (value & 0x1741) != value; value++) {
-			assert(value <= 0x1741);
-		    }
 
 		    /* Assign the next value to the next cache */
 		    if ((cache_list_ptr->next) && (cache_list_ptr->next->next))
diff -ruN squid-2.6.STABLE5/tools/Makefile.in squid-2.6.STABLE6/tools/Makefile.in
--- squid-2.6.STABLE5/tools/Makefile.in	Sun Oct 29 19:21:36 2006
+++ squid-2.6.STABLE6/tools/Makefile.in	Sat Nov  4 16:20:05 2006
@@ -17,7 +17,7 @@
 #
 #  Makefile for the Squid Object Cache server
 #
-#  $Id: Makefile.in,v 1.11 2006/10/30 02:21:36 hno Exp $
+#  $Id: Makefile.in,v 1.12 2006/11/04 23:20:05 hno Exp $
 #
 #  Uncomment and customize the following to suit your needs:
 #
@@ -54,7 +54,7 @@
 	$(top_srcdir)/configure.in
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/cfgaux/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/include/autoconf.h
 CONFIG_CLEAN_FILES =
 @NEED_COSSDUMP_TRUE@am__EXEEXT_1 = cossdump$(EXEEXT)
