diff -ruN squid-2.5.STABLE5/CONTRIBUTORS squid-2.5.STABLE6/CONTRIBUTORS
--- squid-2.5.STABLE5/CONTRIBUTORS	Wed Feb 18 06:35:30 2004
+++ squid-2.5.STABLE6/CONTRIBUTORS	Sat Jun  5 13:32:49 2004
@@ -86,7 +86,7 @@
 	Miquel van Smoorenburg <miquels@cistron.nl>
 	Brian <hiryuu@envisiongames.net>
 	Ian Castle <ian.castle@coldcomfortfarm.net>
-	Brad Smitch <brad@comstyle.com>
+	Brad Smith <brad@comstyle.com>
 	Jerry Murdock <jmurdock@itraktech.com>
 	Glen Gibb <grg@ridley.unimelb.edu.au>
 
diff -ruN squid-2.5.STABLE5/ChangeLog squid-2.5.STABLE6/ChangeLog
--- squid-2.5.STABLE5/ChangeLog	Sun Feb 29 15:24:27 2004
+++ squid-2.5.STABLE6/ChangeLog	Thu Jul  8 17:21:40 2004
@@ -1,3 +1,50 @@
+Changes to squid-2.5.STABLE6 (9 Jul 2004)
+
+	- Bug #937: NTLM assertion error "srv->flags.reserved"
+	- Bug #935: squid_ldap_auth can be confused by the use of reserved
+	  characters
+	- Helper queue warnings inprecice on the number of helpers required
+	- squid_ldap_auth TLS mode works correctly again
+	- Bug #940, #305: pkg-config support for finding correct OpenSSL
+	  compile flags
+	- Bug #426: "Vary: *" is ignored
+	- 100% CPU usage on Linux-2.2
+	- Version number should not include -CVS if autoconf is run
+	- Bug #947: deny_info redirection with requested URL escaped wrongly
+	- Bug #495: CONNECT timeout should produce a 504 or 503
+	- Bug #956: cache_swap_log documentation referred to swap.state by
+	  it's old swap.log name
+	- ntlm/auth_ntlm.c(683): warning #187: use of "=" where "==" may
+	  have been intended
+	- Bug #962: rfc1035NameUnpack: Assertion (*off) < sz failed
+	- Bug #954: Segment violation when using a blank user name in digest
+	  authentication
+	- Bug #943: assertion failed: errorpage.c:292: "mem->inmem_hi == 0"
+	- Spelling corrections in configure and squid.conf.default
+	- The meaning of ERR in digest helper protocol clarified in the
+	  squid.conf documentation
+	- Bug #950: Spelling error in Turkish ERR_DNS_FAIL
+	- Bug #616: Negative cached 404 replies with VARY header never matched
+	- Bug #968: range_offset_limit -1 KB rejected as invalid syntax
+	  due to a shortcoming in the fix to bug #817
+	- Bug #570: Very large cache_mem values reported wrongly in cache.log
+	- Bug #676: store_dir_select_algorithm least-load doesn't work for
+	  ufs cache_dir type
+	- Bug #946: cacheCurrentUnlinkRequests should be a counter, not gauge
+	- Bug #948: Show client ip in cache.log debug output
+	- Bug #960: compilation issue on OpenBSD/m88k
+	- Bug #969: FTP directory listing HTML DOCTYPE misread by some tools
+	- Bug #991: dns_servers should default to localhost if no resolv.conf
+	- Bug #717: msnt_auth documentation update
+	- Bug #753: Segfault in memBufVPrintf on certain architectures
+	  requiring va_copy
+	- Bug #941: Negative size in access.log on long running CONNECT
+	  requests
+	- Bug #972: Segmentation fault after "Likely proxy abuse detected"
+	- Bug #981: sasl_auth updated to work with SALS2
+	- Overflow bug in Squid's ntlm_auth helper used for transparent NTLM
+	  authentication to a NT domain without using Samba.
+
 Changes to squid-2.5.STABLE5 (1 Mar 2004):
 
 	- cache.log message on "squid -k reconfigure" was slightly confusing,
@@ -11,7 +58,7 @@
 	- auth_param documentation clarifications and added default realm
 	  values making only the helper program a required attribute
 	- Bug #795: German ERR_DNS_FAIL correction
-	- Bug #803: Lithuantian error messages update
+	- Bug #803: Lithuanian error messages update
 	- Bug #806: Segfault if failing to load error page
 	- Bug #812: Mozilla/Netscape plugins mime type defined (.xpi)
 	- Bug #817: maximum_object_size too large causes squid not to cache
diff -ruN squid-2.5.STABLE5/Makefile.in squid-2.5.STABLE6/Makefile.in
--- squid-2.5.STABLE5/Makefile.in	Tue Feb 11 19:02:00 2003
+++ squid-2.5.STABLE6/Makefile.in	Tue Jun  8 05:37:09 2004
@@ -14,7 +14,7 @@
 @SET_MAKE@
 
 #
-# $Id: Makefile.in,v 1.6.2.18 2003/02/12 02:02:00 hno Exp $
+# $Id: Makefile.in,v 1.6.2.20 2004/06/08 11:37:09 hno Exp $
 #
 
 SHELL = @SHELL@
@@ -83,6 +83,7 @@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 LIBDLMALLOC = @LIBDLMALLOC@
 LIBREGEX = @LIBREGEX@
+LIBSASL = @LIBSASL@
 LIB_MALLOC = @LIB_MALLOC@
 LN = @LN@
 LN_S = @LN_S@
@@ -93,6 +94,7 @@
 OBJEXT = @OBJEXT@
 PACKAGE = @PACKAGE@
 PERL = @PERL@
+PKGCONFIG = @PKGCONFIG@
 RANLIB = @RANLIB@
 REGEXLIB = @REGEXLIB@
 REPL_LIBS = @REPL_LIBS@
diff -ruN squid-2.5.STABLE5/RELEASENOTES.html squid-2.5.STABLE6/RELEASENOTES.html
--- squid-2.5.STABLE5/RELEASENOTES.html	Sun Feb 29 15:30:32 2004
+++ squid-2.5.STABLE6/RELEASENOTES.html	Thu Jul  8 17:44:48 2004
@@ -1,13 +1,13 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
 <HTML>
 <HEAD>
- <META NAME="GENERATOR" CONTENT="LinuxDoc-Tools 0.9.20">
+ <META NAME="GENERATOR" CONTENT="LinuxDoc-Tools 0.9.16">
  <TITLE>Squid 2.5 release notes</TITLE>
 </HEAD>
 <BODY>
 <H1>Squid 2.5 release notes</H1>
 
-<H2>Squid Developers</H2>$Id: release-2.5.html,v 1.1.2.30 2004/02/29 22:24:27 hno Exp $
+<H2>Squid Developers</H2>$Id: release-2.5.html,v 1.1.2.32 2004/07/08 23:31:28 hno Exp $
 <HR>
 <EM>This document contains the release notes for version 2.5 of Squid.
 Squid is a WWW Cache application developed by the National Laboratory
@@ -150,8 +150,6 @@
 <DT><B>Bug 
 <A HREF="http://www.squid-cache.org/bugs/show_bug.cgi?id=692">#692</A></B><DD><P>tcp_outgoing_address using an ident ACL does not work</P>
 <DT><B>Bug 
-<A HREF="http://www.squid-cache.org/bugs/show_bug.cgi?id=616">#616</A></B><DD><P>Negative cached 404 replies with VARY header never matches</P>
-<DT><B>Bug 
 <A HREF="http://www.squid-cache.org/bugs/show_bug.cgi?id=581">#581</A></B><DD><P>acl max_user_ip and multiple authentication schemes</P>
 <DT><B>Bug 
 <A HREF="http://www.squid-cache.org/bugs/show_bug.cgi?id=528">#528</A></B><DD><P>miss_access fails on "slow" acl types such as dst.</P>
@@ -164,8 +162,6 @@
 <DT><B>Bug 
 <A HREF="http://www.squid-cache.org/bugs/show_bug.cgi?id=457">#457</A></B><DD><P>does not handle swap.state corruption properly</P>
 <DT><B>Bug 
-<A HREF="http://www.squid-cache.org/bugs/show_bug.cgi?id=426">#426</A></B><DD><P>Vary: * does not work</P>
-<DT><B>Bug 
 <A HREF="http://www.squid-cache.org/bugs/show_bug.cgi?id=410">#410</A></B><DD><P>unstable if runs out of disk space</P>
 <DT><B>Bug 
 <A HREF="http://www.squid-cache.org/bugs/show_bug.cgi?id=355">#355</A></B><DD><P>diskd may appear slow on low loads</P>
@@ -276,6 +272,22 @@
 <LI>url_regex enhanced to allow matching of %00</LI>
 <LI>a large number of minor and cosmetic bugfixes. See the list of 
 <A HREF="http://www.squid-cache.org/Versions/v2/2.5/bugs/#STABLE4">squid-2.5.STABLE4 patches</A> and the 
+<A HREF="ChangeLog">ChangeLog</A> file for details.</LI>
+</UL>
+</P>
+
+<H2><A NAME="s8">8. Key changes squid-2.5.STABLE5 to 2.5.STABLE6:</A></H2>
+
+<P>
+<UL>
+<LI>Several "Assertion error" bugs fixed</LI>
+<LI>Several "Segmentation fault" bugs fixes</LI>
+<LI>Corrects a security issue in the old ntlm_auth NTLM helper
+used in transparent NTLM authentication to a NT domain without
+using samba.</LI>
+<LI>Processing of Vary: * and Vary on error messages corrected</LI>
+<LI>a large number of minor and cosmetic bugfixes. See the list of 
+<A HREF="http://www.squid-cache.org/Versions/v2/2.5/bugs/#STABLE5">squid-2.5.STABLE5 patches</A> and the 
 <A HREF="ChangeLog">ChangeLog</A> file for details.</LI>
 </UL>
 </P>
diff -ruN squid-2.5.STABLE5/acconfig.h squid-2.5.STABLE6/acconfig.h
--- squid-2.5.STABLE5/acconfig.h	Mon Jul  1 02:55:11 2002
+++ squid-2.5.STABLE6/acconfig.h	Tue Jun  1 02:34:19 2004
@@ -23,7 +23,7 @@
 #ifndef __CONFIGURE_H__
 #define __CONFIGURE_H__
 @TOP@
-/* $Id: acconfig.h,v 1.61.2.3 2002/07/01 08:55:11 hno Exp $ */
+/* $Id: acconfig.h,v 1.61.2.4 2004/06/01 08:34:19 hno Exp $ */
 
 /*
  * configure command line used to configure Squid
@@ -281,6 +281,15 @@
  * we check for the existance of struct mallinfo
  */
 #undef HAVE_STRUCT_MALLINFO
+
+/*
+ * Some systems dont have va_copy */
+#undef HAVE_VA_COPY
+
+/*
+ * Some systems support __va_copy */
+#undef HAVE___VA_COPY
+
 
 /*
  * Do we want to use truncate(2) or unlink(2)?
diff -ruN squid-2.5.STABLE5/configure squid-2.5.STABLE6/configure
--- squid-2.5.STABLE5/configure	Sun Feb 29 15:30:21 2004
+++ squid-2.5.STABLE6/configure	Thu Jul  8 17:44:39 2004
@@ -52,7 +52,7 @@
                           for details on how to build your custom store module"
 ac_help="$ac_help
   --enable-heap-replacement
-                          Backwards compability option. Please use the
+                          Backwards compatibility option. Please use the
 			  new --enable-removal-policies directive instead."
 ac_help="$ac_help
   --enable-removal-policies=\"list of policies\"
@@ -175,7 +175,7 @@
                           module"
 ac_help="$ac_help
   --enable-auth-modules=\"list of helpers\"
-                          Backwards compability alias for
+                          Backwards compatibility alias for
                           --enable-basic-auth-helpers"
 ac_help="$ac_help
   --enable-basic-auth-helpers=\"list of helpers\"
@@ -1000,7 +1000,7 @@
 
 # Define the identity of the package.
 PACKAGE=squid
-VERSION=2.5.STABLE5
+VERSION=2.5.STABLE6
 cat >> confdefs.h <<EOF
 #define PACKAGE "$PACKAGE"
 EOF
@@ -1051,7 +1051,7 @@
 
   
 
-# From configure.in Revision: 1.251.2.51 
+# From configure.in Revision: 1.251.2.59 
 echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6
 echo "configure:1057: checking whether to enable maintainer-specific portions of Makefiles" >&5
     # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given.
@@ -1510,13 +1510,50 @@
 REGEXLIB=''	# -lregex
 LIBREGEX=''	# libregex.a
 
+# Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:1517: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_PKGCONFIG'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  case "$PKGCONFIG" in
+  /*)
+  ac_cv_path_PKGCONFIG="$PKGCONFIG" # Let the user override the test with a path.
+  ;;
+  ?:/*)			 
+  ac_cv_path_PKGCONFIG="$PKGCONFIG" # Let the user override the test with a dos path.
+  ;;
+  *)
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do 
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_path_PKGCONFIG="$ac_dir/$ac_word"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+  test -z "$ac_cv_path_PKGCONFIG" && ac_cv_path_PKGCONFIG="/usr/bin/false"
+  ;;
+esac
+fi
+PKGCONFIG="$ac_cv_path_PKGCONFIG"
+if test -n "$PKGCONFIG"; then
+  echo "$ac_t""$PKGCONFIG" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+
 echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6
-echo "configure:1515: checking for Cygwin environment" >&5
+echo "configure:1552: checking for Cygwin environment" >&5
 if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1520 "configure"
+#line 1557 "configure"
 #include "confdefs.h"
 
 int main() {
@@ -1527,7 +1564,7 @@
 return __CYGWIN__;
 ; return 0; }
 EOF
-if { (eval echo configure:1531: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1568: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_cygwin=yes
 else
@@ -1544,19 +1581,19 @@
 CYGWIN=
 test "$ac_cv_cygwin" = yes && CYGWIN=yes
 echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6
-echo "configure:1548: checking for mingw32 environment" >&5
+echo "configure:1585: checking for mingw32 environment" >&5
 if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1553 "configure"
+#line 1590 "configure"
 #include "confdefs.h"
 
 int main() {
 return __MINGW32__;
 ; return 0; }
 EOF
-if { (eval echo configure:1560: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1597: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_mingw32=yes
 else
@@ -1575,7 +1612,7 @@
 
 
 echo $ac_n "checking for executable suffix""... $ac_c" 1>&6
-echo "configure:1579: checking for executable suffix" >&5
+echo "configure:1616: checking for executable suffix" >&5
 if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1585,7 +1622,7 @@
   rm -f conftest*
   echo 'int main () { return 0; }' > conftest.$ac_ext
   ac_cv_exeext=
-  if { (eval echo configure:1589: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
+  if { (eval echo configure:1626: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
     for file in conftest.*; do
       case $file in
       *.c | *.C | *.o | *.obj | *.ilk | *.pdb) ;;
@@ -1606,13 +1643,13 @@
 ac_exeext=$EXEEXT
 
 echo $ac_n "checking for object suffix""... $ac_c" 1>&6
-echo "configure:1610: checking for object suffix" >&5
+echo "configure:1647: checking for object suffix" >&5
 if eval "test \"`echo '$''{'ac_cv_objext'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   rm -f conftest*
 echo 'int i = 1;' > conftest.$ac_ext
-if { (eval echo configure:1616: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1653: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   for ac_file in conftest.*; do
     case $ac_file in
     *.c) ;;
@@ -1702,6 +1739,8 @@
     	    # sunos has too many warnings for this to be useful
 	    # motorola too
     	    ;;
+	*m88k*-openbsd*)
+	    ;;
 	*m88k*)
 	    # Motorola cc/ld does not like -02 but is ok on -O
 	    CFLAGS=`echo $CFLAGS | sed -e 's/-O0-9/-O/'`
@@ -2292,6 +2331,9 @@
   ENABLE_SSL_FALSE=
 fi
 
+SSLLIB=''
+SSLFLAGS=''
+
 # Check whether --enable-ssl or --disable-ssl was given.
 if test "${enable_ssl+set}" = set; then
   enableval="$enable_ssl"
@@ -2339,8 +2381,10 @@
     USE_OPENSSL=
     ;;
   *)
-    SSLLIBDIR="$with_openssl/lib"
-    CPPFLAGS="-I$with_openssl/include $CPPFLAGS"
+    PKG_CONFIG_PATH="$with_openssl/lib/pkgconfig${PKG_CONFIG_PATH:+:}${PKG_CONFIG_PATH}"
+    export PKG_CONFIG_PATH
+    SSLLIB="-L$with_openssl/lib -lssl -lcrypto"
+    SSLFLAGS="-I$with_openssl/include"
     USE_OPENSSL=1
   esac
 
@@ -2365,14 +2409,11 @@
   if test -z "$SSLLIB"; then
     SSLLIB="-lcrypto" # for MD5 routines
   fi
-    if test -d /usr/kerberos/include && test -z "$SSLLIBDIR" && test -f /usr/include/openssl/kssl.h; then
-    echo "OpenSSL depends on Kerberos"
-    SSLLIBDIR="/usr/kerberos/lib"
-    CPPFLAGS="$CPPFLAGS -I/usr/kerberos/include"
+  if $PKGCONFIG --exists openssl; then
+    SSLLIB="`$PKGCONFIG --libs openssl`"
+    SSLFLAGS="`$PKGCONFIG --cflags openssl`"
   fi
-fi
-if test -n "$SSLLIBDIR"; then
-  SSLLIB="-L$SSLLIBDIR $SSLLIB"
+  CPPFLAGS="${SSLFLAGS} $CPPFLAGS"
 fi
 
 
@@ -2754,7 +2795,9 @@
 if test -n "$BASIC_AUTH_HELPERS"; then
     for helper in $BASIC_AUTH_HELPERS; do
 	if test -f $srcdir/helpers/basic_auth/$helper/Makefile.in; then
-		:
+		if test "$helper" = "SASL"; then
+			require_sasl=yes
+		fi
 	else
 		echo "ERROR: Basic auth helper $helper does not exists"
 		exit 1
@@ -2893,6 +2936,142 @@
 
 
 
+if test "$require_sasl" = "yes"; then
+	echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
+echo "configure:2942: checking how to run the C preprocessor" >&5
+# On Suns, sometimes $CPP names a directory.
+if test -n "$CPP" && test -d "$CPP"; then
+  CPP=
+fi
+if test -z "$CPP"; then
+if eval "test \"`echo '$''{'ac_cv_prog_CPP'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+    # This must be in double quotes, not single quotes, because CPP may get
+  # substituted into the Makefile and "${CC-cc}" will confuse make.
+  CPP="${CC-cc} -E"
+  # On the NeXT, cc -E runs the code through the compiler's parser,
+  # not just through cpp.
+  cat > conftest.$ac_ext <<EOF
+#line 2957 "configure"
+#include "confdefs.h"
+#include <assert.h>
+Syntax Error
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:2963: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+  :
+else
+  echo "$ac_err" >&5
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  CPP="${CC-cc} -E -traditional-cpp"
+  cat > conftest.$ac_ext <<EOF
+#line 2974 "configure"
+#include "confdefs.h"
+#include <assert.h>
+Syntax Error
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:2980: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+  :
+else
+  echo "$ac_err" >&5
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  CPP="${CC-cc} -nologo -E"
+  cat > conftest.$ac_ext <<EOF
+#line 2991 "configure"
+#include "confdefs.h"
+#include <assert.h>
+Syntax Error
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:2997: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+  :
+else
+  echo "$ac_err" >&5
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  CPP=/lib/cpp
+fi
+rm -f conftest*
+fi
+rm -f conftest*
+fi
+rm -f conftest*
+  ac_cv_prog_CPP="$CPP"
+fi
+  CPP="$ac_cv_prog_CPP"
+else
+  ac_cv_prog_CPP="$CPP"
+fi
+echo "$ac_t""$CPP" 1>&6
+
+for ac_hdr in sasl/sasl.h sasl.h
+do
+ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
+echo "configure:3025: checking for $ac_hdr" >&5
+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 3030 "configure"
+#include "confdefs.h"
+#include <$ac_hdr>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:3035: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+  rm -rf conftest*
+  eval "ac_cv_header_$ac_safe=yes"
+else
+  echo "$ac_err" >&5
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_header_$ac_safe=no"
+fi
+rm -f conftest*
+fi
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_hdr 1
+EOF
+ 
+else
+  echo "$ac_t""no" 1>&6
+fi
+done
+
+	if test "$ac_cv_header_sasl_sasl_h" = "yes"; then
+		echo "using SASL2"
+		LIBSASL="-lsasl2"
+	else
+		if test "$ac_cv_header_sasl_h" = "yes"; then
+			echo "using SASL"
+			LIBSASL="-lsasl"
+		else
+			echo "ERROR: Neither SASL nor SASL2 found"
+			exit 1
+		fi
+	fi
+	
+fi
+
 # Check whether --enable-unlinkd or --disable-unlinkd was given.
 if test "${enable_unlinkd+set}" = set; then
   enableval="$enable_unlinkd"
@@ -2986,7 +3165,7 @@
 esac
 
 echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
-echo "configure:2990: checking how to run the C preprocessor" >&5
+echo "configure:3169: checking how to run the C preprocessor" >&5
 # On Suns, sometimes $CPP names a directory.
 if test -n "$CPP" && test -d "$CPP"; then
   CPP=
@@ -3001,13 +3180,13 @@
   # On the NeXT, cc -E runs the code through the compiler's parser,
   # not just through cpp.
   cat > conftest.$ac_ext <<EOF
-#line 3005 "configure"
+#line 3184 "configure"
 #include "confdefs.h"
 #include <assert.h>
 Syntax Error
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3011: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:3190: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   :
@@ -3018,13 +3197,13 @@
   rm -rf conftest*
   CPP="${CC-cc} -E -traditional-cpp"
   cat > conftest.$ac_ext <<EOF
-#line 3022 "configure"
+#line 3201 "configure"
 #include "confdefs.h"
 #include <assert.h>
 Syntax Error
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3028: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:3207: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   :
@@ -3035,13 +3214,13 @@
   rm -rf conftest*
   CPP="${CC-cc} -nologo -E"
   cat > conftest.$ac_ext <<EOF
-#line 3039 "configure"
+#line 3218 "configure"
 #include "confdefs.h"
 #include <assert.h>
 Syntax Error
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3045: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:3224: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   :
@@ -3077,7 +3256,7 @@
 # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
 # ./install, which can be erroneously created by make from ./install.sh.
 echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
-echo "configure:3081: checking for a BSD compatible install" >&5
+echo "configure:3260: checking for a BSD compatible install" >&5
 if test -z "$INSTALL"; then
 if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -3132,7 +3311,7 @@
 # Extract the first word of "ranlib", so it can be a program name with args.
 set dummy ranlib; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3136: checking for $ac_word" >&5
+echo "configure:3315: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3160,7 +3339,7 @@
 fi
 
 echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6
-echo "configure:3164: checking whether ln -s works" >&5
+echo "configure:3343: checking whether ln -s works" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_LN_S'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3183,7 +3362,7 @@
 # Extract the first word of "sh", so it can be a program name with args.
 set dummy sh; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3187: checking for $ac_word" >&5
+echo "configure:3366: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_path_SH'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3219,7 +3398,7 @@
 # Extract the first word of "false", so it can be a program name with args.
 set dummy false; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3223: checking for $ac_word" >&5
+echo "configure:3402: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_path_FALSE'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3255,7 +3434,7 @@
 # Extract the first word of "true", so it can be a program name with args.
 set dummy true; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3259: checking for $ac_word" >&5
+echo "configure:3438: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_path_TRUE'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3291,7 +3470,7 @@
 # Extract the first word of "rm", so it can be a program name with args.
 set dummy rm; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3295: checking for $ac_word" >&5
+echo "configure:3474: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_path_RM'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3327,7 +3506,7 @@
 # Extract the first word of "mv", so it can be a program name with args.
 set dummy mv; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3331: checking for $ac_word" >&5
+echo "configure:3510: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_path_MV'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3363,7 +3542,7 @@
 # Extract the first word of "mkdir", so it can be a program name with args.
 set dummy mkdir; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3367: checking for $ac_word" >&5
+echo "configure:3546: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_path_MKDIR'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3399,7 +3578,7 @@
 # Extract the first word of "ln", so it can be a program name with args.
 set dummy ln; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3403: checking for $ac_word" >&5
+echo "configure:3582: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_path_LN'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3435,7 +3614,7 @@
 # Extract the first word of "perl", so it can be a program name with args.
 set dummy perl; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3439: checking for $ac_word" >&5
+echo "configure:3618: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_path_PERL'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3471,7 +3650,7 @@
 # Extract the first word of "ar", so it can be a program name with args.
 set dummy ar; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3475: checking for $ac_word" >&5
+echo "configure:3654: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_path_AR'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3531,12 +3710,12 @@
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr that defines DIR""... $ac_c" 1>&6
-echo "configure:3535: checking for $ac_hdr that defines DIR" >&5
+echo "configure:3714: checking for $ac_hdr that defines DIR" >&5
 if eval "test \"`echo '$''{'ac_cv_header_dirent_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3540 "configure"
+#line 3719 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <$ac_hdr>
@@ -3544,7 +3723,7 @@
 DIR *dirp = 0;
 ; return 0; }
 EOF
-if { (eval echo configure:3548: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3727: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   eval "ac_cv_header_dirent_$ac_safe=yes"
 else
@@ -3569,7 +3748,7 @@
 # Two versions of opendir et al. are in -ldir and -lx on SCO Xenix.
 if test $ac_header_dirent = dirent.h; then
 echo $ac_n "checking for opendir in -ldir""... $ac_c" 1>&6
-echo "configure:3573: checking for opendir in -ldir" >&5
+echo "configure:3752: checking for opendir in -ldir" >&5
 ac_lib_var=`echo dir'_'opendir | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -3577,7 +3756,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-ldir  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 3581 "configure"
+#line 3760 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -3588,7 +3767,7 @@
 opendir()
 ; return 0; }
 EOF
-if { (eval echo configure:3592: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3771: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -3610,7 +3789,7 @@
 
 else
 echo $ac_n "checking for opendir in -lx""... $ac_c" 1>&6
-echo "configure:3614: checking for opendir in -lx" >&5
+echo "configure:3793: checking for opendir in -lx" >&5
 ac_lib_var=`echo x'_'opendir | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -3618,7 +3797,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lx  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 3622 "configure"
+#line 3801 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -3629,7 +3808,7 @@
 opendir()
 ; return 0; }
 EOF
-if { (eval echo configure:3633: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3812: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -3652,12 +3831,12 @@
 fi
 
 echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
-echo "configure:3656: checking for ANSI C header files" >&5
+echo "configure:3835: checking for ANSI C header files" >&5
 if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3661 "configure"
+#line 3840 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 #include <stdarg.h>
@@ -3665,7 +3844,7 @@
 #include <float.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3669: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:3848: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -3682,7 +3861,7 @@
 if test $ac_cv_header_stdc = yes; then
   # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
 cat > conftest.$ac_ext <<EOF
-#line 3686 "configure"
+#line 3865 "configure"
 #include "confdefs.h"
 #include <string.h>
 EOF
@@ -3700,7 +3879,7 @@
 if test $ac_cv_header_stdc = yes; then
   # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
 cat > conftest.$ac_ext <<EOF
-#line 3704 "configure"
+#line 3883 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 EOF
@@ -3721,7 +3900,7 @@
   :
 else
   cat > conftest.$ac_ext <<EOF
-#line 3725 "configure"
+#line 3904 "configure"
 #include "confdefs.h"
 #include <ctype.h>
 #define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
@@ -3732,7 +3911,7 @@
 exit (0); }
 
 EOF
-if { (eval echo configure:3736: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:3915: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   :
 else
@@ -3839,17 +4018,17 @@
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:3843: checking for $ac_hdr" >&5
+echo "configure:4022: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3848 "configure"
+#line 4027 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3853: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:4032: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -3877,12 +4056,12 @@
 
 
 echo $ac_n "checking for working const""... $ac_c" 1>&6
-echo "configure:3881: checking for working const" >&5
+echo "configure:4060: checking for working const" >&5
 if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3886 "configure"
+#line 4065 "configure"
 #include "confdefs.h"
 
 int main() {
@@ -3931,7 +4110,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:3935: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4114: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_c_const=yes
 else
@@ -3952,14 +4131,14 @@
 fi
 
 echo $ac_n "checking whether byte ordering is bigendian""... $ac_c" 1>&6
-echo "configure:3956: checking whether byte ordering is bigendian" >&5
+echo "configure:4135: checking whether byte ordering is bigendian" >&5
 if eval "test \"`echo '$''{'ac_cv_c_bigendian'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   ac_cv_c_bigendian=unknown
 # See if sys/param.h defines the BYTE_ORDER macro.
 cat > conftest.$ac_ext <<EOF
-#line 3963 "configure"
+#line 4142 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/param.h>
@@ -3970,11 +4149,11 @@
 #endif
 ; return 0; }
 EOF
-if { (eval echo configure:3974: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4153: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   # It does; now see whether it defined to BIG_ENDIAN or not.
 cat > conftest.$ac_ext <<EOF
-#line 3978 "configure"
+#line 4157 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/param.h>
@@ -3985,7 +4164,7 @@
 #endif
 ; return 0; }
 EOF
-if { (eval echo configure:3989: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4168: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_c_bigendian=yes
 else
@@ -4005,7 +4184,7 @@
     { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
 else
   cat > conftest.$ac_ext <<EOF
-#line 4009 "configure"
+#line 4188 "configure"
 #include "confdefs.h"
 main () {
   /* Are we little or big endian?  From Harbison&Steele.  */
@@ -4018,7 +4197,7 @@
   exit (u.c[sizeof (long) - 1] == 1);
 }
 EOF
-if { (eval echo configure:4022: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:4201: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ac_cv_c_bigendian=no
 else
@@ -4043,20 +4222,20 @@
 
 
 echo $ac_n "checking if ANSI prototypes work""... $ac_c" 1>&6
-echo "configure:4047: checking if ANSI prototypes work" >&5
+echo "configure:4226: checking if ANSI prototypes work" >&5
 if eval "test \"`echo '$''{'ac_cv_have_ansi_prototypes'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
   cat > conftest.$ac_ext <<EOF
-#line 4053 "configure"
+#line 4232 "configure"
 #include "confdefs.h"
 int foo(char *); int foo (char *bar) {return 1;}
 int main() {
 foo("bar")
 ; return 0; }
 EOF
-if { (eval echo configure:4060: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4239: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_have_ansi_prototypes="yes"
 else
@@ -4078,13 +4257,13 @@
 fi
 
 echo $ac_n "checking for tm->tm_gmtoff""... $ac_c" 1>&6
-echo "configure:4082: checking for tm->tm_gmtoff" >&5
+echo "configure:4261: checking for tm->tm_gmtoff" >&5
 if eval "test \"`echo '$''{'ac_cv_have_tm_gmoff'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
   cat > conftest.$ac_ext <<EOF
-#line 4088 "configure"
+#line 4267 "configure"
 #include "confdefs.h"
 #include <time.h>
 #include <sys/time.h>
@@ -4093,7 +4272,7 @@
       foo.tm_gmtoff = 0;
 ; return 0; }
 EOF
-if { (eval echo configure:4097: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4276: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_have_tm_gmoff="yes"
 else
@@ -4115,13 +4294,13 @@
 fi
 
 echo $ac_n "checking for struct mallinfo""... $ac_c" 1>&6
-echo "configure:4119: checking for struct mallinfo" >&5
+echo "configure:4298: checking for struct mallinfo" >&5
 if eval "test \"`echo '$''{'ac_cv_have_struct_mallinfo'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
   cat > conftest.$ac_ext <<EOF
-#line 4125 "configure"
+#line 4304 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if HAVE_MALLOC_H
@@ -4139,7 +4318,7 @@
     foo.keepcost = 0;
 ; return 0; }
 EOF
-if { (eval echo configure:4143: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4322: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_have_struct_mallinfo="yes"
 else
@@ -4161,13 +4340,13 @@
 fi
 
 echo $ac_n "checking for extended mallinfo""... $ac_c" 1>&6
-echo "configure:4165: checking for extended mallinfo" >&5
+echo "configure:4344: checking for extended mallinfo" >&5
 if eval "test \"`echo '$''{'ac_cv_have_ext_mallinfo'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
   cat > conftest.$ac_ext <<EOF
-#line 4171 "configure"
+#line 4350 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <malloc.h>
@@ -4176,7 +4355,7 @@
       foo.mxfast = 0;
 ; return 0; }
 EOF
-if { (eval echo configure:4180: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4359: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_have_ext_mallinfo="yes"
 else
@@ -4198,13 +4377,13 @@
 fi
 
 echo $ac_n "checking for struct rusage""... $ac_c" 1>&6
-echo "configure:4202: checking for struct rusage" >&5
+echo "configure:4381: checking for struct rusage" >&5
 if eval "test \"`echo '$''{'ac_cv_have_struct_rusage'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
   cat > conftest.$ac_ext <<EOF
-#line 4208 "configure"
+#line 4387 "configure"
 #include "confdefs.h"
 
 #if HAVE_SYS_TIME_H
@@ -4217,7 +4396,7 @@
 struct rusage R;
 ; return 0; }
 EOF
-if { (eval echo configure:4221: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4400: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_have_struct_rusage="yes"
 else
@@ -4239,13 +4418,13 @@
 fi
 
 echo $ac_n "checking for ip->ip_hl""... $ac_c" 1>&6
-echo "configure:4243: checking for ip->ip_hl" >&5
+echo "configure:4422: checking for ip->ip_hl" >&5
 if eval "test \"`echo '$''{'ac_cv_have_ip_hl'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
   cat > conftest.$ac_ext <<EOF
-#line 4249 "configure"
+#line 4428 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <netinet/in.h>
@@ -4264,7 +4443,7 @@
       ip.ip_hl= 0;
 ; return 0; }
 EOF
-if { (eval echo configure:4268: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4447: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_have_ip_hl="yes"
 else
@@ -4286,7 +4465,7 @@
 fi
 
 echo $ac_n "checking size of void *""... $ac_c" 1>&6
-echo "configure:4290: checking size of void *" >&5
+echo "configure:4469: checking size of void *" >&5
 if eval "test \"`echo '$''{'ac_cv_sizeof_void_p'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -4294,7 +4473,7 @@
     { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
 else
   cat > conftest.$ac_ext <<EOF
-#line 4298 "configure"
+#line 4477 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 main()
@@ -4305,7 +4484,7 @@
   exit(0);
 }
 EOF
-if { (eval echo configure:4309: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:4488: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ac_cv_sizeof_void_p=`cat conftestval`
 else
@@ -4325,7 +4504,7 @@
 
 
 echo $ac_n "checking size of short""... $ac_c" 1>&6
-echo "configure:4329: checking size of short" >&5
+echo "configure:4508: checking size of short" >&5
 if eval "test \"`echo '$''{'ac_cv_sizeof_short'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -4333,7 +4512,7 @@
     { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
 else
   cat > conftest.$ac_ext <<EOF
-#line 4337 "configure"
+#line 4516 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 main()
@@ -4344,7 +4523,7 @@
   exit(0);
 }
 EOF
-if { (eval echo configure:4348: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:4527: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ac_cv_sizeof_short=`cat conftestval`
 else
@@ -4364,7 +4543,7 @@
 
 
 echo $ac_n "checking size of int""... $ac_c" 1>&6
-echo "configure:4368: checking size of int" >&5
+echo "configure:4547: checking size of int" >&5
 if eval "test \"`echo '$''{'ac_cv_sizeof_int'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -4372,7 +4551,7 @@
     { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
 else
   cat > conftest.$ac_ext <<EOF
-#line 4376 "configure"
+#line 4555 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 main()
@@ -4383,7 +4562,7 @@
   exit(0);
 }
 EOF
-if { (eval echo configure:4387: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:4566: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ac_cv_sizeof_int=`cat conftestval`
 else
@@ -4403,7 +4582,7 @@
 
 
 echo $ac_n "checking size of long""... $ac_c" 1>&6
-echo "configure:4407: checking size of long" >&5
+echo "configure:4586: checking size of long" >&5
 if eval "test \"`echo '$''{'ac_cv_sizeof_long'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -4411,7 +4590,7 @@
     { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
 else
   cat > conftest.$ac_ext <<EOF
-#line 4415 "configure"
+#line 4594 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 main()
@@ -4422,7 +4601,7 @@
   exit(0);
 }
 EOF
-if { (eval echo configure:4426: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:4605: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ac_cv_sizeof_long=`cat conftestval`
 else
@@ -4442,7 +4621,7 @@
 
 
 echo $ac_n "checking size of long long""... $ac_c" 1>&6
-echo "configure:4446: checking size of long long" >&5
+echo "configure:4625: checking size of long long" >&5
 if eval "test \"`echo '$''{'ac_cv_sizeof_long_long'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -4450,7 +4629,7 @@
     { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
 else
   cat > conftest.$ac_ext <<EOF
-#line 4454 "configure"
+#line 4633 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 main()
@@ -4461,7 +4640,7 @@
   exit(0);
 }
 EOF
-if { (eval echo configure:4465: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:4644: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ac_cv_sizeof_long_long=`cat conftestval`
 else
@@ -4481,7 +4660,7 @@
 
 
 echo $ac_n "checking size of __int64""... $ac_c" 1>&6
-echo "configure:4485: checking size of __int64" >&5
+echo "configure:4664: checking size of __int64" >&5
 if eval "test \"`echo '$''{'ac_cv_sizeof___int64'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -4489,7 +4668,7 @@
     { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
 else
   cat > conftest.$ac_ext <<EOF
-#line 4493 "configure"
+#line 4672 "configure"
 #include "confdefs.h"
 
 #include <stdio.h>
@@ -4515,7 +4694,7 @@
 }
 
 EOF
-if { (eval echo configure:4519: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:4698: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ac_cv_sizeof___int64=`cat conftestval`
 else
@@ -4535,7 +4714,7 @@
 
 
 echo $ac_n "checking size of int16_t""... $ac_c" 1>&6
-echo "configure:4539: checking size of int16_t" >&5
+echo "configure:4718: checking size of int16_t" >&5
 if eval "test \"`echo '$''{'ac_cv_sizeof_int16_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -4543,7 +4722,7 @@
     { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
 else
   cat > conftest.$ac_ext <<EOF
-#line 4547 "configure"
+#line 4726 "configure"
 #include "confdefs.h"
 
 #include <stdio.h>
@@ -4569,7 +4748,7 @@
 }
 
 EOF
-if { (eval echo configure:4573: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:4752: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ac_cv_sizeof_int16_t=`cat conftestval`
 else
@@ -4589,7 +4768,7 @@
 
 
 echo $ac_n "checking size of uint16_t""... $ac_c" 1>&6
-echo "configure:4593: checking size of uint16_t" >&5
+echo "configure:4772: checking size of uint16_t" >&5
 if eval "test \"`echo '$''{'ac_cv_sizeof_uint16_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -4597,7 +4776,7 @@
     { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
 else
   cat > conftest.$ac_ext <<EOF
-#line 4601 "configure"
+#line 4780 "configure"
 #include "confdefs.h"
 
 #include <stdio.h>
@@ -4623,7 +4802,7 @@
 }
 
 EOF
-if { (eval echo configure:4627: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:4806: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ac_cv_sizeof_uint16_t=`cat conftestval`
 else
@@ -4643,7 +4822,7 @@
 
 
 echo $ac_n "checking size of u_int16_t""... $ac_c" 1>&6
-echo "configure:4647: checking size of u_int16_t" >&5
+echo "configure:4826: checking size of u_int16_t" >&5
 if eval "test \"`echo '$''{'ac_cv_sizeof_u_int16_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -4651,7 +4830,7 @@
     { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
 else
   cat > conftest.$ac_ext <<EOF
-#line 4655 "configure"
+#line 4834 "configure"
 #include "confdefs.h"
 
 #include <stdio.h>
@@ -4677,7 +4856,7 @@
 }
 
 EOF
-if { (eval echo configure:4681: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:4860: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ac_cv_sizeof_u_int16_t=`cat conftestval`
 else
@@ -4697,7 +4876,7 @@
 
 
 echo $ac_n "checking size of int32_t""... $ac_c" 1>&6
-echo "configure:4701: checking size of int32_t" >&5
+echo "configure:4880: checking size of int32_t" >&5
 if eval "test \"`echo '$''{'ac_cv_sizeof_int32_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -4705,7 +4884,7 @@
     { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
 else
   cat > conftest.$ac_ext <<EOF
-#line 4709 "configure"
+#line 4888 "configure"
 #include "confdefs.h"
 
 #include <stdio.h>
@@ -4731,7 +4910,7 @@
 }
 
 EOF
-if { (eval echo configure:4735: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:4914: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ac_cv_sizeof_int32_t=`cat conftestval`
 else
@@ -4751,7 +4930,7 @@
 
 
 echo $ac_n "checking size of uint32_t""... $ac_c" 1>&6
-echo "configure:4755: checking size of uint32_t" >&5
+echo "configure:4934: checking size of uint32_t" >&5
 if eval "test \"`echo '$''{'ac_cv_sizeof_uint32_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -4759,7 +4938,7 @@
     { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
 else
   cat > conftest.$ac_ext <<EOF
-#line 4763 "configure"
+#line 4942 "configure"
 #include "confdefs.h"
 
 #include <stdio.h>
@@ -4785,7 +4964,7 @@
 }
 
 EOF
-if { (eval echo configure:4789: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:4968: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ac_cv_sizeof_uint32_t=`cat conftestval`
 else
@@ -4805,7 +4984,7 @@
 
 
 echo $ac_n "checking size of u_int32_t""... $ac_c" 1>&6
-echo "configure:4809: checking size of u_int32_t" >&5
+echo "configure:4988: checking size of u_int32_t" >&5
 if eval "test \"`echo '$''{'ac_cv_sizeof_u_int32_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -4813,7 +4992,7 @@
     { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
 else
   cat > conftest.$ac_ext <<EOF
-#line 4817 "configure"
+#line 4996 "configure"
 #include "confdefs.h"
 
 #include <stdio.h>
@@ -4839,7 +5018,7 @@
 }
 
 EOF
-if { (eval echo configure:4843: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:5022: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ac_cv_sizeof_u_int32_t=`cat conftestval`
 else
@@ -4859,7 +5038,7 @@
 
 
 echo $ac_n "checking size of int64_t""... $ac_c" 1>&6
-echo "configure:4863: checking size of int64_t" >&5
+echo "configure:5042: checking size of int64_t" >&5
 if eval "test \"`echo '$''{'ac_cv_sizeof_int64_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -4867,7 +5046,7 @@
     { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
 else
   cat > conftest.$ac_ext <<EOF
-#line 4871 "configure"
+#line 5050 "configure"
 #include "confdefs.h"
 
 #include <stdio.h>
@@ -4893,7 +5072,7 @@
 }
 
 EOF
-if { (eval echo configure:4897: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:5076: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ac_cv_sizeof_int64_t=`cat conftestval`
 else
@@ -4913,7 +5092,7 @@
 
 
 echo $ac_n "checking size of uint64_t""... $ac_c" 1>&6
-echo "configure:4917: checking size of uint64_t" >&5
+echo "configure:5096: checking size of uint64_t" >&5
 if eval "test \"`echo '$''{'ac_cv_sizeof_uint64_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -4921,7 +5100,7 @@
     { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
 else
   cat > conftest.$ac_ext <<EOF
-#line 4925 "configure"
+#line 5104 "configure"
 #include "confdefs.h"
 
 #include <stdio.h>
@@ -4947,7 +5126,7 @@
 }
 
 EOF
-if { (eval echo configure:4951: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:5130: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ac_cv_sizeof_uint64_t=`cat conftestval`
 else
@@ -4967,7 +5146,7 @@
 
 
 echo $ac_n "checking size of u_int64_t""... $ac_c" 1>&6
-echo "configure:4971: checking size of u_int64_t" >&5
+echo "configure:5150: checking size of u_int64_t" >&5
 if eval "test \"`echo '$''{'ac_cv_sizeof_u_int64_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -4975,7 +5154,7 @@
     { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
 else
   cat > conftest.$ac_ext <<EOF
-#line 4979 "configure"
+#line 5158 "configure"
 #include "confdefs.h"
 
 #include <stdio.h>
@@ -5001,7 +5180,7 @@
 }
 
 EOF
-if { (eval echo configure:5005: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:5184: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ac_cv_sizeof_u_int64_t=`cat conftestval`
 else
@@ -5023,12 +5202,12 @@
 
 if test "x$ac_cv_sizeof_short" = "x2"; then
 	echo $ac_n "checking for int16_t""... $ac_c" 1>&6
-echo "configure:5027: checking for int16_t" >&5
+echo "configure:5206: checking for int16_t" >&5
 if eval "test \"`echo '$''{'ac_cv_type_int16_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5032 "configure"
+#line 5211 "configure"
 #include "confdefs.h"
 
 /* What a mess.. many systems have added the (now standard) bit types
@@ -5072,12 +5251,12 @@
 
 elif test "x$ac_cv_sizeof_int" = "x2"; then
 	echo $ac_n "checking for int16_t""... $ac_c" 1>&6
-echo "configure:5076: checking for int16_t" >&5
+echo "configure:5255: checking for int16_t" >&5
 if eval "test \"`echo '$''{'ac_cv_type_int16_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5081 "configure"
+#line 5260 "configure"
 #include "confdefs.h"
 
 /* What a mess.. many systems have added the (now standard) bit types
@@ -5122,12 +5301,12 @@
 fi
 if test "x$ac_cv_sizeof_uint16_t" = "x2"; then
 	echo $ac_n "checking for u_int16_t""... $ac_c" 1>&6
-echo "configure:5126: checking for u_int16_t" >&5
+echo "configure:5305: checking for u_int16_t" >&5
 if eval "test \"`echo '$''{'ac_cv_type_u_int16_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5131 "configure"
+#line 5310 "configure"
 #include "confdefs.h"
 
 /* What a mess.. many systems have added the (now standard) bit types
@@ -5171,12 +5350,12 @@
 
 elif test "x$ac_cv_sizeof_short" = "x2"; then
 	echo $ac_n "checking for u_int16_t""... $ac_c" 1>&6
-echo "configure:5175: checking for u_int16_t" >&5
+echo "configure:5354: checking for u_int16_t" >&5
 if eval "test \"`echo '$''{'ac_cv_type_u_int16_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5180 "configure"
+#line 5359 "configure"
 #include "confdefs.h"
 
 /* What a mess.. many systems have added the (now standard) bit types
@@ -5220,12 +5399,12 @@
 
 elif test "x$ac_cv_sizeof_int" = "x2"; then
 	echo $ac_n "checking for u_int16_t""... $ac_c" 1>&6
-echo "configure:5224: checking for u_int16_t" >&5
+echo "configure:5403: checking for u_int16_t" >&5
 if eval "test \"`echo '$''{'ac_cv_type_u_int16_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5229 "configure"
+#line 5408 "configure"
 #include "confdefs.h"
 
 /* What a mess.. many systems have added the (now standard) bit types
@@ -5270,12 +5449,12 @@
 fi
 if test "x$ac_cv_sizeof_int" = "x4"; then
 	echo $ac_n "checking for int32_t""... $ac_c" 1>&6
-echo "configure:5274: checking for int32_t" >&5
+echo "configure:5453: checking for int32_t" >&5
 if eval "test \"`echo '$''{'ac_cv_type_int32_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5279 "configure"
+#line 5458 "configure"
 #include "confdefs.h"
 
 /* What a mess.. many systems have added the (now standard) bit types
@@ -5319,12 +5498,12 @@
 
 elif "x$ac_cv_sizeof_long" = "x4"; then
 	echo $ac_n "checking for int32_t""... $ac_c" 1>&6
-echo "configure:5323: checking for int32_t" >&5
+echo "configure:5502: checking for int32_t" >&5
 if eval "test \"`echo '$''{'ac_cv_type_int32_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5328 "configure"
+#line 5507 "configure"
 #include "confdefs.h"
 
 /* What a mess.. many systems have added the (now standard) bit types
@@ -5369,12 +5548,12 @@
 fi
 if test "x$ac_cv_sizeof_uint32_t" = "x4"; then
 	echo $ac_n "checking for u_int32_t""... $ac_c" 1>&6
-echo "configure:5373: checking for u_int32_t" >&5
+echo "configure:5552: checking for u_int32_t" >&5
 if eval "test \"`echo '$''{'ac_cv_type_u_int32_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5378 "configure"
+#line 5557 "configure"
 #include "confdefs.h"
 
 /* What a mess.. many systems have added the (now standard) bit types
@@ -5418,12 +5597,12 @@
 
 elif test "x$ac_cv_sizeof_int" = "x4"; then
 	echo $ac_n "checking for u_int32_t""... $ac_c" 1>&6
-echo "configure:5422: checking for u_int32_t" >&5
+echo "configure:5601: checking for u_int32_t" >&5
 if eval "test \"`echo '$''{'ac_cv_type_u_int32_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5427 "configure"
+#line 5606 "configure"
 #include "confdefs.h"
 
 /* What a mess.. many systems have added the (now standard) bit types
@@ -5467,12 +5646,12 @@
 
 elif test "x$ac_cv_sizeof_long" = "x4"; then
 	echo $ac_n "checking for u_int32_t""... $ac_c" 1>&6
-echo "configure:5471: checking for u_int32_t" >&5
+echo "configure:5650: checking for u_int32_t" >&5
 if eval "test \"`echo '$''{'ac_cv_type_u_int32_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5476 "configure"
+#line 5655 "configure"
 #include "confdefs.h"
 
 /* What a mess.. many systems have added the (now standard) bit types
@@ -5517,12 +5696,12 @@
 fi
 if test "x$ac_cv_sizeof_long" = "x8"; then
 	echo $ac_n "checking for int64_t""... $ac_c" 1>&6
-echo "configure:5521: checking for int64_t" >&5
+echo "configure:5700: checking for int64_t" >&5
 if eval "test \"`echo '$''{'ac_cv_type_int64_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5526 "configure"
+#line 5705 "configure"
 #include "confdefs.h"
 
 /* What a mess.. many systems have added the (now standard) bit types
@@ -5566,12 +5745,12 @@
 
 elif test "x$ac_cv_sizeof_long_long" = "x8"; then
 	echo $ac_n "checking for int64_t""... $ac_c" 1>&6
-echo "configure:5570: checking for int64_t" >&5
+echo "configure:5749: checking for int64_t" >&5
 if eval "test \"`echo '$''{'ac_cv_type_int64_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5575 "configure"
+#line 5754 "configure"
 #include "confdefs.h"
 
 /* What a mess.. many systems have added the (now standard) bit types
@@ -5615,12 +5794,12 @@
 
 elif test "x$ac_cv_sizeof___int64" = "x8"; then
 	echo $ac_n "checking for int64_t""... $ac_c" 1>&6
-echo "configure:5619: checking for int64_t" >&5
+echo "configure:5798: checking for int64_t" >&5
 if eval "test \"`echo '$''{'ac_cv_type_int64_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5624 "configure"
+#line 5803 "configure"
 #include "confdefs.h"
 
 /* What a mess.. many systems have added the (now standard) bit types
@@ -5665,12 +5844,12 @@
 fi
 if test "x$ac_cv_sizeof_uint64_t" = "x8"; then
 	echo $ac_n "checking for u_int64_t""... $ac_c" 1>&6
-echo "configure:5669: checking for u_int64_t" >&5
+echo "configure:5848: checking for u_int64_t" >&5
 if eval "test \"`echo '$''{'ac_cv_type_u_int64_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5674 "configure"
+#line 5853 "configure"
 #include "confdefs.h"
 
 /* What a mess.. many systems have added the (now standard) bit types
@@ -5714,12 +5893,12 @@
 
 elif test "x$ac_cv_sizeof_long" = "x8"; then
 	echo $ac_n "checking for u_int64_t""... $ac_c" 1>&6
-echo "configure:5718: checking for u_int64_t" >&5
+echo "configure:5897: checking for u_int64_t" >&5
 if eval "test \"`echo '$''{'ac_cv_type_u_int64_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5723 "configure"
+#line 5902 "configure"
 #include "confdefs.h"
 
 /* What a mess.. many systems have added the (now standard) bit types
@@ -5763,12 +5942,12 @@
 
 elif test "x$ac_cv_sizeof_long_long" = "x8"; then
 	echo $ac_n "checking for u_int64_t""... $ac_c" 1>&6
-echo "configure:5767: checking for u_int64_t" >&5
+echo "configure:5946: checking for u_int64_t" >&5
 if eval "test \"`echo '$''{'ac_cv_type_u_int64_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5772 "configure"
+#line 5951 "configure"
 #include "confdefs.h"
 
 /* What a mess.. many systems have added the (now standard) bit types
@@ -5812,12 +5991,12 @@
 
 elif test "x$ac_cv_sizeof___int64" = "x8"; then
 	echo $ac_n "checking for int64_t""... $ac_c" 1>&6
-echo "configure:5816: checking for int64_t" >&5
+echo "configure:5995: checking for int64_t" >&5
 if eval "test \"`echo '$''{'ac_cv_type_int64_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5821 "configure"
+#line 6000 "configure"
 #include "confdefs.h"
 
 /* What a mess.. many systems have added the (now standard) bit types
@@ -5862,12 +6041,12 @@
 fi
 
 echo $ac_n "checking for pid_t""... $ac_c" 1>&6
-echo "configure:5866: checking for pid_t" >&5
+echo "configure:6045: checking for pid_t" >&5
 if eval "test \"`echo '$''{'ac_cv_type_pid_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5871 "configure"
+#line 6050 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -5895,12 +6074,12 @@
 fi
 
 echo $ac_n "checking for size_t""... $ac_c" 1>&6
-echo "configure:5899: checking for size_t" >&5
+echo "configure:6078: checking for size_t" >&5
 if eval "test \"`echo '$''{'ac_cv_type_size_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5904 "configure"
+#line 6083 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -5928,12 +6107,12 @@
 fi
 
 echo $ac_n "checking for ssize_t""... $ac_c" 1>&6
-echo "configure:5932: checking for ssize_t" >&5
+echo "configure:6111: checking for ssize_t" >&5
 if eval "test \"`echo '$''{'ac_cv_type_ssize_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5937 "configure"
+#line 6116 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -5961,12 +6140,12 @@
 fi
 
 echo $ac_n "checking for off_t""... $ac_c" 1>&6
-echo "configure:5965: checking for off_t" >&5
+echo "configure:6144: checking for off_t" >&5
 if eval "test \"`echo '$''{'ac_cv_type_off_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5970 "configure"
+#line 6149 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -5994,12 +6173,12 @@
 fi
 
 echo $ac_n "checking for mode_t""... $ac_c" 1>&6
-echo "configure:5998: checking for mode_t" >&5
+echo "configure:6177: checking for mode_t" >&5
 if eval "test \"`echo '$''{'ac_cv_type_mode_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 6003 "configure"
+#line 6182 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -6027,12 +6206,12 @@
 fi
 
 echo $ac_n "checking for fd_mask""... $ac_c" 1>&6
-echo "configure:6031: checking for fd_mask" >&5
+echo "configure:6210: checking for fd_mask" >&5
 if eval "test \"`echo '$''{'ac_cv_type_fd_mask'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 6036 "configure"
+#line 6215 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -6061,7 +6240,7 @@
 
 
 echo $ac_n "checking size of off_t""... $ac_c" 1>&6
-echo "configure:6065: checking size of off_t" >&5
+echo "configure:6244: checking size of off_t" >&5
 if eval "test \"`echo '$''{'ac_cv_sizeof_off_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -6069,7 +6248,7 @@
   ac_cv_sizeof_off_t=4
 else
   cat > conftest.$ac_ext <<EOF
-#line 6073 "configure"
+#line 6252 "configure"
 #include "confdefs.h"
 
 #include <stdio.h>
@@ -6095,7 +6274,7 @@
 }
 
 EOF
-if { (eval echo configure:6099: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:6278: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ac_cv_sizeof_off_t=`cat conftestval`
 else
@@ -6115,7 +6294,7 @@
 
 
 echo $ac_n "checking size of size_t""... $ac_c" 1>&6
-echo "configure:6119: checking size of size_t" >&5
+echo "configure:6298: checking size of size_t" >&5
 if eval "test \"`echo '$''{'ac_cv_sizeof_size_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -6123,7 +6302,7 @@
   ac_cv_sizeof_size_t=4
 else
   cat > conftest.$ac_ext <<EOF
-#line 6127 "configure"
+#line 6306 "configure"
 #include "confdefs.h"
 
 #include <stdio.h>
@@ -6149,7 +6328,7 @@
 }
 
 EOF
-if { (eval echo configure:6153: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:6332: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ac_cv_sizeof_size_t=`cat conftestval`
 else
@@ -6172,19 +6351,19 @@
 # The Ultrix 4.2 mips builtin alloca declared by alloca.h only works
 # for constant arguments.  Useless!
 echo $ac_n "checking for working alloca.h""... $ac_c" 1>&6
-echo "configure:6176: checking for working alloca.h" >&5
+echo "configure:6355: checking for working alloca.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_alloca_h'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 6181 "configure"
+#line 6360 "configure"
 #include "confdefs.h"
 #include <alloca.h>
 int main() {
 char *p = alloca(2 * sizeof(int));
 ; return 0; }
 EOF
-if { (eval echo configure:6188: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6367: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ac_cv_header_alloca_h=yes
 else
@@ -6205,12 +6384,12 @@
 fi
 
 echo $ac_n "checking for alloca""... $ac_c" 1>&6
-echo "configure:6209: checking for alloca" >&5
+echo "configure:6388: checking for alloca" >&5
 if eval "test \"`echo '$''{'ac_cv_func_alloca_works'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 6214 "configure"
+#line 6393 "configure"
 #include "confdefs.h"
 
 #ifdef __GNUC__
@@ -6238,7 +6417,7 @@
 char *p = (char *) alloca(1);
 ; return 0; }
 EOF
-if { (eval echo configure:6242: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6421: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ac_cv_func_alloca_works=yes
 else
@@ -6270,12 +6449,12 @@
 
 
 echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6
-echo "configure:6274: checking whether alloca needs Cray hooks" >&5
+echo "configure:6453: checking whether alloca needs Cray hooks" >&5
 if eval "test \"`echo '$''{'ac_cv_os_cray'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 6279 "configure"
+#line 6458 "configure"
 #include "confdefs.h"
 #if defined(CRAY) && ! defined(CRAY2)
 webecray
@@ -6300,12 +6479,12 @@
 if test $ac_cv_os_cray = yes; then
 for ac_func in _getb67 GETB67 getb67; do
   echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:6304: checking for $ac_func" >&5
+echo "configure:6483: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 6309 "configure"
+#line 6488 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -6328,7 +6507,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:6332: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6511: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -6355,7 +6534,7 @@
 fi
 
 echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6
-echo "configure:6359: checking stack direction for C alloca" >&5
+echo "configure:6538: checking stack direction for C alloca" >&5
 if eval "test \"`echo '$''{'ac_cv_c_stack_direction'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -6363,7 +6542,7 @@
   ac_cv_c_stack_direction=0
 else
   cat > conftest.$ac_ext <<EOF
-#line 6367 "configure"
+#line 6546 "configure"
 #include "confdefs.h"
 find_stack_direction ()
 {
@@ -6382,7 +6561,7 @@
   exit (find_stack_direction() < 0);
 }
 EOF
-if { (eval echo configure:6386: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:6565: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ac_cv_c_stack_direction=1
 else
@@ -6406,13 +6585,13 @@
 
 
 echo $ac_n "checking for socklen_t""... $ac_c" 1>&6
-echo "configure:6410: checking for socklen_t" >&5
+echo "configure:6589: checking for socklen_t" >&5
 if eval "test \"`echo '$''{'ac_cv_type_socklen_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
   cat > conftest.$ac_ext <<EOF
-#line 6416 "configure"
+#line 6595 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/socket.h>
@@ -6443,13 +6622,13 @@
 fi
 
 echo $ac_n "checking for mtyp_t""... $ac_c" 1>&6
-echo "configure:6447: checking for mtyp_t" >&5
+echo "configure:6626: checking for mtyp_t" >&5
 if eval "test \"`echo '$''{'ac_cv_type_mtyp_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
   cat > conftest.$ac_ext <<EOF
-#line 6453 "configure"
+#line 6632 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/ipc.h>
@@ -6477,7 +6656,7 @@
  fi
 
 echo $ac_n "checking for main in -lnsl""... $ac_c" 1>&6
-echo "configure:6481: checking for main in -lnsl" >&5
+echo "configure:6660: checking for main in -lnsl" >&5
 ac_lib_var=`echo nsl'_'main | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -6485,14 +6664,14 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lnsl  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 6489 "configure"
+#line 6668 "configure"
 #include "confdefs.h"
 
 int main() {
 main()
 ; return 0; }
 EOF
-if { (eval echo configure:6496: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6675: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6520,7 +6699,7 @@
 fi
 
 echo $ac_n "checking for main in -lsocket""... $ac_c" 1>&6
-echo "configure:6524: checking for main in -lsocket" >&5
+echo "configure:6703: checking for main in -lsocket" >&5
 ac_lib_var=`echo socket'_'main | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -6528,14 +6707,14 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lsocket  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 6532 "configure"
+#line 6711 "configure"
 #include "confdefs.h"
 
 int main() {
 main()
 ; return 0; }
 EOF
-if { (eval echo configure:6539: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6718: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6564,13 +6743,13 @@
 
 
 echo $ac_n "checking for unix domain sockets""... $ac_c" 1>&6
-echo "configure:6568: checking for unix domain sockets" >&5
+echo "configure:6747: checking for unix domain sockets" >&5
 if eval "test \"`echo '$''{'squid_cv_unixsocket'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
     cat > conftest.$ac_ext <<EOF
-#line 6574 "configure"
+#line 6753 "configure"
 #include "confdefs.h"
 
 #include <sys/types.h>
@@ -6585,7 +6764,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:6589: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:6768: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   squid_cv_unixsocket=yes
 else
@@ -6609,7 +6788,7 @@
   echo "skipping libmalloc check (--enable-dlmalloc specified)"
 else
   echo $ac_n "checking for main in -lgnumalloc""... $ac_c" 1>&6
-echo "configure:6613: checking for main in -lgnumalloc" >&5
+echo "configure:6792: checking for main in -lgnumalloc" >&5
 ac_lib_var=`echo gnumalloc'_'main | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -6617,14 +6796,14 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lgnumalloc  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 6621 "configure"
+#line 6800 "configure"
 #include "confdefs.h"
 
 int main() {
 main()
 ; return 0; }
 EOF
-if { (eval echo configure:6628: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6807: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6667,7 +6846,7 @@
 			*)
   
 				echo $ac_n "checking for main in -lmalloc""... $ac_c" 1>&6
-echo "configure:6671: checking for main in -lmalloc" >&5
+echo "configure:6850: checking for main in -lmalloc" >&5
 ac_lib_var=`echo malloc'_'main | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -6675,14 +6854,14 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lmalloc  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 6679 "configure"
+#line 6858 "configure"
 #include "confdefs.h"
 
 int main() {
 main()
 ; return 0; }
 EOF
-if { (eval echo configure:6686: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6865: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6715,7 +6894,7 @@
 fi
 
 echo $ac_n "checking for main in -lbsd""... $ac_c" 1>&6
-echo "configure:6719: checking for main in -lbsd" >&5
+echo "configure:6898: checking for main in -lbsd" >&5
 ac_lib_var=`echo bsd'_'main | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -6723,14 +6902,14 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lbsd  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 6727 "configure"
+#line 6906 "configure"
 #include "confdefs.h"
 
 int main() {
 main()
 ; return 0; }
 EOF
-if { (eval echo configure:6734: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6913: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6758,7 +6937,7 @@
 fi
 
 echo $ac_n "checking for main in -lregex""... $ac_c" 1>&6
-echo "configure:6762: checking for main in -lregex" >&5
+echo "configure:6941: checking for main in -lregex" >&5
 ac_lib_var=`echo regex'_'main | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -6766,14 +6945,14 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lregex  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 6770 "configure"
+#line 6949 "configure"
 #include "confdefs.h"
 
 int main() {
 main()
 ; return 0; }
 EOF
-if { (eval echo configure:6777: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6956: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6794,7 +6973,7 @@
 fi
 
 echo $ac_n "checking for gethostbyname in -lbind""... $ac_c" 1>&6
-echo "configure:6798: checking for gethostbyname in -lbind" >&5
+echo "configure:6977: checking for gethostbyname in -lbind" >&5
 ac_lib_var=`echo bind'_'gethostbyname | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -6802,7 +6981,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lbind  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 6806 "configure"
+#line 6985 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -6813,7 +6992,7 @@
 gethostbyname()
 ; return 0; }
 EOF
-if { (eval echo configure:6817: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6996: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6847,7 +7026,7 @@
 		;;
 	*)
 		echo $ac_n "checking for inet_aton in -lresolv""... $ac_c" 1>&6
-echo "configure:6851: checking for inet_aton in -lresolv" >&5
+echo "configure:7030: checking for inet_aton in -lresolv" >&5
 ac_lib_var=`echo resolv'_'inet_aton | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -6855,7 +7034,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lresolv  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 6859 "configure"
+#line 7038 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -6866,7 +7045,7 @@
 inet_aton()
 ; return 0; }
 EOF
-if { (eval echo configure:6870: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7049: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6882,7 +7061,7 @@
 if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
   echo "$ac_t""yes" 1>&6
   echo $ac_n "checking for inet_aton in -l44bsd""... $ac_c" 1>&6
-echo "configure:6886: checking for inet_aton in -l44bsd" >&5
+echo "configure:7065: checking for inet_aton in -l44bsd" >&5
 ac_lib_var=`echo 44bsd'_'inet_aton | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -6890,7 +7069,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-l44bsd  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 6894 "configure"
+#line 7073 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -6901,7 +7080,7 @@
 inet_aton()
 ; return 0; }
 EOF
-if { (eval echo configure:6905: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7084: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6933,7 +7112,7 @@
 fi
 
 		echo $ac_n "checking for main in -lresolv""... $ac_c" 1>&6
-echo "configure:6937: checking for main in -lresolv" >&5
+echo "configure:7116: checking for main in -lresolv" >&5
 ac_lib_var=`echo resolv'_'main | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -6941,14 +7120,14 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lresolv  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 6945 "configure"
+#line 7124 "configure"
 #include "confdefs.h"
 
 int main() {
 main()
 ; return 0; }
 EOF
-if { (eval echo configure:6952: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7131: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6979,7 +7158,7 @@
     esac
 fi
 echo $ac_n "checking for main in -lm""... $ac_c" 1>&6
-echo "configure:6983: checking for main in -lm" >&5
+echo "configure:7162: checking for main in -lm" >&5
 ac_lib_var=`echo m'_'main | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -6987,14 +7166,14 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lm  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 6991 "configure"
+#line 7170 "configure"
 #include "confdefs.h"
 
 int main() {
 main()
 ; return 0; }
 EOF
-if { (eval echo configure:6998: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7177: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -7023,7 +7202,7 @@
 
 
 echo $ac_n "checking for crypt in -lcrypt""... $ac_c" 1>&6
-echo "configure:7027: checking for crypt in -lcrypt" >&5
+echo "configure:7206: checking for crypt in -lcrypt" >&5
 ac_lib_var=`echo crypt'_'crypt | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -7031,7 +7210,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lcrypt  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 7035 "configure"
+#line 7214 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -7042,7 +7221,7 @@
 crypt()
 ; return 0; }
 EOF
-if { (eval echo configure:7046: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7225: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -7066,7 +7245,7 @@
 
 if test "$with_dl" = "yes"; then
     echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6
-echo "configure:7070: checking for dlopen in -ldl" >&5
+echo "configure:7249: checking for dlopen in -ldl" >&5
 ac_lib_var=`echo dl'_'dlopen | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -7074,7 +7253,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-ldl  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 7078 "configure"
+#line 7257 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -7085,7 +7264,7 @@
 dlopen()
 ; return 0; }
 EOF
-if { (eval echo configure:7089: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7268: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -7133,7 +7312,7 @@
     ;;
     esac
     echo $ac_n "checking for main in -lpthread""... $ac_c" 1>&6
-echo "configure:7137: checking for main in -lpthread" >&5
+echo "configure:7316: checking for main in -lpthread" >&5
 ac_lib_var=`echo pthread'_'main | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -7141,14 +7320,14 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lpthread  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 7145 "configure"
+#line 7324 "configure"
 #include "confdefs.h"
 
 int main() {
 main()
 ; return 0; }
 EOF
-if { (eval echo configure:7152: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7331: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -7179,7 +7358,7 @@
 
 if test "$with_aio" = "yes"; then
     echo $ac_n "checking for aio_read in -lrt""... $ac_c" 1>&6
-echo "configure:7183: checking for aio_read in -lrt" >&5
+echo "configure:7362: checking for aio_read in -lrt" >&5
 ac_lib_var=`echo rt'_'aio_read | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -7187,7 +7366,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lrt  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 7191 "configure"
+#line 7370 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -7198,7 +7377,7 @@
 aio_read()
 ; return 0; }
 EOF
-if { (eval echo configure:7202: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7381: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -7230,7 +7409,7 @@
 case "$host" in
 	*-pc-sco3.2*)
 		echo $ac_n "checking for strftime in -lintl""... $ac_c" 1>&6
-echo "configure:7234: checking for strftime in -lintl" >&5
+echo "configure:7413: checking for strftime in -lintl" >&5
 ac_lib_var=`echo intl'_'strftime | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -7238,7 +7417,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lintl  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 7242 "configure"
+#line 7421 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -7249,7 +7428,7 @@
 strftime()
 ; return 0; }
 EOF
-if { (eval echo configure:7253: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7432: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -7306,6 +7485,8 @@
 			;;
 		esac
 		;;
+	*m88k*-openbsd*)
+		;;
 	*m88k*)
 		CFLAGS="$CFLAGS -D_SQUID_MOTOROLA_"
 		cat >> confdefs.h <<\EOF
@@ -7367,9 +7548,10 @@
 			# Henrik Nordstrom (hno@squid-cache.org) 19980817
 			# poll is problematic on Linux.  We disable it
 			# by default until Linux gets it right.
+			# See also bug #932
 			rev=`uname -r | awk -F. '{printf "%03d%03d",$1,$2}'`
-			if test $rev -lt 002002; then
-			    echo "disabling poll for $host < 2.2..."
+			if test $rev -lt 002004; then
+			    echo "disabling poll for $host < 2.4..."
 			    ac_cv_func_poll='no'
 			fi
 			;;
@@ -7440,12 +7622,12 @@
 
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:7444: checking for $ac_func" >&5
+echo "configure:7626: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 7449 "configure"
+#line 7631 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -7468,7 +7650,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:7472: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7654: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -7494,7 +7676,7 @@
 
 
 echo $ac_n "checking if setresuid is implemented""... $ac_c" 1>&6
-echo "configure:7498: checking if setresuid is implemented" >&5
+echo "configure:7680: checking if setresuid is implemented" >&5
 if eval "test \"`echo '$''{'ac_cv_func_setresuid'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -7502,7 +7684,7 @@
     { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
 else
   cat > conftest.$ac_ext <<EOF
-#line 7506 "configure"
+#line 7688 "configure"
 #include "confdefs.h"
 
 #include <stdlib.h>
@@ -7515,7 +7697,7 @@
   }
   
 EOF
-if { (eval echo configure:7519: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:7701: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ac_cv_func_setresuid="yes"
 else
@@ -7558,10 +7740,110 @@
   NEED_OWN_SNPRINTF_FALSE=
 fi
 fi
-  
+
+echo $ac_n "checking if va_copy is implemented""... $ac_c" 1>&6
+echo "configure:7746: checking if va_copy is implemented" >&5
+if eval "test \"`echo '$''{'ac_cv_func_va_copy'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  if test "$cross_compiling" = yes; then
+    { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
+else
+  cat > conftest.$ac_ext <<EOF
+#line 7754 "configure"
+#include "confdefs.h"
+
+      #include <stdarg.h>
+      void f (int i, ...) {
+         va_list args1, args2;
+         va_start (args1, i);
+         va_copy (args2, args1);
+         if (va_arg (args2, int) != 42 || va_arg (args1, int) != 42)
+            exit (1);
+         va_end (args1); va_end (args2);
+      }
+      int main() {
+         f (0, 42);
+         return 0;
+      }
+      
+EOF
+if { (eval echo configure:7772: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+then
+  ac_cv_func_va_copy="yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -fr conftest*
+  ac_cv_func_va_copy="no"
+fi
+rm -fr conftest*
+fi
+
+
+fi
+
+echo "$ac_t""$ac_cv_func_va_copy" 1>&6
+if test "$ac_cv_func_va_copy" = "yes" ; then
+  cat >> confdefs.h <<\EOF
+#define HAVE_VA_COPY 1
+EOF
+
+fi
+
+echo $ac_n "checking if __va_copy is implemented""... $ac_c" 1>&6
+echo "configure:7796: checking if __va_copy is implemented" >&5
+if eval "test \"`echo '$''{'ac_cv_func___va_copy'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  if test "$cross_compiling" = yes; then
+    { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
+else
+  cat > conftest.$ac_ext <<EOF
+#line 7804 "configure"
+#include "confdefs.h"
+
+      #include <stdarg.h>
+      void f (int i, ...) {
+         va_list args1, args2;
+         va_start (args1, i);
+         __va_copy (args2, args1);
+         if (va_arg (args2, int) != 42 || va_arg (args1, int) != 42)
+            exit (1);
+         va_end (args1); va_end (args2);
+      }
+      int main() {
+         f (0, 42);
+         return 0;
+      }
+      
+EOF
+if { (eval echo configure:7822: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+then
+  ac_cv_func___va_copy="yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -fr conftest*
+  ac_cv_func___va_copy="no"
+fi
+rm -fr conftest*
+fi
+
+
+fi
+
+echo "$ac_t""$ac_cv_func___va_copy" 1>&6
+if test "$ac_cv_func___va_copy" = "yes" ; then
+  cat >> confdefs.h <<\EOF
+#define HAVE___VA_COPY 1
+EOF
+
+fi
+
 if test "$IPF_TRANSPARENT" ; then
     echo $ac_n "checking if IP-Filter header files are installed""... $ac_c" 1>&6
-echo "configure:7565: checking if IP-Filter header files are installed" >&5
+echo "configure:7847: checking if IP-Filter header files are installed" >&5
     # hold on to your hats...
     if test "$ac_cv_header_ip_compat_h" = "yes" ||
         test "$ac_cv_header_ip_fil_compat_h" = "yes" ||
@@ -7602,7 +7884,7 @@
 
 if test "$PF_TRANSPARENT" ; then
     echo $ac_n "checking if PF header file is installed""... $ac_c" 1>&6
-echo "configure:7606: checking if PF header file is installed" >&5
+echo "configure:7888: checking if PF header file is installed" >&5
     # hold on to your hats...
     if test "$ac_cv_header_net_pfvar_h" = "yes"; then
         PF_TRANSPARENT="yes"
@@ -7627,7 +7909,7 @@
 
 if test "$LINUX_NETFILTER" ; then
     echo $ac_n "checking if Linux 2.4 kernel header files are installed""... $ac_c" 1>&6
-echo "configure:7631: checking if Linux 2.4 kernel header files are installed" >&5
+echo "configure:7913: checking if Linux 2.4 kernel header files are installed" >&5
     # hold on to your hats...
     if test "$ac_cv_header_linux_netfilter_ipv4_h" = "yes"; then
         LINUX_NETFILTER="yes"
@@ -7661,13 +7943,13 @@
     esac
 fi
 echo $ac_n "checking if GNUregex needs to be compiled""... $ac_c" 1>&6
-echo "configure:7665: checking if GNUregex needs to be compiled" >&5
+echo "configure:7947: checking if GNUregex needs to be compiled" >&5
 if test -z "$USE_GNUREGEX"; then
 if test "$ac_cv_func_regcomp" = "no" || test "$USE_GNUREGEX" = "yes" ; then
 	USE_GNUREGEX="yes"
 else
 	cat > conftest.$ac_ext <<EOF
-#line 7671 "configure"
+#line 7953 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <regex.h>
@@ -7675,7 +7957,7 @@
 regex_t t; regcomp(&t,"",0);
 ; return 0; }
 EOF
-if { (eval echo configure:7679: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:7961: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   USE_GNUREGEX="no"
 else
@@ -7706,12 +7988,12 @@
 
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:7710: checking for $ac_func" >&5
+echo "configure:7992: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 7715 "configure"
+#line 7997 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -7734,7 +8016,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:7738: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8020: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -7762,12 +8044,12 @@
 
 
 echo $ac_n "checking Default FD_SETSIZE value""... $ac_c" 1>&6
-echo "configure:7766: checking Default FD_SETSIZE value" >&5
+echo "configure:8048: checking Default FD_SETSIZE value" >&5
 if test "$cross_compiling" = yes; then
   DEFAULT_FD_SETSIZE=256
 else
   cat > conftest.$ac_ext <<EOF
-#line 7771 "configure"
+#line 8053 "configure"
 #include "confdefs.h"
 
 #if HAVE_STDIO_H
@@ -7792,7 +8074,7 @@
 }
 
 EOF
-if { (eval echo configure:7796: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:8078: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   DEFAULT_FD_SETSIZE=`cat conftestval`
 else
@@ -7811,7 +8093,7 @@
 
 
 echo $ac_n "checking Maximum number of filedescriptors we can open""... $ac_c" 1>&6
-echo "configure:7815: checking Maximum number of filedescriptors we can open" >&5
+echo "configure:8097: checking Maximum number of filedescriptors we can open" >&5
 TLDFLAGS="$LDFLAGS"
 case $host in
 i386-unknown-freebsd*)
@@ -7823,7 +8105,7 @@
   SQUID_MAXFD=256
 else
   cat > conftest.$ac_ext <<EOF
-#line 7827 "configure"
+#line 8109 "configure"
 #include "confdefs.h"
 
 #include <stdio.h>
@@ -7883,7 +8165,7 @@
 }
 
 EOF
-if { (eval echo configure:7887: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:8169: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   SQUID_MAXFD=`cat conftestval`
 else
@@ -7910,12 +8192,12 @@
 LDFLAGS="$TLDFLAGS"
 
 echo $ac_n "checking Default UDP send buffer size""... $ac_c" 1>&6
-echo "configure:7914: checking Default UDP send buffer size" >&5
+echo "configure:8196: checking Default UDP send buffer size" >&5
 if test "$cross_compiling" = yes; then
   SQUID_UDP_SO_SNDBUF=16384
 else
   cat > conftest.$ac_ext <<EOF
-#line 7919 "configure"
+#line 8201 "configure"
 #include "confdefs.h"
 
 #include <stdlib.h>
@@ -7936,7 +8218,7 @@
 }
 
 EOF
-if { (eval echo configure:7940: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:8222: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   SQUID_UDP_SO_SNDBUF=`cat conftestval`
 else
@@ -7955,12 +8237,12 @@
 
 
 echo $ac_n "checking Default UDP receive buffer size""... $ac_c" 1>&6
-echo "configure:7959: checking Default UDP receive buffer size" >&5
+echo "configure:8241: checking Default UDP receive buffer size" >&5
 if test "$cross_compiling" = yes; then
   SQUID_UDP_SO_RCVBUF=16384
 else
   cat > conftest.$ac_ext <<EOF
-#line 7964 "configure"
+#line 8246 "configure"
 #include "confdefs.h"
 
 #include <stdlib.h>
@@ -7981,7 +8263,7 @@
 }
 
 EOF
-if { (eval echo configure:7985: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:8267: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   SQUID_UDP_SO_RCVBUF=`cat conftestval`
 else
@@ -8000,12 +8282,12 @@
 
 
 echo $ac_n "checking Default TCP send buffer size""... $ac_c" 1>&6
-echo "configure:8004: checking Default TCP send buffer size" >&5
+echo "configure:8286: checking Default TCP send buffer size" >&5
 if test "$cross_compiling" = yes; then
   SQUID_TCP_SO_SNDBUF=16384
 else
   cat > conftest.$ac_ext <<EOF
-#line 8009 "configure"
+#line 8291 "configure"
 #include "confdefs.h"
 
 #include <stdlib.h>
@@ -8026,7 +8308,7 @@
 }
 
 EOF
-if { (eval echo configure:8030: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:8312: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   SQUID_TCP_SO_SNDBUF=`cat conftestval`
 else
@@ -8045,12 +8327,12 @@
 
 
 echo $ac_n "checking Default TCP receive buffer size""... $ac_c" 1>&6
-echo "configure:8049: checking Default TCP receive buffer size" >&5
+echo "configure:8331: checking Default TCP receive buffer size" >&5
 if test "$cross_compiling" = yes; then
   SQUID_TCP_SO_RCVBUF=16384
 else
   cat > conftest.$ac_ext <<EOF
-#line 8054 "configure"
+#line 8336 "configure"
 #include "confdefs.h"
 
 #include <stdlib.h>
@@ -8071,7 +8353,7 @@
 }
 
 EOF
-if { (eval echo configure:8075: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:8357: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   SQUID_TCP_SO_RCVBUF=`cat conftestval`
 else
@@ -8090,19 +8372,19 @@
 
 
 echo $ac_n "checking if sys_errlist is already defined""... $ac_c" 1>&6
-echo "configure:8094: checking if sys_errlist is already defined" >&5
+echo "configure:8376: checking if sys_errlist is already defined" >&5
 if eval "test \"`echo '$''{'ac_cv_needs_sys_errlist'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 8099 "configure"
+#line 8381 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 int main() {
 char *s = sys_errlist;
 ; return 0; }
 EOF
-if { (eval echo configure:8106: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:8388: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_needs_sys_errlist="no"
 else
@@ -8124,16 +8406,16 @@
 fi
 
 echo $ac_n "checking for libresolv _dns_ttl_ hack""... $ac_c" 1>&6
-echo "configure:8128: checking for libresolv _dns_ttl_ hack" >&5
+echo "configure:8410: checking for libresolv _dns_ttl_ hack" >&5
 cat > conftest.$ac_ext <<EOF
-#line 8130 "configure"
+#line 8412 "configure"
 #include "confdefs.h"
 extern int _dns_ttl_;
 int main() {
 return _dns_ttl_;
 ; return 0; }
 EOF
-if { (eval echo configure:8137: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8419: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   echo "$ac_t""yes" 1>&6
 cat >> confdefs.h <<\EOF
@@ -8149,12 +8431,12 @@
 rm -f conftest*
 
 echo $ac_n "checking if inet_ntoa() actually works""... $ac_c" 1>&6
-echo "configure:8153: checking if inet_ntoa() actually works" >&5
+echo "configure:8435: checking if inet_ntoa() actually works" >&5
 if test "$cross_compiling" = yes; then
   INET_NTOA_RESULT="broken"
 else
   cat > conftest.$ac_ext <<EOF
-#line 8158 "configure"
+#line 8440 "configure"
 #include "confdefs.h"
 
 #include <stdlib.h>
@@ -8173,7 +8455,7 @@
 }
 
 EOF
-if { (eval echo configure:8177: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:8459: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   INET_NTOA_RESULT=`cat conftestval`
 else
@@ -8199,9 +8481,9 @@
 
 if test "$ac_cv_header_sys_statvfs_h" = "yes" ; then
 echo $ac_n "checking for working statvfs() interface""... $ac_c" 1>&6
-echo "configure:8203: checking for working statvfs() interface" >&5
+echo "configure:8485: checking for working statvfs() interface" >&5
 cat > conftest.$ac_ext <<EOF
-#line 8205 "configure"
+#line 8487 "configure"
 #include "confdefs.h"
 
 #include <stdlib.h>
@@ -8218,7 +8500,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:8222: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:8504: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_func_statvfs=yes
 else
@@ -8238,12 +8520,12 @@
 fi
 
 echo $ac_n "checking for _res.nsaddr_list""... $ac_c" 1>&6
-echo "configure:8242: checking for _res.nsaddr_list" >&5
+echo "configure:8524: checking for _res.nsaddr_list" >&5
 if eval "test \"`echo '$''{'ac_cv_have_res_nsaddr_list'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 8247 "configure"
+#line 8529 "configure"
 #include "confdefs.h"
 
 #if HAVE_SYS_TYPES_H
@@ -8266,7 +8548,7 @@
 _res.nsaddr_list[0];
 ; return 0; }
 EOF
-if { (eval echo configure:8270: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:8552: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_have_res_nsaddr_list="yes"
 else
@@ -8288,12 +8570,12 @@
 
 if test $ac_cv_have_res_nsaddr_list = "no" ; then
 echo $ac_n "checking for _res.ns_list""... $ac_c" 1>&6
-echo "configure:8292: checking for _res.ns_list" >&5
+echo "configure:8574: checking for _res.ns_list" >&5
 if eval "test \"`echo '$''{'ac_cv_have_res_ns_list'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 8297 "configure"
+#line 8579 "configure"
 #include "confdefs.h"
 
 #if HAVE_SYS_TYPES_H
@@ -8316,7 +8598,7 @@
 _res.ns_list[0].addr;
 ; return 0; }
 EOF
-if { (eval echo configure:8320: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:8602: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_have_res_ns_list="yes"
 else
@@ -8578,6 +8860,7 @@
 s%@host_cpu@%$host_cpu%g
 s%@host_vendor@%$host_vendor%g
 s%@host_os@%$host_os%g
+s%@PKGCONFIG@%$PKGCONFIG%g
 s%@CGIEXT@%$CGIEXT%g
 s%@ENABLE_WIN32SPECIFIC_TRUE@%$ENABLE_WIN32SPECIFIC_TRUE%g
 s%@ENABLE_WIN32SPECIFIC_FALSE@%$ENABLE_WIN32SPECIFIC_FALSE%g
@@ -8619,9 +8902,10 @@
 s%@DIGEST_AUTH_HELPERS@%$DIGEST_AUTH_HELPERS%g
 s%@EXTERNAL_ACL_HELPERS@%$EXTERNAL_ACL_HELPERS%g
 s%@SAMBASOURCES@%$SAMBASOURCES%g
+s%@CPP@%$CPP%g
+s%@LIBSASL@%$LIBSASL%g
 s%@ENABLE_UNLINKD_TRUE@%$ENABLE_UNLINKD_TRUE%g
 s%@ENABLE_UNLINKD_FALSE@%$ENABLE_UNLINKD_FALSE%g
-s%@CPP@%$CPP%g
 s%@RANLIB@%$RANLIB%g
 s%@LN_S@%$LN_S%g
 s%@SH@%$SH%g
diff -ruN squid-2.5.STABLE5/configure.in squid-2.5.STABLE6/configure.in
--- squid-2.5.STABLE5/configure.in	Sun Feb 29 15:30:21 2004
+++ squid-2.5.STABLE6/configure.in	Thu Jul  8 17:44:39 2004
@@ -3,15 +3,15 @@
 dnl
 dnl  Duane Wessels, wessels@nlanr.net, February 1996 (autoconf v2.9)
 dnl
-dnl  $Id: configure.in,v 1.251.2.51 2004/02/29 22:28:17 hno Exp $
+dnl  $Id: configure.in,v 1.251.2.59 2004/07/08 23:31:56 hno Exp $
 dnl
 dnl
 dnl
 AC_INIT(src/main.c)
 AC_CONFIG_AUX_DIR(cfgaux)
-AM_INIT_AUTOMAKE(squid, 2.5.STABLE5-CVS)
+AM_INIT_AUTOMAKE(squid, 2.5.STABLE6)
 AM_CONFIG_HEADER(include/autoconf.h)
-AC_REVISION($Revision: 1.251.2.51 $)dnl
+AC_REVISION($Revision: 1.251.2.59 $)dnl
 AC_PREFIX_DEFAULT(/usr/local/squid)
 AM_MAINTAINER_MODE
 
@@ -32,6 +32,9 @@
 REGEXLIB=''	# -lregex
 LIBREGEX=''	# libregex.a
 
+dnl Check for pkg-config
+AC_PATH_PROG(PKGCONFIG, pkg-config, /usr/bin/false)
+
 dnl find out the exe extension for this platform. If it's not empty, use it for CGI's as well.
 AC_EXEEXT
 AC_OBJEXT
@@ -62,7 +65,7 @@
 	CACHE_ICP_PORT="3130"
 fi
 
-dnl Subsitutions
+dnl Substitutions
 AC_DEFINE_UNQUOTED(CACHE_HTTP_PORT, $CACHE_HTTP_PORT)
 AC_DEFINE_UNQUOTED(CACHE_ICP_PORT, $CACHE_ICP_PORT)
 
@@ -85,6 +88,8 @@
     	    # sunos has too many warnings for this to be useful
 	    # motorola too
     	    ;;
+	*m88k*-openbsd*)
+	    ;;
 	*m88k*)
 	    # Motorola cc/ld does not like -02 but is ok on -O
 	    CFLAGS=`echo $CFLAGS | sed -e 's/-O[0-9]/-O/'`
@@ -368,10 +373,10 @@
 AC_SUBST(STORE_MODULES)
 AC_SUBST(STORE_MODULE_SUBDIRS)
 
-dnl --enable-heap-replacement compability option
+dnl --enable-heap-replacement compatibility option
 AC_ARG_ENABLE(heap-replacement,
 [  --enable-heap-replacement
-                          Backwards compability option. Please use the
+                          Backwards compatibility option. Please use the
 			  new --enable-removal-policies directive instead.],
 [ if test "$enableval" = "yes" ; then
     echo "--enable-heap-replacement is obsolete. please use the new"
@@ -553,6 +558,9 @@
 
 AM_CONDITIONAL(ENABLE_SSL, false)
 
+SSLLIB=''
+SSLFLAGS=''
+
 AC_ARG_ENABLE(ssl,
 [  --enable-ssl            Enable ssl gatewaying support using OpenSSL],
 [ if test "$enableval" != "no"; then
@@ -581,8 +589,10 @@
     USE_OPENSSL=
     ;;
   *)
-    SSLLIBDIR="$with_openssl/lib"
-    CPPFLAGS="-I$with_openssl/include $CPPFLAGS"
+    PKG_CONFIG_PATH="$with_openssl/lib/pkgconfig${PKG_CONFIG_PATH:+:}${PKG_CONFIG_PATH}"
+    export PKG_CONFIG_PATH
+    SSLLIB="-L$with_openssl/lib -lssl -lcrypto"
+    SSLFLAGS="-I$with_openssl/include"
     USE_OPENSSL=1
   esac
 ])
@@ -594,15 +604,11 @@
   if test -z "$SSLLIB"; then
     SSLLIB="-lcrypto" # for MD5 routines
   fi
-  dnl This is a workaround for RedHat 9 brain damage..
-  if test -d /usr/kerberos/include && test -z "$SSLLIBDIR" && test -f /usr/include/openssl/kssl.h; then
-    echo "OpenSSL depends on Kerberos"
-    SSLLIBDIR="/usr/kerberos/lib"
-    CPPFLAGS="$CPPFLAGS -I/usr/kerberos/include"
+  if $PKGCONFIG --exists openssl; then
+    SSLLIB="`$PKGCONFIG --libs openssl`"
+    SSLFLAGS="`$PKGCONFIG --cflags openssl`"
   fi
-fi
-if test -n "$SSLLIBDIR"; then
-  SSLLIB="-L$SSLLIBDIR $SSLLIB"
+  CPPFLAGS="${SSLFLAGS} $CPPFLAGS"
 fi
 AC_SUBST(SSLLIB)
 
@@ -869,7 +875,7 @@
 BASIC_AUTH_HELPERS=""
 AC_ARG_ENABLE(auth-modules,
 [  --enable-auth-modules=\"list of helpers\"
-                          Backwards compability alias for
+                          Backwards compatibility alias for
                           --enable-basic-auth-helpers],
 [ echo "--enable-auth-modules is obsolete. Please use the new"
   echo "option --enable-basic-auth-helpers"
@@ -912,7 +918,9 @@
 if test -n "$BASIC_AUTH_HELPERS"; then
     for helper in $BASIC_AUTH_HELPERS; do
 	if test -f $srcdir/helpers/basic_auth/$helper/Makefile.in; then
-		:
+		if test "$helper" = "SASL"; then
+			require_sasl=yes
+		fi
 	else
 		echo "ERROR: Basic auth helper $helper does not exists"
 		exit 1
@@ -1055,6 +1063,24 @@
 ])
 AC_SUBST(SAMBASOURCES)
 
+dnl Check for Cyrus SASL
+if test "$require_sasl" = "yes"; then
+	AC_CHECK_HEADERS(sasl/sasl.h sasl.h)
+	if test "$ac_cv_header_sasl_sasl_h" = "yes"; then
+		echo "using SASL2"
+		LIBSASL="-lsasl2"
+	else
+		if test "$ac_cv_header_sasl_h" = "yes"; then
+			echo "using SASL"
+			LIBSASL="-lsasl"
+		else
+			echo "ERROR: Neither SASL nor SASL2 found"
+			exit 1
+		fi
+	fi
+	AC_SUBST(LIBSASL)
+fi
+
 dnl Disable "unlinkd" code
 AC_ARG_ENABLE(unlinkd,
 [  --disable-unlinkd       Do not use unlinkd],
@@ -1591,6 +1617,8 @@
 			;;
 		esac
 		;;
+	*m88k*-openbsd*)
+		;;
 	*m88k*)
 		CFLAGS="$CFLAGS -D_SQUID_MOTOROLA_"
 		AC_DEFINE(GETTIMEOFDAY_NO_TZP)
@@ -1644,9 +1672,10 @@
 			# Henrik Nordstrom (hno@squid-cache.org) 19980817
 			# poll is problematic on Linux.  We disable it
 			# by default until Linux gets it right.
+			# See also bug #932
 			rev=`uname -r | awk -F. '{printf "%03d%03d",$1,$2}'`
-			if test $rev -lt 002002; then
-			    echo "disabling poll for $host < 2.2..."
+			if test $rev -lt 002004; then
+			    echo "disabling poll for $host < 2.4..."
 			    ac_cv_func_poll='no'
 			fi
 			;;
@@ -1741,7 +1770,55 @@
 if test "$ac_cv_func_snprintf" = "no" || test "$ac_cv_func_vsnprintf" = "no" ; then
   AM_CONDITIONAL(NEED_OWN_SNPRINTF, true)
 fi
-  
+
+dnl
+dnl Test for va_copy
+dnl
+AC_CACHE_CHECK(if va_copy is implemented, ac_cv_func_va_copy,
+  AC_TRY_RUN([
+      #include <stdarg.h>
+      void f (int i, ...) {
+         va_list args1, args2;
+         va_start (args1, i);
+         va_copy (args2, args1);
+         if (va_arg (args2, int) != 42 || va_arg (args1, int) != 42)
+            exit (1);
+         va_end (args1); va_end (args2);
+      }
+      int main() {
+         f (0, 42);
+         return 0;
+      }
+      ],ac_cv_func_va_copy="yes",ac_cv_func_va_copy="no")
+)
+if test "$ac_cv_func_va_copy" = "yes" ; then
+  AC_DEFINE(HAVE_VA_COPY)
+fi
+
+dnl
+dnl Some systems support __va_copy
+dnl
+AC_CACHE_CHECK(if __va_copy is implemented, ac_cv_func___va_copy,
+  AC_TRY_RUN([
+      #include <stdarg.h>
+      void f (int i, ...) {
+         va_list args1, args2;
+         va_start (args1, i);
+         __va_copy (args2, args1);
+         if (va_arg (args2, int) != 42 || va_arg (args1, int) != 42)
+            exit (1);
+         va_end (args1); va_end (args2);
+      }
+      int main() {
+         f (0, 42);
+         return 0;
+      }
+      ],ac_cv_func___va_copy="yes",ac_cv_func___va_copy="no")
+)
+if test "$ac_cv_func___va_copy" = "yes" ; then
+  AC_DEFINE(HAVE___VA_COPY)
+fi
+
 dnl IP-Filter support requires ipf header files. These aren't
 dnl installed by default, so we need to check for them
 if test "$IPF_TRANSPARENT" ; then
diff -ruN squid-2.5.STABLE5/contrib/Makefile.in squid-2.5.STABLE6/contrib/Makefile.in
--- squid-2.5.STABLE5/contrib/Makefile.in	Tue Feb 11 19:02:05 2003
+++ squid-2.5.STABLE6/contrib/Makefile.in	Tue Jun  8 05:37:10 2004
@@ -84,6 +84,7 @@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 LIBDLMALLOC = @LIBDLMALLOC@
 LIBREGEX = @LIBREGEX@
+LIBSASL = @LIBSASL@
 LIB_MALLOC = @LIB_MALLOC@
 LN = @LN@
 LN_S = @LN_S@
@@ -94,6 +95,7 @@
 OBJEXT = @OBJEXT@
 PACKAGE = @PACKAGE@
 PERL = @PERL@
+PKGCONFIG = @PKGCONFIG@
 RANLIB = @RANLIB@
 REGEXLIB = @REGEXLIB@
 REPL_LIBS = @REPL_LIBS@
diff -ruN squid-2.5.STABLE5/doc/Makefile.in squid-2.5.STABLE6/doc/Makefile.in
--- squid-2.5.STABLE5/doc/Makefile.in	Tue Feb 11 19:02:07 2003
+++ squid-2.5.STABLE6/doc/Makefile.in	Tue Jun  8 05:37:11 2004
@@ -16,7 +16,7 @@
 #
 #  Makefile for the Squid Object Cache server
 #
-#  $Id: Makefile.in,v 1.1.2.9 2003/02/12 02:02:07 hno Exp $
+#  $Id: Makefile.in,v 1.1.2.11 2004/06/08 11:37:11 hno Exp $
 #
 #  Uncomment and customize the following to suit your needs:
 #
@@ -87,6 +87,7 @@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 LIBDLMALLOC = @LIBDLMALLOC@
 LIBREGEX = @LIBREGEX@
+LIBSASL = @LIBSASL@
 LIB_MALLOC = @LIB_MALLOC@
 LN = @LN@
 LN_S = @LN_S@
@@ -97,6 +98,7 @@
 OBJEXT = @OBJEXT@
 PACKAGE = @PACKAGE@
 PERL = @PERL@
+PKGCONFIG = @PKGCONFIG@
 RANLIB = @RANLIB@
 REGEXLIB = @REGEXLIB@
 REPL_LIBS = @REPL_LIBS@
diff -ruN squid-2.5.STABLE5/errors/Makefile.in squid-2.5.STABLE6/errors/Makefile.in
--- squid-2.5.STABLE5/errors/Makefile.in	Mon Dec  1 03:13:57 2003
+++ squid-2.5.STABLE6/errors/Makefile.in	Tue Jun  8 05:37:11 2004
@@ -14,7 +14,7 @@
 @SET_MAKE@
 
 #
-# $Id: Makefile.in,v 1.15.2.12 2003/12/01 10:13:57 hno Exp $
+# $Id: Makefile.in,v 1.15.2.14 2004/06/08 11:37:11 hno Exp $
 #
 
 SHELL = @SHELL@
@@ -83,6 +83,7 @@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 LIBDLMALLOC = @LIBDLMALLOC@
 LIBREGEX = @LIBREGEX@
+LIBSASL = @LIBSASL@
 LIB_MALLOC = @LIB_MALLOC@
 LN = @LN@
 LN_S = @LN_S@
@@ -93,6 +94,7 @@
 OBJEXT = @OBJEXT@
 PACKAGE = @PACKAGE@
 PERL = @PERL@
+PKGCONFIG = @PKGCONFIG@
 RANLIB = @RANLIB@
 REGEXLIB = @REGEXLIB@
 REPL_LIBS = @REPL_LIBS@
diff -ruN squid-2.5.STABLE5/errors/Turkish/ERR_DNS_FAIL squid-2.5.STABLE6/errors/Turkish/ERR_DNS_FAIL
--- squid-2.5.STABLE5/errors/Turkish/ERR_DNS_FAIL	Mon Aug 26 19:17:35 2002
+++ squid-2.5.STABLE6/errors/Turkish/ERR_DNS_FAIL	Thu Apr 15 05:50:35 2004
@@ -13,7 +13,7 @@
 adresine ulaþýrken aþaðýdaki hata oluþtu:
 <P>
 <BLOCKQUOTE>
-<I>%H</I> isimli sunucuya ayit herhangi bir IP adresi bulunamadý.
+<I>%H</I> isimli sunucuya ait herhangi bir IP adresi bulunamadý.
 </BLOCKQUOTE>
 </UL>
 <P>
diff -ruN squid-2.5.STABLE5/helpers/Makefile.in squid-2.5.STABLE6/helpers/Makefile.in
--- squid-2.5.STABLE5/helpers/Makefile.in	Tue Feb 11 19:02:10 2003
+++ squid-2.5.STABLE6/helpers/Makefile.in	Tue Jun  8 05:37:11 2004
@@ -79,6 +79,7 @@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 LIBDLMALLOC = @LIBDLMALLOC@
 LIBREGEX = @LIBREGEX@
+LIBSASL = @LIBSASL@
 LIB_MALLOC = @LIB_MALLOC@
 LN = @LN@
 LN_S = @LN_S@
@@ -89,6 +90,7 @@
 OBJEXT = @OBJEXT@
 PACKAGE = @PACKAGE@
 PERL = @PERL@
+PKGCONFIG = @PKGCONFIG@
 RANLIB = @RANLIB@
 REGEXLIB = @REGEXLIB@
 REPL_LIBS = @REPL_LIBS@
diff -ruN squid-2.5.STABLE5/helpers/basic_auth/LDAP/Makefile.in squid-2.5.STABLE6/helpers/basic_auth/LDAP/Makefile.in
--- squid-2.5.STABLE5/helpers/basic_auth/LDAP/Makefile.in	Tue Feb 11 19:02:12 2003
+++ squid-2.5.STABLE6/helpers/basic_auth/LDAP/Makefile.in	Tue Jun  8 05:37:11 2004
@@ -16,7 +16,7 @@
 #
 #  Makefile for the Squid LDAP authentication helper
 #
-#  $Id: Makefile.in,v 1.8.2.9 2003/02/12 02:02:12 hno Exp $
+#  $Id: Makefile.in,v 1.8.2.11 2004/06/08 11:37:11 hno Exp $
 #
 #  Uncomment and customize the following to suit your needs:
 #
@@ -87,6 +87,7 @@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 LIBDLMALLOC = @LIBDLMALLOC@
 LIBREGEX = @LIBREGEX@
+LIBSASL = @LIBSASL@
 LIB_MALLOC = @LIB_MALLOC@
 LN = @LN@
 LN_S = @LN_S@
@@ -97,6 +98,7 @@
 OBJEXT = @OBJEXT@
 PACKAGE = @PACKAGE@
 PERL = @PERL@
+PKGCONFIG = @PKGCONFIG@
 RANLIB = @RANLIB@
 REGEXLIB = @REGEXLIB@
 REPL_LIBS = @REPL_LIBS@
diff -ruN squid-2.5.STABLE5/helpers/basic_auth/LDAP/squid_ldap_auth.8 squid-2.5.STABLE6/helpers/basic_auth/LDAP/squid_ldap_auth.8
--- squid-2.5.STABLE5/helpers/basic_auth/LDAP/squid_ldap_auth.8	Wed Feb 18 09:15:52 2004
+++ squid-2.5.STABLE6/helpers/basic_auth/LDAP/squid_ldap_auth.8	Tue Mar  2 02:13:29 2004
@@ -132,6 +132,12 @@
 .BI -t search_timeout
 Specify time limit on LDAP search operations
 .
+.TP
+.BU -d
+Debug mode where each step taken will get reported in detail.
+Useful for understanding what goes wrong if the results is
+not what is expected.
+.
 .SH EXAMPLES
 For directories using the RFC2307 layout with a single domain, all
 you need to specify is usually the base DN under where your users
diff -ruN squid-2.5.STABLE5/helpers/basic_auth/LDAP/squid_ldap_auth.c squid-2.5.STABLE6/helpers/basic_auth/LDAP/squid_ldap_auth.c
--- squid-2.5.STABLE5/helpers/basic_auth/LDAP/squid_ldap_auth.c	Mon Jan  5 06:12:11 2004
+++ squid-2.5.STABLE6/helpers/basic_auth/LDAP/squid_ldap_auth.c	Thu Mar  4 02:37:38 2004
@@ -30,6 +30,10 @@
  * or (at your option) any later version.
  *
  * Changes:
+ * 2004-03-01: Henrik Nordstrom <hno@squid-cache.org>
+ *	       - corrected building of search filters to escape
+ *		 unsafe input
+ *	       - -d option for "debug" like squid_ldap_group
  * 2004-01-05: Henrik Nordstrom <hno@squid-cache.org>
  *	       - Corrected TLS mode
  * 2003-03-01: David J N Begley
@@ -95,6 +99,7 @@
 #endif
 static int connect_timeout = 0;
 static int timelimit = LDAP_NO_LIMIT;
+static int debug = 0;
 
 /* Added for TLS support and version 3 */
 static int use_tls = 0;
@@ -208,6 +213,7 @@
 	case 'R':
 	case 'z':
 	case 'Z':
+	case 'd':
 	    break;
 	default:
 	    if (strlen(argv[1]) > 2) {
@@ -333,6 +339,9 @@
 	    use_tls = 1;
 	    break;
 #endif
+	case 'd':
+	    debug++;
+	    break;
 	default:
 	    fprintf(stderr, PROGRAM_NAME ": ERROR: Unknown command line option '%c'\n", option);
 	    exit(1);
@@ -478,6 +487,34 @@
 }
 
 static int
+ldap_escape_value(char *escaped, int size, const char *src)
+{
+    int n = 0;
+    while (size > 4 && *src) {
+	switch(*src) {
+	case '*':
+	case '(':
+	case ')':
+	case '\\':
+	    n += 3;
+	    size -= 3;
+	    if (size > 0) {
+		*escaped++ = '\\';
+		snprintf(escaped, 3, "%02x", (unsigned char)*src++);
+		escaped+=2;
+	    }
+	    break;
+	default:
+	    *escaped++ = *src++;
+	    n++;
+	    size--;
+	}
+    }
+    *escaped = '\0';
+    return n;
+}
+
+static int
 checkLDAP(LDAP * ld, const char *userid, const char *password)
 {
     char dn[256];
@@ -490,6 +527,7 @@
     }
     if (searchfilter) {
 	char filter[256];
+	char escaped_login[256];
 	LDAPMessage *res = NULL;
 	LDAPMessage *entry;
 	char *searchattr[] =
@@ -497,6 +535,7 @@
 	char *userdn;
 	int rc;
 
+	ldap_escape_value(escaped_login, sizeof(escaped_login), userid);
 	if (binddn) {
 	    rc = ldap_simple_bind_s(ld, binddn, bindpasswd);
 	    if (rc != LDAP_SUCCESS) {
@@ -504,7 +543,9 @@
 		return 1;
 	    }
 	}
-	snprintf(filter, sizeof(filter), searchfilter, userid, userid, userid, userid, userid, userid, userid, userid, userid, userid, userid, userid, userid, userid, userid);
+	snprintf(filter, sizeof(filter), searchfilter, escaped_login, escaped_login, escaped_login, escaped_login, escaped_login, escaped_login, escaped_login, escaped_login, escaped_login, escaped_login, escaped_login, escaped_login, escaped_login, escaped_login, escaped_login);
+	if (debug)
+	    fprintf(stderr, "user filter '%s', searchbase '%s'\n", filter, basedn);
 	rc = ldap_search_s(ld, basedn, searchscope, filter, searchattr, 1, &res);
 	if (rc != LDAP_SUCCESS) {
 	    if (noreferrals && rc == LDAP_PARTIAL_RESULTS) {
@@ -541,6 +582,8 @@
 	snprintf(dn, sizeof(dn), "%s=%s,%s", userattr, userid, basedn);
     }
 
+    if (debug)
+	fprintf(stderr, "attempting to bind to user '%s'\n", dn);
     if (ldap_simple_bind_s(ld, dn, password) != LDAP_SUCCESS)
 	return 1;
 
diff -ruN squid-2.5.STABLE5/helpers/basic_auth/MSNT/Makefile.in squid-2.5.STABLE6/helpers/basic_auth/MSNT/Makefile.in
--- squid-2.5.STABLE5/helpers/basic_auth/MSNT/Makefile.in	Tue Feb 11 19:02:16 2003
+++ squid-2.5.STABLE6/helpers/basic_auth/MSNT/Makefile.in	Tue Jun  8 05:37:12 2004
@@ -16,7 +16,7 @@
 #
 #  Makefile for the Squid Object Cache server
 #
-#  $Id: Makefile.in,v 1.7.2.11 2003/02/12 02:02:16 hno Exp $
+#  $Id: Makefile.in,v 1.7.2.13 2004/06/08 11:37:12 hno Exp $
 #
 #  Uncomment and customize the following to suit your needs:
 #
@@ -87,6 +87,7 @@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 LIBDLMALLOC = @LIBDLMALLOC@
 LIBREGEX = @LIBREGEX@
+LIBSASL = @LIBSASL@
 LIB_MALLOC = @LIB_MALLOC@
 LN = @LN@
 LN_S = @LN_S@
@@ -97,6 +98,7 @@
 OBJEXT = @OBJEXT@
 PACKAGE = @PACKAGE@
 PERL = @PERL@
+PKGCONFIG = @PKGCONFIG@
 RANLIB = @RANLIB@
 REGEXLIB = @REGEXLIB@
 REPL_LIBS = @REPL_LIBS@
diff -ruN squid-2.5.STABLE5/helpers/basic_auth/MSNT/README.html squid-2.5.STABLE6/helpers/basic_auth/MSNT/README.html
--- squid-2.5.STABLE5/helpers/basic_auth/MSNT/README.html	Wed Jun 26 13:21:24 2002
+++ squid-2.5.STABLE6/helpers/basic_auth/MSNT/README.html	Mon May 31 17:47:49 2004
@@ -12,10 +12,9 @@
 <H1>
 MSNT Auth v2.0.3-squid.1<BR>
 Squid web proxy NT authentication module<BR>
-Antonino Iannella, Stellar-X Pty Ltd<BR>
-Sun Sep  2 15:01:58 CST 2001<BR>
 Modified by the Squid HTTP Proxy team<BR>
-Wed Jun 26 21:16:32 CEST 2002
+Wed Jun 26 21:16:32 CEST 2002<BR>
+Original release by Antonino Iannella, Stellar-X Pty Ltd<BR>
 </H1>
 
 <H2>Contents</H2>
@@ -30,7 +29,7 @@
 <LI> <A HREF="#squid">Squid.conf changes</A>
 <LI> <A HREF="#testing">Testing</A>
 <LI> <A HREF="#contact">Contact details</A>
-<LI> <A HREF="#reported">Reported problem</A>
+<LI> <A HREF="#unknown">Unknown username issue</A>
 <LI> <A HREF="#changes">Revision history</A>
 </UL>
 
@@ -38,12 +37,18 @@
 
 <P>
 This is an authentication module for the Squid proxy server
-to authenticate users on an NT domain.
+to use an NT domain server.
 
 <P>
 It originates from the Samba and SMB packages by Andrew Tridgell
-and Richard Sharpe. This version is sourced from the Pike
-authentication module by William Welliver (hwellive@intersil.com).
+and Richard Sharpe. It is sourced from the Pike
+authentication module by William Welliver (hwellive@intersil.com),
+and the SMB 1.0.1 libraries.
+Releases up to version 2.0.3 were created by Antonino Iannella
+(antonino@rager.com.au, http://stellarx.tripod.com).
+The module is now distributed with Squid, and is maintained by the
+Squid proxy team as an Open Source effort.
+Msntauth is released under the GNU General Public License.
 
 <P>
 Usage is simple. It accepts a username and password on standard input.
@@ -52,32 +57,27 @@
 Check syslog messages for reported problems.
 
 <P>
-Msntauth is released under the GNU General Public License and
-is available from 
-<A HREF="http://www.tripod.com/stellarx">http://www.tripod.com/stellarx</A>.
-It also ships with the Squid web proxy, 
-<A HREF="http://www.squid-proxy.org">http://www.squid-proxy.org</A>.
-
-<P>
-Msntauth has not been tested with Windows 2000 domains yet.
+Msntauth works in environments with NT domain controllers on
+Windows (TM) NT 4, 2000, and Samba.
 
 <A NAME="installation"><H2>Installation</H2>
 
 <P>
-Make any changes to the source code you need.
+Msntauth will be compiled when you compile Squid, using
+their autoconf system.
+Refer to Squid documentation for details.
+If the build is suitable, you can skip this section.
 
 <P>
-If you are using the source provided with Squid, then Msntauth
-will be compiled when you compile Squid. Refer to Squid documentation
-for details.
+Alternatively, a supplementary makefile is also provided for manual compiling.
+Review Makefile.MSNT, and modify it based on the target platform or
+site requirements.
 
 <P>
-If you have downloaded Msntauth from the Stellar-X website, then
-copy <CODE>Makefile.MSNT</CODE> to <CODE>Makefile</CODE>.
-Review the Makefile, and modify based on target platform or
-site requirements.
+Make any necessary changes to the source code.
 
 <P>
+Copy Makefile.MSNT to Makefile.
 Type 'make', then 'make install', then 'make clean'.
 
 <P>
@@ -87,52 +87,49 @@
 
 <P>
 'Make install' will put 'msntauth' into
-/usr/local/squid/bin by default.
-
-<P>
-Hopefully nobody has problems compiling msntauth.
+/usr/local/squid/bin.
 
 <A NAME="compiling"><H2>Issues when compiling</H2>
 
 <P>
-The Makefile uses the GCC compiler, and assumes that it is in the current PATH.
-Msntauth is known to compile properly on Redhat Linux 6, and FreeBSD 3.1
-without problems. Other operating systems are untested,
-but use a recent copy of the GNU C compiler.
-In Smbencrypt.c, '#include <sys/vfs.h>' only gets included when
-compiled with Solaris.
+The Makefile uses your C compiler (usually GCC), assuming it's in your PATH.
+Msntauth is known to compile properly on Linux, FreeBSD, and Solaris.
 
 <P>
-When compiling under Solaris, the socket libraries must be linked to.
-In the Makefile, hash the default CFLAGS line, and unhash the Solaris
-CFLAGS line. It always helps to have /usr/ccs/bin in your path
-prior to compiling.
+When compiling under Solaris, link to the NSL and socket libraries.
+In the Makefile, enable the alternative CFLAGS line for Solaris.
+Ensure /usr/ccs/bin is in your PATH.
+In Smbencrypt.c, '#include <sys/vfs.h>' only gets included when
+compiled with Solaris.
 
 <P>
 For Digital Unix/Tru64, review the INSTALL line in the makefile.
+The install-bsd command is used to place files in their target location.
 
 <A NAME="configuration"><H2>Configuration file</H2>
 
 <P>
-Msntauth uses a configuration file as of version 2.
-The file is /usr/local/squid/etc/msntauth.conf.
-If this path needs to be changed, it is defined in confload.c -
+Msntauth uses a configuration file, usually
+/usr/local/squid/etc/msntauth.conf.
+To change this, edit the following line in confload.c -
 
 <PRE>
   #define CONFIGFILE   "/usr/local/squid/etc/msntauth.conf"
 </PRE>
 
 <P>
-An example configuration file is provided. It looks like
+An example configuration file is provided -
 
 <PRE>
 # Sample MSNT authenticator configuration file
 # Antonino Iannella, Stellar-X Pty Ltd
-# Tue Sep 26 17:26:59 CST 2000
+# Tue Aug 26 17:26:59 GMT+9 2003
 
-server my_PDC           my_BDC          my_NTdomain
-server other_PDC        other_BDC       otherdomain
+# NT domain hosts. Best to put the hostnames in /etc/hosts.
+server myPDC           myBDC          myNTdomain
+server otherPDC        otherBDC       otherdomain
 
+# Denied and allowed users. Comment these if not needed.
 denyusers       /usr/local/squid/etc/denyusers
 allowusers      /usr/local/squid/etc/allowusers
 </PRE>
@@ -145,12 +142,18 @@
 are used for this, with the PDC, BDC, and NT domain as parameters.
 Up to 5 servers/domains can be queried. If this is not enough,
 modify the MAXSERVERS define in confload.c.
-At least one server must be specified, or msntauth will not
-run.
+At least one server must be specified, or msntauth will not start.
 Server names must be resolvable by the system. If not, msntauth
 reports an error. If you can't ping it, you might have a host
 resolution problem.
-You can't use NetBIOS hostnames, nor IP addresses.
+
+<P>
+The name you specify is used in the NetBIOS protocol when
+communicating with the target server.
+The name must be resolvable by the local system, and it must be a 
+name that the target server uses.
+You cannot simply invent a hostname.
+You cannot use it IP address.
 
 <P>
 When a user provides a username/password, each of these
@@ -158,12 +161,12 @@
 It stops after a user has been successfully authenticated,
 so it makes sense to specify the most commonly queried
 server first. Make sure the servers can be reached and
-are active, or else msntauth will start failing user accounts!
+are active, or else msntauth will report failures.
 
 <P>
 The 'denyusers' and 'allowusers' lines give the absolute path
 to files of user accounts. They can be used to deny or allow
-access to the proxy. Do not use these directives if you
+access to the proxy. Remove these directives if you
 do not need these features.
 
 <A NAME="denying"><H2>Denying users</H2>
@@ -176,20 +179,20 @@
 <P>
 The denied user file is set using the 'denyusers' directive
 in msntauth.conf.  The denied user file
-contains a list of usernames in no particular structure or form.
+contains a list of usernames, one per line.
 If the file does not exist, no users are denied.
 The file must be readable by the web proxy user.
 
 <P>
 Msntauth will send syslog messages if a user was denied,
-at LOG_USER facility.
+at LOG_USER facility. Check your syslog messages for clues.
 
 <A NAME="allowing"><H2>Allowing users</H2>
 
 <P>
 Similar to denying users, you can allow users to access the proxy
 by username. This is useful if only a number of people are
-allowed supposed to be accessing a proxy.
+allowed to use a proxy.
 
 <P>
 The allowed user file is set using the 'allowusers' directive
@@ -200,7 +203,7 @@
 You could make use of the SHOWMBRS tool in Microsoft Technet.
 This gives you a list of users which are in a particular
 NT Domain Group. This list can be made into the allowed users
-file.
+file using sed or awk.
 
 <P>
 Some other rules -
@@ -217,9 +220,6 @@
 users will be allowed.
 </OL>
 
-<P>
-Hopefully this wasn't too confusing.
-
 <A NAME="squid"><H2>Squid.conf changes</H2>
 
 <P>
@@ -228,9 +228,9 @@
 your access list -
 
 <PRE>
-  acl <yourACL> proxy_auth REQUIRED
+  acl <I>yourACL</I> proxy_auth REQUIRED
   http_access allow password
-  http_access allow <yourACL>
+  http_access allow <I>yourACL</I>
   http_access deny all
 </PRE>
 
@@ -241,7 +241,7 @@
 experimentation may be required to find the best number.
 There should be no visible delay in performance with Squid once
 msntauth is in use. As an example, a firm with 1500 users and a T1
-internet connection required a value of 30.-
+internet connection required a value of 30.
 
 <PRE>
   proxy_auth_realm enterprise web gateway
@@ -276,7 +276,7 @@
 
 <P>
 If the above didn't work as expected, you may need to modify the main()
-function in msntauth.c. Inform the maintainer of any problems.
+function in msntauth.c. Inform the Squid maintainers of any problems.
 
 <P>
 Usernames cannot have whitespace in them, but passwords can.
@@ -289,25 +289,19 @@
   strings msntauth | grep -i msntauth
 </PRE>
 
-<A NAME="contact"><H2>Contact details</H2>
-
-<P>
-To contact the maintainer of this package, email Antonino Iannella
-at antonino@rager.com.au, or antonino.iannella@santos.com.au, or ring
-+61 8408 800 007.
+<A NAME="contact"><H2>Support details</H2>
 
 <P>
-The latest version may be found on http://members.tripod.com/stellarx.
-It is also distributed as part of Squid.
+Refer to the Squid website at http://www.squid-cache.org.
+Submit problems or fixes using their Bugzilla facility.
 
-<A NAME="reported"><H2>Reported problem</H2>
+<A NAME="unknown"><H2>Unknown username issue</H2>
 
 <P>
 For an unknown username, Msntauth returns OK.
 This is because the PDC returns guest access for unknown users,
 even if guest access is disabled.
 This problem was reported by Mr Vadim Popov (vap@iilsr.minsk.by).
-I am not able to replicate this.
 
 <P>
 The tested environment consisted of PDC on Windows NT 4, SP 6.
@@ -323,11 +317,9 @@
 
 <P>
 The following sequence of changes have been made to improve msntauth.
-I have not had a chance to do too much testing due
-to lack of resources. There should be no problems, though.
 
 <UL>
-<LI>Added many patches from Duane Wessels to stop compilation errors (?)
+<LI>Added many patches from Duane Wessels to stop compilation errors
 <LI>Improved the main() function yet again
 <LI>Created a more informative Makefile
 <LI>Added an 'allowed users' feature to complement the 'denied users' feature
@@ -347,11 +339,12 @@
 <LI>PDC and BDC hostnames are now checked if they are resolvable.
 <LI>Smbencrypt.c does not have to be checked for Solaris systems any more.
 <LI>Imbedded version information in the executable.
+<LI>Version 2.0.3 and later now supported by the Squid team.
 </UL>
 
 <P>
-Hopefully msntauth and Squid prove to be a valuable auditing combination.
-Feel free to send me success or problem stories.
+A future improvement may be to cache accepted usernames and passwords,
+to reduce network authentication traffic, and improve the Squid response time.
 
 </BODY>
 </HTML>
diff -ruN squid-2.5.STABLE5/helpers/basic_auth/Makefile.in squid-2.5.STABLE6/helpers/basic_auth/Makefile.in
--- squid-2.5.STABLE5/helpers/basic_auth/Makefile.in	Tue Feb 11 19:02:10 2003
+++ squid-2.5.STABLE6/helpers/basic_auth/Makefile.in	Tue Jun  8 05:37:11 2004
@@ -15,7 +15,7 @@
 
 #  Makefile for storage modules in the Squid Object Cache server
 #
-#  $Id: Makefile.in,v 1.7.2.8 2003/02/12 02:02:10 hno Exp $
+#  $Id: Makefile.in,v 1.7.2.10 2004/06/08 11:37:11 hno Exp $
 #
 
 SHELL = @SHELL@
@@ -84,6 +84,7 @@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 LIBDLMALLOC = @LIBDLMALLOC@
 LIBREGEX = @LIBREGEX@
+LIBSASL = @LIBSASL@
 LIB_MALLOC = @LIB_MALLOC@
 LN = @LN@
 LN_S = @LN_S@
@@ -94,6 +95,7 @@
 OBJEXT = @OBJEXT@
 PACKAGE = @PACKAGE@
 PERL = @PERL@
+PKGCONFIG = @PKGCONFIG@
 RANLIB = @RANLIB@
 REGEXLIB = @REGEXLIB@
 REPL_LIBS = @REPL_LIBS@
diff -ruN squid-2.5.STABLE5/helpers/basic_auth/NCSA/Makefile.in squid-2.5.STABLE6/helpers/basic_auth/NCSA/Makefile.in
--- squid-2.5.STABLE5/helpers/basic_auth/NCSA/Makefile.in	Tue Feb 11 19:02:22 2003
+++ squid-2.5.STABLE6/helpers/basic_auth/NCSA/Makefile.in	Tue Jun  8 05:37:12 2004
@@ -16,7 +16,7 @@
 #
 #  Makefile for the Squid Object Cache server
 #
-#  $Id: Makefile.in,v 1.8.2.7 2003/02/12 02:02:22 hno Exp $
+#  $Id: Makefile.in,v 1.8.2.9 2004/06/08 11:37:12 hno Exp $
 #
 #  Uncomment and customize the following to suit your needs:
 #
@@ -87,6 +87,7 @@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 LIBDLMALLOC = @LIBDLMALLOC@
 LIBREGEX = @LIBREGEX@
+LIBSASL = @LIBSASL@
 LIB_MALLOC = @LIB_MALLOC@
 LN = @LN@
 LN_S = @LN_S@
@@ -97,6 +98,7 @@
 OBJEXT = @OBJEXT@
 PACKAGE = @PACKAGE@
 PERL = @PERL@
+PKGCONFIG = @PKGCONFIG@
 RANLIB = @RANLIB@
 REGEXLIB = @REGEXLIB@
 REPL_LIBS = @REPL_LIBS@
diff -ruN squid-2.5.STABLE5/helpers/basic_auth/PAM/Makefile.in squid-2.5.STABLE6/helpers/basic_auth/PAM/Makefile.in
--- squid-2.5.STABLE5/helpers/basic_auth/PAM/Makefile.in	Tue Feb 11 19:02:23 2003
+++ squid-2.5.STABLE6/helpers/basic_auth/PAM/Makefile.in	Tue Jun  8 05:37:12 2004
@@ -16,7 +16,7 @@
 #
 #  Makefile for the Squid PAM authentication helper
 #
-#  $Id: Makefile.in,v 1.7.2.9 2003/02/12 02:02:23 hno Exp $
+#  $Id: Makefile.in,v 1.7.2.11 2004/06/08 11:37:12 hno Exp $
 #
 #  Uncomment and customize the following to suit your needs:
 #
@@ -87,6 +87,7 @@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 LIBDLMALLOC = @LIBDLMALLOC@
 LIBREGEX = @LIBREGEX@
+LIBSASL = @LIBSASL@
 LIB_MALLOC = @LIB_MALLOC@
 LN = @LN@
 LN_S = @LN_S@
@@ -97,6 +98,7 @@
 OBJEXT = @OBJEXT@
 PACKAGE = @PACKAGE@
 PERL = @PERL@
+PKGCONFIG = @PKGCONFIG@
 RANLIB = @RANLIB@
 REGEXLIB = @REGEXLIB@
 REPL_LIBS = @REPL_LIBS@
diff -ruN squid-2.5.STABLE5/helpers/basic_auth/SASL/Makefile.am squid-2.5.STABLE6/helpers/basic_auth/SASL/Makefile.am
--- squid-2.5.STABLE5/helpers/basic_auth/SASL/Makefile.am	Sun Aug 11 19:13:41 2002
+++ squid-2.5.STABLE6/helpers/basic_auth/SASL/Makefile.am	Tue Jun  8 05:35:22 2004
@@ -1,7 +1,7 @@
 #
 #  Makefile for the Squid SASL authentication helper
 #
-#  $Id: Makefile.am,v 1.1.2.3 2002/08/12 01:13:41 hno Exp $
+#  $Id: Makefile.am,v 1.1.2.4 2004/06/08 11:35:22 hno Exp $
 #
 #  Uncomment and customize the following to suit your needs:
 #
@@ -9,5 +9,5 @@
 INCLUDES	= -I$(top_srcdir)/include
 
 libexec_PROGRAMS	= sasl_auth
-LDADD			= -L$(top_builddir)/lib -lmiscutil -lsasl $(XTRA_LIBS)
+LDADD			= -L$(top_builddir)/lib -lmiscutil $(LIBSASL) $(XTRA_LIBS)
 EXTRA_DIST		= squid_sasl_auth squid_sasl_auth.conf
diff -ruN squid-2.5.STABLE5/helpers/basic_auth/SASL/Makefile.in squid-2.5.STABLE6/helpers/basic_auth/SASL/Makefile.in
--- squid-2.5.STABLE5/helpers/basic_auth/SASL/Makefile.in	Tue Feb 11 19:02:25 2003
+++ squid-2.5.STABLE6/helpers/basic_auth/SASL/Makefile.in	Tue Jun  8 05:37:15 2004
@@ -16,7 +16,7 @@
 #
 #  Makefile for the Squid SASL authentication helper
 #
-#  $Id: Makefile.in,v 1.1.2.13 2003/02/12 02:02:25 hno Exp $
+#  $Id: Makefile.in,v 1.1.2.15 2004/06/08 11:37:15 hno Exp $
 #
 #  Uncomment and customize the following to suit your needs:
 #
@@ -87,6 +87,7 @@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 LIBDLMALLOC = @LIBDLMALLOC@
 LIBREGEX = @LIBREGEX@
+LIBSASL = @LIBSASL@
 LIB_MALLOC = @LIB_MALLOC@
 LN = @LN@
 LN_S = @LN_S@
@@ -97,6 +98,7 @@
 OBJEXT = @OBJEXT@
 PACKAGE = @PACKAGE@
 PERL = @PERL@
+PKGCONFIG = @PKGCONFIG@
 RANLIB = @RANLIB@
 REGEXLIB = @REGEXLIB@
 REPL_LIBS = @REPL_LIBS@
@@ -123,7 +125,7 @@
 INCLUDES = -I$(top_srcdir)/include
 
 libexec_PROGRAMS = sasl_auth
-LDADD = -L$(top_builddir)/lib -lmiscutil -lsasl $(XTRA_LIBS)
+LDADD = -L$(top_builddir)/lib -lmiscutil $(LIBSASL) $(XTRA_LIBS)
 EXTRA_DIST = squid_sasl_auth squid_sasl_auth.conf
 subdir = helpers/basic_auth/SASL
 mkinstalldirs = $(SHELL) $(top_srcdir)/cfgaux/mkinstalldirs
diff -ruN squid-2.5.STABLE5/helpers/basic_auth/SASL/sasl_auth.c squid-2.5.STABLE6/helpers/basic_auth/SASL/sasl_auth.c
--- squid-2.5.STABLE5/helpers/basic_auth/SASL/sasl_auth.c	Mon Aug 12 10:58:31 2002
+++ squid-2.5.STABLE6/helpers/basic_auth/SASL/sasl_auth.c	Tue Jun  8 05:35:22 2004
@@ -1,5 +1,5 @@
 /*
- * $Id: sasl_auth.c,v 1.1.2.4 2002/08/12 16:58:31 hno Exp $
+ * $Id: sasl_auth.c,v 1.1.2.5 2004/06/08 11:35:22 hno Exp $
  *
  * SASL authenticator module for Squid.
  * Copyright (C) 2002 Ian Castle <ian.castle@coldcomfortfarm.net>
@@ -23,9 +23,9 @@
  * This program authenticates users against using cyrus-sasl
  *
  * Compile this program with: gcc -Wall -o sasl_auth sasl_auth.c -lsasl
+ *             or with SASL2: gcc -Wall -o sasl_auth sasl_auth.c -lsasl2
  *
  */
-#include <sasl.h>
 #include <stdio.h>
 #include <errno.h>
 #include <stdlib.h>
@@ -33,6 +33,12 @@
 
 #include "util.h"
 
+#ifdef HAVE_SASL_SASL_H
+#include <sasl/sasl.h>
+#else
+#include <sasl.h>
+#endif
+
 #define APP_NAME_SASL	"squid_sasl_auth"
 
 int
@@ -40,7 +46,9 @@
 {
 	char line[8192];
 	char *username, *password;
+#if SASL_VERSION_MAJOR < 2
 	const char *errstr;
+#endif
 
 	int rc;
         sasl_conn_t *conn = NULL;
@@ -56,7 +64,11 @@
 		return 1;
 	}
 
+	#if SASL_VERSION_MAJOR < 2
 	rc = sasl_server_new( APP_NAME_SASL, NULL, NULL, NULL, 0, &conn );
+	#else
+	rc = sasl_server_new( APP_NAME_SASL, NULL, NULL, NULL, NULL, NULL, 0, &conn );
+	#endif
 
 	if ( rc != SASL_OK ) {
 		fprintf( stderr, "error %d %s\n", rc, sasl_errstring(rc, NULL, NULL ));
@@ -84,15 +96,21 @@
 		rfc1738_unescape(username);
 		rfc1738_unescape(password);
 
+		#if SASL_VERSION_MAJOR < 2
 		rc = sasl_checkpass(conn, username, strlen(username), password, strlen(password), &errstr);
+		#else
+		rc = sasl_checkpass(conn, username, strlen(username), password, strlen(password));
+		#endif
 
 		if ( rc != SASL_OK ) {
+			#if SASL_VERSION_MAJOR < 2
 			if ( errstr ) {
 				fprintf( stderr, "errstr %s\n", errstr );
 			}
 			if ( rc != SASL_BADAUTH ) {
 				fprintf( stderr, "error %d %s\n", rc, sasl_errstring(rc, NULL, NULL ));
 			}
+			#endif
 			fprintf( stdout, "ERR\n" );
 		}
 		else {
diff -ruN squid-2.5.STABLE5/helpers/basic_auth/SMB/Makefile.in squid-2.5.STABLE6/helpers/basic_auth/SMB/Makefile.in
--- squid-2.5.STABLE5/helpers/basic_auth/SMB/Makefile.in	Tue Feb 11 19:02:25 2003
+++ squid-2.5.STABLE6/helpers/basic_auth/SMB/Makefile.in	Tue Jun  8 05:37:15 2004
@@ -16,7 +16,7 @@
 #
 #  Makefile for the Squid Object Cache server
 #
-#  $Id: Makefile.in,v 1.7.2.9 2003/02/12 02:02:25 hno Exp $
+#  $Id: Makefile.in,v 1.7.2.11 2004/06/08 11:37:15 hno Exp $
 #
 #  Uncomment and customize the following to suit your needs:
 #
@@ -92,6 +92,7 @@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 LIBDLMALLOC = @LIBDLMALLOC@
 LIBREGEX = @LIBREGEX@
+LIBSASL = @LIBSASL@
 LIB_MALLOC = @LIB_MALLOC@
 LN = @LN@
 LN_S = @LN_S@
@@ -102,6 +103,7 @@
 OBJEXT = @OBJEXT@
 PACKAGE = @PACKAGE@
 PERL = @PERL@
+PKGCONFIG = @PKGCONFIG@
 RANLIB = @RANLIB@
 REGEXLIB = @REGEXLIB@
 REPL_LIBS = @REPL_LIBS@
diff -ruN squid-2.5.STABLE5/helpers/basic_auth/YP/Makefile.in squid-2.5.STABLE6/helpers/basic_auth/YP/Makefile.in
--- squid-2.5.STABLE5/helpers/basic_auth/YP/Makefile.in	Tue Feb 11 19:02:25 2003
+++ squid-2.5.STABLE6/helpers/basic_auth/YP/Makefile.in	Tue Jun  8 05:37:16 2004
@@ -16,7 +16,7 @@
 #
 #  Makefile for the Squid Object Cache server
 #
-#  $Id: Makefile.in,v 1.9.2.8 2003/02/12 02:02:25 hno Exp $
+#  $Id: Makefile.in,v 1.9.2.10 2004/06/08 11:37:16 hno Exp $
 #
 #
 
@@ -86,6 +86,7 @@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 LIBDLMALLOC = @LIBDLMALLOC@
 LIBREGEX = @LIBREGEX@
+LIBSASL = @LIBSASL@
 LIB_MALLOC = @LIB_MALLOC@
 LN = @LN@
 LN_S = @LN_S@
@@ -96,6 +97,7 @@
 OBJEXT = @OBJEXT@
 PACKAGE = @PACKAGE@
 PERL = @PERL@
+PKGCONFIG = @PKGCONFIG@
 RANLIB = @RANLIB@
 REGEXLIB = @REGEXLIB@
 REPL_LIBS = @REPL_LIBS@
diff -ruN squid-2.5.STABLE5/helpers/basic_auth/getpwnam/Makefile.in squid-2.5.STABLE6/helpers/basic_auth/getpwnam/Makefile.in
--- squid-2.5.STABLE5/helpers/basic_auth/getpwnam/Makefile.in	Tue Feb 11 19:02:27 2003
+++ squid-2.5.STABLE6/helpers/basic_auth/getpwnam/Makefile.in	Tue Jun  8 05:37:16 2004
@@ -16,7 +16,7 @@
 #
 #  Makefile for the Squid Object Cache server
 #
-#  $Id: Makefile.in,v 1.8.2.7 2003/02/12 02:02:27 hno Exp $
+#  $Id: Makefile.in,v 1.8.2.9 2004/06/08 11:37:16 hno Exp $
 #
 #  Uncomment and customize the following to suit your needs:
 #
@@ -87,6 +87,7 @@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 LIBDLMALLOC = @LIBDLMALLOC@
 LIBREGEX = @LIBREGEX@
+LIBSASL = @LIBSASL@
 LIB_MALLOC = @LIB_MALLOC@
 LN = @LN@
 LN_S = @LN_S@
@@ -97,6 +98,7 @@
 OBJEXT = @OBJEXT@
 PACKAGE = @PACKAGE@
 PERL = @PERL@
+PKGCONFIG = @PKGCONFIG@
 RANLIB = @RANLIB@
 REGEXLIB = @REGEXLIB@
 REPL_LIBS = @REPL_LIBS@
diff -ruN squid-2.5.STABLE5/helpers/basic_auth/multi-domain-NTLM/Makefile.in squid-2.5.STABLE6/helpers/basic_auth/multi-domain-NTLM/Makefile.in
--- squid-2.5.STABLE5/helpers/basic_auth/multi-domain-NTLM/Makefile.in	Tue Feb 11 19:02:27 2003
+++ squid-2.5.STABLE6/helpers/basic_auth/multi-domain-NTLM/Makefile.in	Tue Jun  8 05:37:16 2004
@@ -16,7 +16,7 @@
 #
 #  Makefile for the Squid Object Cache server
 #
-#  $Id: Makefile.in,v 1.5.2.8 2003/02/12 02:02:27 hno Exp $
+#  $Id: Makefile.in,v 1.5.2.10 2004/06/08 11:37:16 hno Exp $
 #
 #  Uncomment and customize the following to suit your needs:
 #
@@ -87,6 +87,7 @@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 LIBDLMALLOC = @LIBDLMALLOC@
 LIBREGEX = @LIBREGEX@
+LIBSASL = @LIBSASL@
 LIB_MALLOC = @LIB_MALLOC@
 LN = @LN@
 LN_S = @LN_S@
@@ -97,6 +98,7 @@
 OBJEXT = @OBJEXT@
 PACKAGE = @PACKAGE@
 PERL = @PERL@
+PKGCONFIG = @PKGCONFIG@
 RANLIB = @RANLIB@
 REGEXLIB = @REGEXLIB@
 REPL_LIBS = @REPL_LIBS@
diff -ruN squid-2.5.STABLE5/helpers/basic_auth/winbind/Makefile.in squid-2.5.STABLE6/helpers/basic_auth/winbind/Makefile.in
--- squid-2.5.STABLE5/helpers/basic_auth/winbind/Makefile.in	Tue Feb 11 19:02:30 2003
+++ squid-2.5.STABLE6/helpers/basic_auth/winbind/Makefile.in	Tue Jun  8 05:37:17 2004
@@ -16,7 +16,7 @@
 #
 #  Makefile for the Squid Object Cache server
 #
-#  $Id: Makefile.in,v 1.1.2.9 2003/02/12 02:02:30 hno Exp $
+#  $Id: Makefile.in,v 1.1.2.11 2004/06/08 11:37:17 hno Exp $
 #
 
 SHELL = @SHELL@
@@ -85,6 +85,7 @@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 LIBDLMALLOC = @LIBDLMALLOC@
 LIBREGEX = @LIBREGEX@
+LIBSASL = @LIBSASL@
 LIB_MALLOC = @LIB_MALLOC@
 LN = @LN@
 LN_S = @LN_S@
@@ -95,6 +96,7 @@
 OBJEXT = @OBJEXT@
 PACKAGE = @PACKAGE@
 PERL = @PERL@
+PKGCONFIG = @PKGCONFIG@
 RANLIB = @RANLIB@
 REGEXLIB = @REGEXLIB@
 REPL_LIBS = @REPL_LIBS@
diff -ruN squid-2.5.STABLE5/helpers/digest_auth/Makefile.in squid-2.5.STABLE6/helpers/digest_auth/Makefile.in
--- squid-2.5.STABLE5/helpers/digest_auth/Makefile.in	Tue Feb 11 19:02:32 2003
+++ squid-2.5.STABLE6/helpers/digest_auth/Makefile.in	Tue Jun  8 05:37:18 2004
@@ -15,7 +15,7 @@
 
 #  Makefile for digest auth helpers in the Squid Object Cache server
 #
-#  $Id: Makefile.in,v 1.6.2.6 2003/02/12 02:02:32 hno Exp $
+#  $Id: Makefile.in,v 1.6.2.8 2004/06/08 11:37:18 hno Exp $
 #
 
 SHELL = @SHELL@
@@ -84,6 +84,7 @@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 LIBDLMALLOC = @LIBDLMALLOC@
 LIBREGEX = @LIBREGEX@
+LIBSASL = @LIBSASL@
 LIB_MALLOC = @LIB_MALLOC@
 LN = @LN@
 LN_S = @LN_S@
@@ -94,6 +95,7 @@
 OBJEXT = @OBJEXT@
 PACKAGE = @PACKAGE@
 PERL = @PERL@
+PKGCONFIG = @PKGCONFIG@
 RANLIB = @RANLIB@
 REGEXLIB = @REGEXLIB@
 REPL_LIBS = @REPL_LIBS@
diff -ruN squid-2.5.STABLE5/helpers/digest_auth/password/Makefile.in squid-2.5.STABLE6/helpers/digest_auth/password/Makefile.in
--- squid-2.5.STABLE5/helpers/digest_auth/password/Makefile.in	Tue Feb 11 19:02:35 2003
+++ squid-2.5.STABLE6/helpers/digest_auth/password/Makefile.in	Tue Jun  8 05:37:18 2004
@@ -16,7 +16,7 @@
 #
 #  Makefile for the Squid Object Cache server
 #
-#  $Id: Makefile.in,v 1.8.2.6 2003/02/12 02:02:35 hno Exp $
+#  $Id: Makefile.in,v 1.8.2.8 2004/06/08 11:37:18 hno Exp $
 #
 #  Uncomment and customize the following to suit your needs:
 #
@@ -87,6 +87,7 @@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 LIBDLMALLOC = @LIBDLMALLOC@
 LIBREGEX = @LIBREGEX@
+LIBSASL = @LIBSASL@
 LIB_MALLOC = @LIB_MALLOC@
 LN = @LN@
 LN_S = @LN_S@
@@ -97,6 +98,7 @@
 OBJEXT = @OBJEXT@
 PACKAGE = @PACKAGE@
 PERL = @PERL@
+PKGCONFIG = @PKGCONFIG@
 RANLIB = @RANLIB@
 REGEXLIB = @REGEXLIB@
 REPL_LIBS = @REPL_LIBS@
diff -ruN squid-2.5.STABLE5/helpers/external_acl/Makefile.in squid-2.5.STABLE6/helpers/external_acl/Makefile.in
--- squid-2.5.STABLE5/helpers/external_acl/Makefile.in	Tue Feb 11 19:02:37 2003
+++ squid-2.5.STABLE6/helpers/external_acl/Makefile.in	Tue Jun  8 05:37:18 2004
@@ -15,7 +15,7 @@
 
 #  Makefile for storage modules in the Squid Object Cache server
 #
-#  $Id: Makefile.in,v 1.2.2.3 2003/02/12 02:02:37 hno Exp $
+#  $Id: Makefile.in,v 1.2.2.5 2004/06/08 11:37:18 hno Exp $
 #
 
 SHELL = @SHELL@
@@ -84,6 +84,7 @@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 LIBDLMALLOC = @LIBDLMALLOC@
 LIBREGEX = @LIBREGEX@
+LIBSASL = @LIBSASL@
 LIB_MALLOC = @LIB_MALLOC@
 LN = @LN@
 LN_S = @LN_S@
@@ -94,6 +95,7 @@
 OBJEXT = @OBJEXT@
 PACKAGE = @PACKAGE@
 PERL = @PERL@
+PKGCONFIG = @PKGCONFIG@
 RANLIB = @RANLIB@
 REGEXLIB = @REGEXLIB@
 REPL_LIBS = @REPL_LIBS@
diff -ruN squid-2.5.STABLE5/helpers/external_acl/ip_user/Makefile.in squid-2.5.STABLE6/helpers/external_acl/ip_user/Makefile.in
--- squid-2.5.STABLE5/helpers/external_acl/ip_user/Makefile.in	Tue Feb 11 19:02:38 2003
+++ squid-2.5.STABLE6/helpers/external_acl/ip_user/Makefile.in	Tue Jun  8 05:37:18 2004
@@ -16,7 +16,7 @@
 #
 #  Makefile for the ip_user external_acl helper by Rodrigo Campos
 #
-#  $Id: Makefile.in,v 1.1.2.4 2003/02/12 02:02:38 hno Exp $
+#  $Id: Makefile.in,v 1.1.2.6 2004/06/08 11:37:18 hno Exp $
 #
 #  Uncomment and customize the following to suit your needs:
 #
@@ -87,6 +87,7 @@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 LIBDLMALLOC = @LIBDLMALLOC@
 LIBREGEX = @LIBREGEX@
+LIBSASL = @LIBSASL@
 LIB_MALLOC = @LIB_MALLOC@
 LN = @LN@
 LN_S = @LN_S@
@@ -97,6 +98,7 @@
 OBJEXT = @OBJEXT@
 PACKAGE = @PACKAGE@
 PERL = @PERL@
+PKGCONFIG = @PKGCONFIG@
 RANLIB = @RANLIB@
 REGEXLIB = @REGEXLIB@
 REPL_LIBS = @REPL_LIBS@
diff -ruN squid-2.5.STABLE5/helpers/external_acl/ldap_group/Makefile.in squid-2.5.STABLE6/helpers/external_acl/ldap_group/Makefile.in
--- squid-2.5.STABLE5/helpers/external_acl/ldap_group/Makefile.in	Wed Nov 19 17:43:41 2003
+++ squid-2.5.STABLE6/helpers/external_acl/ldap_group/Makefile.in	Tue Jun  8 05:37:19 2004
@@ -16,7 +16,7 @@
 #
 #  Makefile for the Squid LDAP authentication helper
 #
-#  $Id: Makefile.in,v 1.1.2.6 2003/11/20 00:43:41 hno Exp $
+#  $Id: Makefile.in,v 1.1.2.8 2004/06/08 11:37:19 hno Exp $
 #
 #  Uncomment and customize the following to suit your needs:
 #
@@ -87,6 +87,7 @@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 LIBDLMALLOC = @LIBDLMALLOC@
 LIBREGEX = @LIBREGEX@
+LIBSASL = @LIBSASL@
 LIB_MALLOC = @LIB_MALLOC@
 LN = @LN@
 LN_S = @LN_S@
@@ -97,6 +98,7 @@
 OBJEXT = @OBJEXT@
 PACKAGE = @PACKAGE@
 PERL = @PERL@
+PKGCONFIG = @PKGCONFIG@
 RANLIB = @RANLIB@
 REGEXLIB = @REGEXLIB@
 REPL_LIBS = @REPL_LIBS@
diff -ruN squid-2.5.STABLE5/helpers/external_acl/ldap_group/squid_ldap_group.8 squid-2.5.STABLE6/helpers/external_acl/ldap_group/squid_ldap_group.8
--- squid-2.5.STABLE5/helpers/external_acl/ldap_group/squid_ldap_group.8	Wed Nov 19 17:41:37 2003
+++ squid-2.5.STABLE6/helpers/external_acl/ldap_group/squid_ldap_group.8	Tue Mar  2 02:13:29 2004
@@ -138,6 +138,12 @@
 .BI -S
 Strip NT domain name component from user names (/ or \\ separated)
 .
+.TP
+.BU -d
+Debug mode where each step taken will get reported in detail.
+Useful for understanding what goes wrong if the results is
+not what is expected.
+
 .SH SQUID CONFIGURATION
 .
 This helper is intended to be used as a external_acl_type helper from
diff -ruN squid-2.5.STABLE5/helpers/external_acl/ldap_group/squid_ldap_group.c squid-2.5.STABLE6/helpers/external_acl/ldap_group/squid_ldap_group.c
--- squid-2.5.STABLE5/helpers/external_acl/ldap_group/squid_ldap_group.c	Mon Feb  9 10:04:56 2004
+++ squid-2.5.STABLE6/helpers/external_acl/ldap_group/squid_ldap_group.c	Tue Mar  2 02:13:29 2004
@@ -229,6 +229,7 @@
 	case 'R':
 	case 'z':
 	case 'Z':
+	case 'd':
 	case 'g':
 	case 'S':
 	    break;
@@ -558,7 +559,7 @@
 	    size -= 3;
 	    if (size > 0) {
 		*escaped++ = '\\';
-		snprintf(escaped, 3, "%02x", (int)*src++);
+		snprintf(escaped, 3, "%02x", (unsigned char)*src++);
 		escaped+=2;
 	    }
 	    break;
diff -ruN squid-2.5.STABLE5/helpers/external_acl/unix_group/Makefile.in squid-2.5.STABLE6/helpers/external_acl/unix_group/Makefile.in
--- squid-2.5.STABLE5/helpers/external_acl/unix_group/Makefile.in	Tue Feb 11 19:02:44 2003
+++ squid-2.5.STABLE6/helpers/external_acl/unix_group/Makefile.in	Tue Jun  8 05:37:19 2004
@@ -16,7 +16,7 @@
 #
 #  Makefile for the Squid LDAP authentication helper
 #
-#  $Id: Makefile.in,v 1.1.2.4 2003/02/12 02:02:44 hno Exp $
+#  $Id: Makefile.in,v 1.1.2.6 2004/06/08 11:37:19 hno Exp $
 #
 #  Uncomment and customize the following to suit your needs:
 #
@@ -87,6 +87,7 @@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 LIBDLMALLOC = @LIBDLMALLOC@
 LIBREGEX = @LIBREGEX@
+LIBSASL = @LIBSASL@
 LIB_MALLOC = @LIB_MALLOC@
 LN = @LN@
 LN_S = @LN_S@
@@ -97,6 +98,7 @@
 OBJEXT = @OBJEXT@
 PACKAGE = @PACKAGE@
 PERL = @PERL@
+PKGCONFIG = @PKGCONFIG@
 RANLIB = @RANLIB@
 REGEXLIB = @REGEXLIB@
 REPL_LIBS = @REPL_LIBS@
diff -ruN squid-2.5.STABLE5/helpers/external_acl/wbinfo_group/Makefile.in squid-2.5.STABLE6/helpers/external_acl/wbinfo_group/Makefile.in
--- squid-2.5.STABLE5/helpers/external_acl/wbinfo_group/Makefile.in	Tue Feb 11 19:02:48 2003
+++ squid-2.5.STABLE6/helpers/external_acl/wbinfo_group/Makefile.in	Tue Jun  8 05:37:19 2004
@@ -16,7 +16,7 @@
 #
 #  Makefile for the Squid LDAP authentication helper
 #
-#  $Id: Makefile.in,v 1.1.2.3 2003/02/12 02:02:48 hno Exp $
+#  $Id: Makefile.in,v 1.1.2.5 2004/06/08 11:37:19 hno Exp $
 #
 #  Uncomment and customize the following to suit your needs:
 #
@@ -87,6 +87,7 @@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 LIBDLMALLOC = @LIBDLMALLOC@
 LIBREGEX = @LIBREGEX@
+LIBSASL = @LIBSASL@
 LIB_MALLOC = @LIB_MALLOC@
 LN = @LN@
 LN_S = @LN_S@
@@ -97,6 +98,7 @@
 OBJEXT = @OBJEXT@
 PACKAGE = @PACKAGE@
 PERL = @PERL@
+PKGCONFIG = @PKGCONFIG@
 RANLIB = @RANLIB@
 REGEXLIB = @REGEXLIB@
 REPL_LIBS = @REPL_LIBS@
diff -ruN squid-2.5.STABLE5/helpers/external_acl/winbind_group/Makefile.in squid-2.5.STABLE6/helpers/external_acl/winbind_group/Makefile.in
--- squid-2.5.STABLE5/helpers/external_acl/winbind_group/Makefile.in	Fri May 16 18:16:14 2003
+++ squid-2.5.STABLE6/helpers/external_acl/winbind_group/Makefile.in	Tue Jun  8 05:37:20 2004
@@ -16,7 +16,7 @@
 #
 #  Makefile for the wb_group external_acl helper
 #
-#  $Id: Makefile.in,v 1.1.2.5 2003/05/17 00:16:14 hno Exp $
+#  $Id: Makefile.in,v 1.1.2.7 2004/06/08 11:37:20 hno Exp $
 #
 
 SHELL = @SHELL@
@@ -85,6 +85,7 @@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 LIBDLMALLOC = @LIBDLMALLOC@
 LIBREGEX = @LIBREGEX@
+LIBSASL = @LIBSASL@
 LIB_MALLOC = @LIB_MALLOC@
 LN = @LN@
 LN_S = @LN_S@
@@ -95,6 +96,7 @@
 OBJEXT = @OBJEXT@
 PACKAGE = @PACKAGE@
 PERL = @PERL@
+PKGCONFIG = @PKGCONFIG@
 RANLIB = @RANLIB@
 REGEXLIB = @REGEXLIB@
 REPL_LIBS = @REPL_LIBS@
diff -ruN squid-2.5.STABLE5/helpers/ntlm_auth/Makefile.in squid-2.5.STABLE6/helpers/ntlm_auth/Makefile.in
--- squid-2.5.STABLE5/helpers/ntlm_auth/Makefile.in	Tue Feb 11 19:02:52 2003
+++ squid-2.5.STABLE6/helpers/ntlm_auth/Makefile.in	Tue Jun  8 05:37:20 2004
@@ -15,7 +15,7 @@
 
 #  Makefile for storage modules in the Squid Object Cache server
 #
-#  $Id: Makefile.in,v 1.7.2.8 2003/02/12 02:02:52 hno Exp $
+#  $Id: Makefile.in,v 1.7.2.10 2004/06/08 11:37:20 hno Exp $
 #
 
 SHELL = @SHELL@
@@ -84,6 +84,7 @@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 LIBDLMALLOC = @LIBDLMALLOC@
 LIBREGEX = @LIBREGEX@
+LIBSASL = @LIBSASL@
 LIB_MALLOC = @LIB_MALLOC@
 LN = @LN@
 LN_S = @LN_S@
@@ -94,6 +95,7 @@
 OBJEXT = @OBJEXT@
 PACKAGE = @PACKAGE@
 PERL = @PERL@
+PKGCONFIG = @PKGCONFIG@
 RANLIB = @RANLIB@
 REGEXLIB = @REGEXLIB@
 REPL_LIBS = @REPL_LIBS@
diff -ruN squid-2.5.STABLE5/helpers/ntlm_auth/SMB/Makefile.in squid-2.5.STABLE6/helpers/ntlm_auth/SMB/Makefile.in
--- squid-2.5.STABLE5/helpers/ntlm_auth/SMB/Makefile.in	Tue Feb 11 19:02:56 2003
+++ squid-2.5.STABLE6/helpers/ntlm_auth/SMB/Makefile.in	Tue Jun  8 05:37:20 2004
@@ -16,7 +16,7 @@
 #
 #  Makefile for the Squid Object Cache server
 #
-#  $Id: Makefile.in,v 1.8.2.7 2003/02/12 02:02:56 hno Exp $
+#  $Id: Makefile.in,v 1.8.2.9 2004/06/08 11:37:20 hno Exp $
 #
 
 SHELL = @SHELL@
@@ -85,6 +85,7 @@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 LIBDLMALLOC = @LIBDLMALLOC@
 LIBREGEX = @LIBREGEX@
+LIBSASL = @LIBSASL@
 LIB_MALLOC = @LIB_MALLOC@
 LN = @LN@
 LN_S = @LN_S@
@@ -95,6 +96,7 @@
 OBJEXT = @OBJEXT@
 PACKAGE = @PACKAGE@
 PERL = @PERL@
+PKGCONFIG = @PKGCONFIG@
 RANLIB = @RANLIB@
 REGEXLIB = @REGEXLIB@
 REPL_LIBS = @REPL_LIBS@
diff -ruN squid-2.5.STABLE5/helpers/ntlm_auth/SMB/libntlmssp.c squid-2.5.STABLE6/helpers/ntlm_auth/SMB/libntlmssp.c
--- squid-2.5.STABLE5/helpers/ntlm_auth/SMB/libntlmssp.c	Fri Nov 30 02:50:28 2001
+++ squid-2.5.STABLE6/helpers/ntlm_auth/SMB/libntlmssp.c	Fri Jun 11 10:07:55 2004
@@ -161,7 +161,10 @@
 #define min(A,B) (A<B?A:B)
 
 int ntlm_errno;
-static char credentials[1024];	/* we can afford to waste */
+#define MAX_USERNAME_LEN 255
+#define MAX_DOMAIN_LEN 255
+#define MAX_PASSWD_LEN 31
+static char credentials[MAX_USERNAME_LEN+MAX_DOMAIN_LEN+2];	/* we can afford to waste */
 
 
 /* Fetches the user's credentials from the challenge.
@@ -197,7 +200,7 @@
 ntlm_check_auth(ntlm_authenticate * auth, int auth_length)
 {
     int rv;
-    char pass[25] /*, encrypted_pass[40] */;
+    char pass[MAX_PASSWD_LEN+1];
     char *domain = credentials;
     char *user;
     lstring tmp;
@@ -215,6 +218,11 @@
 	ntlm_errno = NTLM_LOGON_ERROR;
 	return NULL;
     }
+    if (tmp.l > MAX_DOMAIN_LEN) {
+	debug("Domain string exceeds %d bytes, rejecting\n", MAX_DOMAIN_LEN);
+	ntlm_errno = NTLM_LOGON_ERROR;
+	return NULL;
+    }
     memcpy(domain, tmp.str, tmp.l);
     user = domain + tmp.l;
     *user++ = '\0';
@@ -226,20 +234,30 @@
 	ntlm_errno = NTLM_LOGON_ERROR;
 	return NULL;
     }
+    if (tmp.l > MAX_USERNAME_LEN) {
+	debug("Username string exceeds %d bytes, rejecting\n", MAX_USERNAME_LEN);
+	ntlm_errno = NTLM_LOGON_ERROR;
+	return NULL;
+    }
     memcpy(user, tmp.str, tmp.l);
     *(user + tmp.l) = '\0';
 
 		
-		/* Authenticating against the NT response doesn't seem to work... */
+    /* Authenticating against the NT response doesn't seem to work... */
     tmp = ntlm_fetch_string((char *) auth, auth_length, &auth->lmresponse);
     if (tmp.str == NULL || tmp.l == 0) {
 	fprintf(stderr, "No auth at all. Returning no-auth\n");
 	ntlm_errno = NTLM_LOGON_ERROR;
 	return NULL;
     }
-		
+    if (tmp.l > MAX_PASSWD_LEN) {
+	debug("Password string exceeds %d bytes, rejecting\n", MAX_PASSWD_LEN);
+	ntlm_errno = NTLM_LOGON_ERROR;
+	return NULL;
+    }
+
     memcpy(pass, tmp.str, tmp.l);
-    pass[25] = '\0';
+    pass[min(MAX_PASSWD_LEN,tmp.l)] = '\0';
 
 #if 1
 		debug ("Empty LM pass detection: user: '%s', ours:'%s', his: '%s'"
diff -ruN squid-2.5.STABLE5/helpers/ntlm_auth/SMB/smbval/Makefile.in squid-2.5.STABLE6/helpers/ntlm_auth/SMB/smbval/Makefile.in
--- squid-2.5.STABLE5/helpers/ntlm_auth/SMB/smbval/Makefile.in	Tue Feb 11 19:02:58 2003
+++ squid-2.5.STABLE6/helpers/ntlm_auth/SMB/smbval/Makefile.in	Tue Jun  8 05:37:20 2004
@@ -81,6 +81,7 @@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 LIBDLMALLOC = @LIBDLMALLOC@
 LIBREGEX = @LIBREGEX@
+LIBSASL = @LIBSASL@
 LIB_MALLOC = @LIB_MALLOC@
 LN = @LN@
 LN_S = @LN_S@
@@ -91,6 +92,7 @@
 OBJEXT = @OBJEXT@
 PACKAGE = @PACKAGE@
 PERL = @PERL@
+PKGCONFIG = @PKGCONFIG@
 RANLIB = @RANLIB@
 REGEXLIB = @REGEXLIB@
 REPL_LIBS = @REPL_LIBS@
diff -ruN squid-2.5.STABLE5/helpers/ntlm_auth/fakeauth/Makefile.in squid-2.5.STABLE6/helpers/ntlm_auth/fakeauth/Makefile.in
--- squid-2.5.STABLE5/helpers/ntlm_auth/fakeauth/Makefile.in	Tue Feb 11 19:02:58 2003
+++ squid-2.5.STABLE6/helpers/ntlm_auth/fakeauth/Makefile.in	Tue Jun  8 05:37:20 2004
@@ -16,7 +16,7 @@
 #
 #  Makefile for the Squid Object Cache server
 #
-#  $Id: Makefile.in,v 1.8.2.6 2003/02/12 02:02:58 hno Exp $
+#  $Id: Makefile.in,v 1.8.2.8 2004/06/08 11:37:20 hno Exp $
 #
 #  Uncomment and customize the following to suit your needs:
 #
@@ -87,6 +87,7 @@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 LIBDLMALLOC = @LIBDLMALLOC@
 LIBREGEX = @LIBREGEX@
+LIBSASL = @LIBSASL@
 LIB_MALLOC = @LIB_MALLOC@
 LN = @LN@
 LN_S = @LN_S@
@@ -97,6 +98,7 @@
 OBJEXT = @OBJEXT@
 PACKAGE = @PACKAGE@
 PERL = @PERL@
+PKGCONFIG = @PKGCONFIG@
 RANLIB = @RANLIB@
 REGEXLIB = @REGEXLIB@
 REPL_LIBS = @REPL_LIBS@
diff -ruN squid-2.5.STABLE5/helpers/ntlm_auth/no_check/Makefile.in squid-2.5.STABLE6/helpers/ntlm_auth/no_check/Makefile.in
--- squid-2.5.STABLE5/helpers/ntlm_auth/no_check/Makefile.in	Tue Feb 11 19:03:01 2003
+++ squid-2.5.STABLE6/helpers/ntlm_auth/no_check/Makefile.in	Tue Jun  8 05:37:21 2004
@@ -16,7 +16,7 @@
 #
 #  Makefile for the Squid Object Cache server
 #
-#  $Id: Makefile.in,v 1.8.2.8 2003/02/12 02:03:01 hno Exp $
+#  $Id: Makefile.in,v 1.8.2.10 2004/06/08 11:37:21 hno Exp $
 #
 #  Uncomment and customize the following to suit your needs:
 #
@@ -87,6 +87,7 @@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 LIBDLMALLOC = @LIBDLMALLOC@
 LIBREGEX = @LIBREGEX@
+LIBSASL = @LIBSASL@
 LIB_MALLOC = @LIB_MALLOC@
 LN = @LN@
 LN_S = @LN_S@
@@ -97,6 +98,7 @@
 OBJEXT = @OBJEXT@
 PACKAGE = @PACKAGE@
 PERL = @PERL@
+PKGCONFIG = @PKGCONFIG@
 RANLIB = @RANLIB@
 REGEXLIB = @REGEXLIB@
 REPL_LIBS = @REPL_LIBS@
diff -ruN squid-2.5.STABLE5/helpers/ntlm_auth/winbind/Makefile.in squid-2.5.STABLE6/helpers/ntlm_auth/winbind/Makefile.in
--- squid-2.5.STABLE5/helpers/ntlm_auth/winbind/Makefile.in	Tue Feb 11 19:03:06 2003
+++ squid-2.5.STABLE6/helpers/ntlm_auth/winbind/Makefile.in	Tue Jun  8 05:37:21 2004
@@ -16,7 +16,7 @@
 #
 #  Makefile for the Squid Object Cache server
 #
-#  $Id: Makefile.in,v 1.1.2.9 2003/02/12 02:03:06 hno Exp $
+#  $Id: Makefile.in,v 1.1.2.11 2004/06/08 11:37:21 hno Exp $
 #
 
 SHELL = @SHELL@
@@ -85,6 +85,7 @@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 LIBDLMALLOC = @LIBDLMALLOC@
 LIBREGEX = @LIBREGEX@
+LIBSASL = @LIBSASL@
 LIB_MALLOC = @LIB_MALLOC@
 LN = @LN@
 LN_S = @LN_S@
@@ -95,6 +96,7 @@
 OBJEXT = @OBJEXT@
 PACKAGE = @PACKAGE@
 PERL = @PERL@
+PKGCONFIG = @PKGCONFIG@
 RANLIB = @RANLIB@
 REGEXLIB = @REGEXLIB@
 REPL_LIBS = @REPL_LIBS@
diff -ruN squid-2.5.STABLE5/icons/Makefile.in squid-2.5.STABLE6/icons/Makefile.in
--- squid-2.5.STABLE5/icons/Makefile.in	Wed May 21 18:15:40 2003
+++ squid-2.5.STABLE6/icons/Makefile.in	Tue Jun  8 05:37:22 2004
@@ -13,7 +13,7 @@
 
 @SET_MAKE@
 
-# $Id: Makefile.in,v 1.21.2.8 2003/05/22 00:15:40 hno Exp $
+# $Id: Makefile.in,v 1.21.2.10 2004/06/08 11:37:22 hno Exp $
 #
 
 SHELL = @SHELL@
@@ -82,6 +82,7 @@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 LIBDLMALLOC = @LIBDLMALLOC@
 LIBREGEX = @LIBREGEX@
+LIBSASL = @LIBSASL@
 LIB_MALLOC = @LIB_MALLOC@
 LN = @LN@
 LN_S = @LN_S@
@@ -92,6 +93,7 @@
 OBJEXT = @OBJEXT@
 PACKAGE = @PACKAGE@
 PERL = @PERL@
+PKGCONFIG = @PKGCONFIG@
 RANLIB = @RANLIB@
 REGEXLIB = @REGEXLIB@
 REPL_LIBS = @REPL_LIBS@
diff -ruN squid-2.5.STABLE5/include/autoconf.h.in squid-2.5.STABLE6/include/autoconf.h.in
--- squid-2.5.STABLE5/include/autoconf.h.in	Fri Jan 17 18:46:33 2003
+++ squid-2.5.STABLE6/include/autoconf.h.in	Tue Jun  8 05:37:22 2004
@@ -307,6 +307,14 @@
 #undef HAVE_STRUCT_MALLINFO
 
 /*
+ * Some systems dont have va_copy */
+#undef HAVE_VA_COPY
+
+/*
+ * Some systems support __va_copy */
+#undef HAVE___VA_COPY
+
+/*
  * Do we want to use truncate(2) or unlink(2)?
  */
 #undef USE_TRUNCATE
@@ -719,6 +727,12 @@
 
 /* Define if you have the <resolv.h> header file.  */
 #undef HAVE_RESOLV_H
+
+/* Define if you have the <sasl.h> header file.  */
+#undef HAVE_SASL_H
+
+/* Define if you have the <sasl/sasl.h> header file.  */
+#undef HAVE_SASL_SASL_H
 
 /* Define if you have the <sched.h> header file.  */
 #undef HAVE_SCHED_H
diff -ruN squid-2.5.STABLE5/include/config.h squid-2.5.STABLE6/include/config.h
--- squid-2.5.STABLE5/include/config.h	Tue Nov 13 14:27:47 2001
+++ squid-2.5.STABLE6/include/config.h	Sat Apr 17 19:29:51 2004
@@ -1,5 +1,5 @@
 /*
- * $Id: config.h,v 1.4 2001/11/13 21:27:47 hno Exp $
+ * $Id: config.h,v 1.4.2.1 2004/04/18 01:29:51 hno Exp $
  *
  * AUTHOR: Duane Wessels
  *
@@ -163,6 +163,7 @@
 #define xisascii(x) isascii((unsigned char)x)
 #define xislower(x) islower((unsigned char)x)
 #define xisalpha(x) isalpha((unsigned char)x)
+#define xisgraph(x) isgraph((unsigned char)x)
 
 #if HAVE_RANDOM
 #define squid_random random
diff -ruN squid-2.5.STABLE5/include/version.h squid-2.5.STABLE6/include/version.h
--- squid-2.5.STABLE5/include/version.h	Sun Feb 29 15:30:21 2004
+++ squid-2.5.STABLE6/include/version.h	Thu Jul  8 17:44:39 2004
@@ -9,5 +9,5 @@
  */
 
 #ifndef SQUID_RELEASE_TIME
-#define SQUID_RELEASE_TIME 1078093818
+#define SQUID_RELEASE_TIME 1089330276
 #endif
diff -ruN squid-2.5.STABLE5/lib/Makefile.in squid-2.5.STABLE6/lib/Makefile.in
--- squid-2.5.STABLE5/lib/Makefile.in	Tue Feb 11 19:03:10 2003
+++ squid-2.5.STABLE6/lib/Makefile.in	Tue Jun  8 05:37:22 2004
@@ -14,7 +14,7 @@
 @SET_MAKE@
 
 #
-#  $Id: Makefile.in,v 1.57.2.5 2003/02/12 02:03:10 hno Exp $
+#  $Id: Makefile.in,v 1.57.2.7 2004/06/08 11:37:22 hno Exp $
 #
 
 SHELL = @SHELL@
@@ -83,6 +83,7 @@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 LIBDLMALLOC = @LIBDLMALLOC@
 LIBREGEX = @LIBREGEX@
+LIBSASL = @LIBSASL@
 LIB_MALLOC = @LIB_MALLOC@
 LN = @LN@
 LN_S = @LN_S@
@@ -93,6 +94,7 @@
 OBJEXT = @OBJEXT@
 PACKAGE = @PACKAGE@
 PERL = @PERL@
+PKGCONFIG = @PKGCONFIG@
 RANLIB = @RANLIB@
 REGEXLIB = @REGEXLIB@
 REPL_LIBS = @REPL_LIBS@
diff -ruN squid-2.5.STABLE5/lib/rfc1035.c squid-2.5.STABLE6/lib/rfc1035.c
--- squid-2.5.STABLE5/lib/rfc1035.c	Fri Apr 25 06:09:57 2003
+++ squid-2.5.STABLE6/lib/rfc1035.c	Sun Apr 11 03:14:52 2004
@@ -1,6 +1,6 @@
 
 /*
- * $Id: rfc1035.c,v 1.22.2.4 2003/04/25 12:09:57 hno Exp $
+ * $Id: rfc1035.c,v 1.22.2.5 2004/04/11 09:14:52 hno Exp $
  *
  * Low level DNS protocol routines
  * AUTHOR: Duane Wessels
@@ -337,7 +337,7 @@
 		break;
 	    if (len > (ns - no - 1))	/* label won't fit */
 		return 1;
-	    if ((*off) + len > sz)	/* message is too short */
+	    if ((*off) + len >= sz)	/* message is too short */
 		return 1;
 	    memcpy(name + no, buf + (*off), len);
 	    (*off) += len;
diff -ruN squid-2.5.STABLE5/scripts/Makefile.in squid-2.5.STABLE6/scripts/Makefile.in
--- squid-2.5.STABLE5/scripts/Makefile.in	Tue Feb 11 19:03:12 2003
+++ squid-2.5.STABLE6/scripts/Makefile.in	Tue Jun  8 05:37:22 2004
@@ -84,6 +84,7 @@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 LIBDLMALLOC = @LIBDLMALLOC@
 LIBREGEX = @LIBREGEX@
+LIBSASL = @LIBSASL@
 LIB_MALLOC = @LIB_MALLOC@
 LN = @LN@
 LN_S = @LN_S@
@@ -94,6 +95,7 @@
 OBJEXT = @OBJEXT@
 PACKAGE = @PACKAGE@
 PERL = @PERL@
+PKGCONFIG = @PKGCONFIG@
 RANLIB = @RANLIB@
 REGEXLIB = @REGEXLIB@
 REPL_LIBS = @REPL_LIBS@
diff -ruN squid-2.5.STABLE5/snmplib/Makefile.in squid-2.5.STABLE6/snmplib/Makefile.in
--- squid-2.5.STABLE5/snmplib/Makefile.in	Tue Feb 11 19:03:12 2003
+++ squid-2.5.STABLE6/snmplib/Makefile.in	Tue Jun  8 05:37:22 2004
@@ -79,6 +79,7 @@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 LIBDLMALLOC = @LIBDLMALLOC@
 LIBREGEX = @LIBREGEX@
+LIBSASL = @LIBSASL@
 LIB_MALLOC = @LIB_MALLOC@
 LN = @LN@
 LN_S = @LN_S@
@@ -89,6 +90,7 @@
 OBJEXT = @OBJEXT@
 PACKAGE = @PACKAGE@
 PERL = @PERL@
+PKGCONFIG = @PKGCONFIG@
 RANLIB = @RANLIB@
 REGEXLIB = @REGEXLIB@
 REPL_LIBS = @REPL_LIBS@
diff -ruN squid-2.5.STABLE5/src/Makefile.in squid-2.5.STABLE6/src/Makefile.in
--- squid-2.5.STABLE5/src/Makefile.in	Tue Feb 11 19:03:14 2003
+++ squid-2.5.STABLE6/src/Makefile.in	Tue Jun  8 05:37:22 2004
@@ -16,7 +16,7 @@
 #
 #  Makefile for the Squid Object Cache server
 #
-#  $Id: Makefile.in,v 1.225.2.12 2003/02/12 02:03:14 hno Exp $
+#  $Id: Makefile.in,v 1.225.2.14 2004/06/08 11:37:22 hno Exp $
 #
 #  Uncomment and customize the following to suit your needs:
 #
@@ -87,6 +87,7 @@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 LIBDLMALLOC = @LIBDLMALLOC@
 LIBREGEX = @LIBREGEX@
+LIBSASL = @LIBSASL@
 LIB_MALLOC = @LIB_MALLOC@
 LN = @LN@
 LN_S = @LN_S@
@@ -97,6 +98,7 @@
 OBJEXT = @OBJEXT@
 PACKAGE = @PACKAGE@
 PERL = @PERL@
+PKGCONFIG = @PKGCONFIG@
 RANLIB = @RANLIB@
 REGEXLIB = @REGEXLIB@
 REPL_LIBS = @REPL_LIBS@
diff -ruN squid-2.5.STABLE5/src/MemBuf.c squid-2.5.STABLE6/src/MemBuf.c
--- squid-2.5.STABLE5/src/MemBuf.c	Fri Apr 20 15:26:22 2001
+++ squid-2.5.STABLE6/src/MemBuf.c	Sun Jun  6 09:07:16 2004
@@ -1,6 +1,6 @@
 
 /*
- * $Id: MemBuf.c,v 1.28 2001/04/20 21:26:22 hno Exp $
+ * $Id: MemBuf.c,v 1.28.2.2 2004/06/06 15:07:16 hno Exp $
  *
  * DEBUG: section 59    auto-growing Memory Buffer with printf
  * AUTHOR: Alex Rousskov
@@ -98,9 +98,17 @@
  * }
  */
 
-
 #include "squid.h"
 
+#ifdef VA_COPY
+#undef VA_COPY
+#endif
+#if defined HAVE_VA_COPY
+#define VA_COPY va_copy
+#elif defined HAVE___VA_COPY
+#define VA_COPY __va_copy
+#endif
+
 /* local constants */
 
 /* default values for buffer sizes, used by memBufDefInit */
@@ -228,6 +236,9 @@
 void
 memBufVPrintf(MemBuf * mb, const char *fmt, va_list vargs)
 {
+#if defined VA_COPY
+    va_list ap;
+#endif
     int sz = 0;
     assert(mb && fmt);
     assert(mb->buf);
@@ -236,7 +247,17 @@
     while (mb->capacity <= mb->max_capacity) {
 	mb_size_t free_space = mb->capacity - mb->size;
 	/* put as much as we can */
+
+#if defined VA_COPY
+	VA_COPY(ap, vargs);	/* Fix of bug 753. The value of vargs is undefined
+				 * * after vsnprintf() returns. Make a copy of vargs
+				 * * incase we loop around and call vsnprintf() again.
+				 */
+	sz = vsnprintf(mb->buf + mb->size, free_space, fmt, ap);
+	va_end(ap);
+#else
 	sz = vsnprintf(mb->buf + mb->size, free_space, fmt, vargs);
+#endif
 	/* check for possible overflow */
 	/* snprintf on Linuz returns -1 on overflows */
 	/* snprintf on FreeBSD returns at least free_space on overflows */
diff -ruN squid-2.5.STABLE5/src/access_log.c squid-2.5.STABLE6/src/access_log.c
--- squid-2.5.STABLE5/src/access_log.c	Mon Jul 28 02:59:28 2003
+++ squid-2.5.STABLE6/src/access_log.c	Mon Jun  7 15:20:34 2004
@@ -1,6 +1,6 @@
 
 /*
- * $Id: access_log.c,v 1.72.2.4 2003/07/28 08:59:28 adrian Exp $
+ * $Id: access_log.c,v 1.72.2.5 2004/06/07 21:20:34 hno Exp $
  *
  * DEBUG: section 46    Access Log
  * AUTHOR: Duane Wessels
@@ -245,14 +245,14 @@
 	client = inet_ntoa(al->cache.caddr);
     user = accessLogFormatName(al->cache.authuser ?
 	al->cache.authuser : al->cache.rfc931);
-    logfilePrintf(logfile, "%9d.%03d %6d %s %s/%03d %ld %s %s %s %s%s/%s %s",
+    logfilePrintf(logfile, "%9d.%03d %6d %s %s/%03d %lu %s %s %s %s%s/%s %s",
 	(int) current_time.tv_sec,
 	(int) current_time.tv_usec / 1000,
 	al->cache.msec,
 	client,
 	log_tags[al->cache.code],
 	al->http.code,
-	(long int) al->cache.size,
+	(unsigned long) al->cache.size,
 	al->private.method_str,
 	al->url,
 	user && *user ? user : dash_str,
diff -ruN squid-2.5.STABLE5/src/auth/Makefile.in squid-2.5.STABLE6/src/auth/Makefile.in
--- squid-2.5.STABLE5/src/auth/Makefile.in	Tue Feb 11 19:03:15 2003
+++ squid-2.5.STABLE6/src/auth/Makefile.in	Tue Jun  8 05:37:22 2004
@@ -15,7 +15,7 @@
 
 #  Makefile for authentication modules in the Squid Object Cache server
 #
-#  $Id: Makefile.in,v 1.6.2.5 2003/02/12 02:03:15 hno Exp $
+#  $Id: Makefile.in,v 1.6.2.7 2004/06/08 11:37:22 hno Exp $
 #
 
 SHELL = @SHELL@
@@ -84,6 +84,7 @@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 LIBDLMALLOC = @LIBDLMALLOC@
 LIBREGEX = @LIBREGEX@
+LIBSASL = @LIBSASL@
 LIB_MALLOC = @LIB_MALLOC@
 LN = @LN@
 LN_S = @LN_S@
@@ -94,6 +95,7 @@
 OBJEXT = @OBJEXT@
 PACKAGE = @PACKAGE@
 PERL = @PERL@
+PKGCONFIG = @PKGCONFIG@
 RANLIB = @RANLIB@
 REGEXLIB = @REGEXLIB@
 REPL_LIBS = @REPL_LIBS@
diff -ruN squid-2.5.STABLE5/src/auth/basic/Makefile.in squid-2.5.STABLE6/src/auth/basic/Makefile.in
--- squid-2.5.STABLE5/src/auth/basic/Makefile.in	Tue Feb 11 19:03:19 2003
+++ squid-2.5.STABLE6/src/auth/basic/Makefile.in	Tue Jun  8 05:37:22 2004
@@ -79,6 +79,7 @@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 LIBDLMALLOC = @LIBDLMALLOC@
 LIBREGEX = @LIBREGEX@
+LIBSASL = @LIBSASL@
 LIB_MALLOC = @LIB_MALLOC@
 LN = @LN@
 LN_S = @LN_S@
@@ -89,6 +90,7 @@
 OBJEXT = @OBJEXT@
 PACKAGE = @PACKAGE@
 PERL = @PERL@
+PKGCONFIG = @PKGCONFIG@
 RANLIB = @RANLIB@
 REGEXLIB = @REGEXLIB@
 REPL_LIBS = @REPL_LIBS@
diff -ruN squid-2.5.STABLE5/src/auth/basic/auth_basic.c squid-2.5.STABLE6/src/auth/basic/auth_basic.c
--- squid-2.5.STABLE5/src/auth/basic/auth_basic.c	Wed Feb 18 10:50:51 2004
+++ squid-2.5.STABLE6/src/auth/basic/auth_basic.c	Sat Apr 17 19:29:52 2004
@@ -1,5 +1,5 @@
 /*
- * $Id: auth_basic.c,v 1.14.2.5 2004/02/18 17:50:51 hno Exp $
+ * $Id: auth_basic.c,v 1.14.2.6 2004/04/18 01:29:52 hno Exp $
  *
  * DEBUG: section 29    Authenticator
  * AUTHOR: Duane Wessels
@@ -421,7 +421,7 @@
 
     /* decode the username */
     /* trim BASIC from string */
-    while (!xisspace(*proxy_auth))
+    while (xisgraph(*proxy_auth))
 	proxy_auth++;
 
     local_basic.passwd = NULL;
diff -ruN squid-2.5.STABLE5/src/auth/digest/Makefile.in squid-2.5.STABLE6/src/auth/digest/Makefile.in
--- squid-2.5.STABLE5/src/auth/digest/Makefile.in	Tue Feb 11 19:03:20 2003
+++ squid-2.5.STABLE6/src/auth/digest/Makefile.in	Tue Jun  8 05:37:23 2004
@@ -79,6 +79,7 @@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 LIBDLMALLOC = @LIBDLMALLOC@
 LIBREGEX = @LIBREGEX@
+LIBSASL = @LIBSASL@
 LIB_MALLOC = @LIB_MALLOC@
 LN = @LN@
 LN_S = @LN_S@
@@ -89,6 +90,7 @@
 OBJEXT = @OBJEXT@
 PACKAGE = @PACKAGE@
 PERL = @PERL@
+PKGCONFIG = @PKGCONFIG@
 RANLIB = @RANLIB@
 REGEXLIB = @REGEXLIB@
 REPL_LIBS = @REPL_LIBS@
diff -ruN squid-2.5.STABLE5/src/auth/digest/auth_digest.c squid-2.5.STABLE6/src/auth/digest/auth_digest.c
--- squid-2.5.STABLE5/src/auth/digest/auth_digest.c	Thu Feb 19 05:28:01 2004
+++ squid-2.5.STABLE6/src/auth/digest/auth_digest.c	Sat Apr 17 19:29:52 2004
@@ -1,6 +1,6 @@
 
 /*
- * $Id: auth_digest.c,v 1.10.2.11 2004/02/19 12:28:01 hno Exp $
+ * $Id: auth_digest.c,v 1.10.2.12 2004/04/18 01:29:52 hno Exp $
  *
  * DEBUG: section 29    Authenticator
  * AUTHOR: Robert Collins
@@ -764,7 +764,8 @@
 authenticateDigestDirection(auth_user_request_t * auth_user_request)
 {
     digest_request_h *digest_request = auth_user_request->scheme_data;
-    /* null auth_user is checked for by authenticateDirection */
+    if (!digest_request)
+	return -2;
     switch (digest_request->flags.credentials_ok) {
     case 0:			/* not checked */
 	return -1;
@@ -790,6 +791,8 @@
     if (!auth_user_request)
 	return;
     digest_request = auth_user_request->scheme_data;
+    if (!digest_request)
+	return;
     /* don't add to authentication error pages */
     if ((!accel && rep->sline.status == HTTP_PROXY_AUTHENTICATION_REQUIRED)
 	|| (accel && rep->sline.status == HTTP_UNAUTHORIZED))
@@ -1136,7 +1139,7 @@
     digest_request = authDigestRequestNew();
 
     /* trim DIGEST from string */
-    while (!xisspace(*proxy_auth))
+    while (xisgraph(*proxy_auth))
 	proxy_auth++;
 
     /* Trim leading whitespace before decoding */
diff -ruN squid-2.5.STABLE5/src/auth/ntlm/Makefile.in squid-2.5.STABLE6/src/auth/ntlm/Makefile.in
--- squid-2.5.STABLE5/src/auth/ntlm/Makefile.in	Tue Feb 11 19:03:22 2003
+++ squid-2.5.STABLE6/src/auth/ntlm/Makefile.in	Tue Jun  8 05:37:23 2004
@@ -79,6 +79,7 @@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 LIBDLMALLOC = @LIBDLMALLOC@
 LIBREGEX = @LIBREGEX@
+LIBSASL = @LIBSASL@
 LIB_MALLOC = @LIB_MALLOC@
 LN = @LN@
 LN_S = @LN_S@
@@ -89,6 +90,7 @@
 OBJEXT = @OBJEXT@
 PACKAGE = @PACKAGE@
 PERL = @PERL@
+PKGCONFIG = @PKGCONFIG@
 RANLIB = @RANLIB@
 REGEXLIB = @REGEXLIB@
 REPL_LIBS = @REPL_LIBS@
diff -ruN squid-2.5.STABLE5/src/auth/ntlm/auth_ntlm.c squid-2.5.STABLE6/src/auth/ntlm/auth_ntlm.c
--- squid-2.5.STABLE5/src/auth/ntlm/auth_ntlm.c	Tue Feb 24 10:11:52 2004
+++ squid-2.5.STABLE6/src/auth/ntlm/auth_ntlm.c	Sat Apr 17 19:29:52 2004
@@ -1,6 +1,6 @@
 
 /*
- * $Id: auth_ntlm.c,v 1.17.2.9 2004/02/24 17:11:52 hno Exp $
+ * $Id: auth_ntlm.c,v 1.17.2.12 2004/04/18 01:29:52 hno Exp $
  *
  * DEBUG: section 29    NTLM Authenticator
  * AUTHOR: Robert Collins
@@ -481,7 +481,6 @@
 	debug(29, 2) ("AuthenticateNTLMHandleReply: invalid callback data. Releasing helper '%p'.\n", srv);
 	cbdataUnlock(r->data);
 	authenticateStateFree(r);
-	helperStatefulReleaseServer(srv);
 	return;
     }
     if (!reply) {
@@ -657,7 +656,7 @@
     assert(ntlm_request);
     assert(handler);
     assert(data);
-    assert(auth_user->auth_type = AUTH_NTLM);
+    assert(auth_user->auth_type == AUTH_NTLM);
     debug(29, 9) ("authenticateNTLMStart: auth state '%d'\n", ntlm_request->auth_state);
     switch (ntlm_request->auth_state) {
     case AUTHENTICATE_STATE_NEGOTIATE:
@@ -672,7 +671,7 @@
 	fatal("Invalid authenticate state for NTLMStart");
     }
 
-    while (!xisspace(*sent_string))	/*trim NTLM */
+    while (xisgraph(*sent_string))	/*trim NTLM */
 	sent_string++;
 
     while (xisspace(*sent_string))	/*trim leading spaces */
diff -ruN squid-2.5.STABLE5/src/authenticate.c squid-2.5.STABLE6/src/authenticate.c
--- squid-2.5.STABLE5/src/authenticate.c	Wed Feb 18 11:51:16 2004
+++ squid-2.5.STABLE6/src/authenticate.c	Sat Apr 17 19:29:51 2004
@@ -1,6 +1,6 @@
 
 /*
- * $Id: authenticate.c,v 1.36.2.14 2004/02/18 18:51:16 hno Exp $
+ * $Id: authenticate.c,v 1.36.2.15 2004/04/18 01:29:51 hno Exp $
  *
  * DEBUG: section 29    Authenticator
  * AUTHOR: Duane Wessels
@@ -94,7 +94,11 @@
 	/* we're configured to use this scheme - but is it active ? */
 	if ((i = authenticateAuthSchemeId(proxy_auth)) != -1) {
 	    authscheme_list[i].decodeauth(auth_user_request, proxy_auth);
-	    auth_user_request->auth_user->auth_module = i + 1;
+	    if (auth_user_request->auth_user) {
+		auth_user_request->auth_user->auth_module = i + 1;
+	    } else {
+		debug(29, 1) ("authenticateDecodeAuth: Invalid proxy-auth header, '%s'\n", proxy_auth);
+	    }
 	    return;
 	}
     }
diff -ruN squid-2.5.STABLE5/src/cache_cf.c squid-2.5.STABLE6/src/cache_cf.c
--- squid-2.5.STABLE5/src/cache_cf.c	Sat Dec  6 10:19:36 2003
+++ squid-2.5.STABLE6/src/cache_cf.c	Thu Apr 29 17:56:50 2004
@@ -1,6 +1,6 @@
 
 /*
- * $Id: cache_cf.c,v 1.396.2.16 2003/12/06 17:19:36 hno Exp $
+ * $Id: cache_cf.c,v 1.396.2.17 2004/04/29 23:56:50 hno Exp $
  *
  * DEBUG: section 3     Configuration File Parsing
  * AUTHOR: Harvest Derived
@@ -502,6 +502,10 @@
 	self_destruct();
     if ((token = strtok(NULL, w_space)) == NULL)
 	self_destruct();
+    if (strcmp(token, "none") == 0 || strcmp(token, "-1") == 0) {
+	*bptr = (size_t) - 1;
+	return;
+    }
     d = atof(token);
     m = u;			/* default to 'units' if none specified */
     if (0.0 == d)
diff -ruN squid-2.5.STABLE5/src/cf.data.pre squid-2.5.STABLE6/src/cf.data.pre
--- squid-2.5.STABLE5/src/cf.data.pre	Tue Feb 10 14:01:21 2004
+++ squid-2.5.STABLE6/src/cf.data.pre	Fri Apr 30 14:40:39 2004
@@ -1,6 +1,6 @@
 
 #
-# $Id: cf.data.pre,v 1.245.2.61 2004/02/10 21:01:21 hno Exp $
+# $Id: cf.data.pre,v 1.245.2.66 2004/04/30 20:40:39 wessels Exp $
 #
 #
 # SQUID Web Proxy Cache          http://www.squid-cache.org/
@@ -801,7 +801,13 @@
 
 	Q2 specifies the number of unacknowledged messages when Squid
 	starts blocking.  If this many messages are in the queues,
-	Squid blocks until it recevies some replies. Default is 72
+	Squid blocks until it receives some replies. Default is 72
+
+	When Q1 < Q2 (the default), the cache directory is optimized
+	for lower response time at the expense of a decrease in hit
+	ratio.  If Q1 > Q2, the cache directory is optimized for
+	higher hit ratio at the expense of an increase in response
+	time.
 
 	The coss store type:
 
@@ -862,14 +868,14 @@
 DOC_END
 
 
-NAME: cache_swap_log
+NAME: cache_swap_log cache_swap_state
 TYPE: string
 LOC: Config.Log.swap
 DEFAULT: none
 DOC_START
-	Location for the cache "swap.log."  This log file holds the
-	metadata of objects saved on disk.  It is used to rebuild the
-	cache during startup.  Normally this file resides in each
+	Location for the cache "swap.state" file. This log file holds
+	the metadata of objects saved on disk.  It is used to rebuild
+	the cache during startup.  Normally this file resides in each
 	'cache_dir' directory, but you may specify an alternate
 	pathname here.  Note you must give a full filename, not just
 	a directory. Since this is the index for the whole object
@@ -1342,8 +1348,8 @@
 	"program" cmdline
 	Specify the command for the external authenticator.  Such a program
 	reads a line containing "username":"realm" and replies with the
-	appropriate H(A1) value base64 encoded.  See rfc 2616 for the
-	definition of H(A1).
+	appropriate H(A1) value base64 encoded or ERR if the user (or his H(A1)
+	hash) does not exists.  See rfc 2616 for the definition of H(A1).
 
 	By default, the digest authentication scheme is not used unless a
 	program is specified.
@@ -2548,8 +2554,8 @@
 DOC_START
 	If you are running Squid as an accelerator and have a single backend
 	server then set this to on. This causes Squid to forward the request
-	to this server irregardles of what any redirectors or Host headers
-	says.
+	to this server, regardles of what any redirectors or Host headers
+	say.
 
 	Leave this at off if you have multiple backend servers, and use a
 	redirector (or host table or private DNS) to map the requests to the
diff -ruN squid-2.5.STABLE5/src/client_side.c squid-2.5.STABLE6/src/client_side.c
--- squid-2.5.STABLE5/src/client_side.c	Wed Feb 18 11:51:16 2004
+++ squid-2.5.STABLE6/src/client_side.c	Mon May 31 16:57:09 2004
@@ -1,6 +1,6 @@
 
 /*
- * $Id: client_side.c,v 1.561.2.54 2004/02/18 18:51:16 hno Exp $
+ * $Id: client_side.c,v 1.561.2.55 2004/05/31 22:57:09 hno Exp $
  *
  * DEBUG: section 33    Client-side Routines
  * AUTHOR: Duane Wessels
@@ -3386,6 +3386,7 @@
 {
     int *N = &incoming_sockets_accepted;
     int fd = -1;
+    fde *F;
     ConnStateData *connState = NULL;
     struct sockaddr_in peer;
     struct sockaddr_in me;
@@ -3403,7 +3404,8 @@
 		    sock, xstrerror());
 	    break;
 	}
-	debug(33, 4) ("httpAccept: FD %d: accepted\n", fd);
+	F = &fd_table[fd];
+	debug(33, 4) ("httpAccept: FD %d: accepted port %d client %s:%d\n", fd, F->local_port, F->ipaddr, F->remote_port);
 	connState = cbdataAlloc(ConnStateData);
 	connState->peer = peer;
 	connState->log_addr = peer.sin_addr;
@@ -3488,6 +3490,7 @@
     https_port_data *https_port = data;
     SSL_CTX *sslContext = https_port->sslContext;
     int fd = -1;
+    fde *F;
     ConnStateData *connState = NULL;
     struct sockaddr_in peer;
     struct sockaddr_in me;
@@ -3514,10 +3517,12 @@
 	    break;
 	}
 	SSL_set_fd(ssl, fd);
-	fd_table[fd].ssl = ssl;
-	fd_table[fd].read_method = &ssl_read_method;
-	fd_table[fd].write_method = &ssl_write_method;
-	debug(50, 5) ("httpsAccept: FD %d accepted, starting SSL negotiation.\n", fd);
+	F = &fd_table[fd];
+	F->ssl = ssl;
+	F->read_method = &ssl_read_method;
+	F->write_method = &ssl_write_method;
+	debug(33, 4) ("httpsAccept: FD %d: accepted port %d client %s:%d\n", fd, F->local_port, F->ipaddr, F->remote_port);
+	debug(50, 5) ("httpsAccept: FD %d: starting SSL negotiation.\n", fd);
 
 	connState = cbdataAlloc(ConnStateData);
 	connState->peer = peer;
diff -ruN squid-2.5.STABLE5/src/dns_internal.c squid-2.5.STABLE6/src/dns_internal.c
--- squid-2.5.STABLE5/src/dns_internal.c	Sat Dec  6 10:19:37 2003
+++ squid-2.5.STABLE6/src/dns_internal.c	Mon May 31 17:33:52 2004
@@ -1,6 +1,6 @@
 
 /*
- * $Id: dns_internal.c,v 1.45.2.2 2003/12/06 17:19:37 hno Exp $
+ * $Id: dns_internal.c,v 1.45.2.3 2004/05/31 23:33:52 hno Exp $
  *
  * DEBUG: section 78    DNS lookups; interacts with lib/rfc1035.c
  * AUTHOR: Duane Wessels
@@ -656,14 +656,16 @@
     if (0 == nns)
 	idnsParseWIN32Registry();
 #endif
-    if (0 == nns)
-	fatal("Could not find any nameservers.\n"
+    if (0 == nns) {
+	debug(78, 1) ("Warning: Could not find any nameservers. Trying to use localhost\n");
 #if defined(_SQUID_MSWIN_) || defined(_SQUID_CYGWIN_)
-	    "       Please check your TCP-IP settings or /etc/resolv.conf file\n"
+	debug(78, 1) ("Please check your TCP-IP settings or /etc/resolv.conf file\n");
 #else
-	    "       Please check your /etc/resolv.conf file\n"
+	debug(78, 1) ("Please check your /etc/resolv.conf file\n");
 #endif
-	    "       or use the 'dns_nameservers' option in squid.conf.");
+	debug(78, 1) ("or use the 'dns_nameservers' option in squid.conf.");
+	idnsAddNameserver("127.0.0.1");
+    }
     if (!init) {
 	memDataInit(MEM_IDNS_QUERY, "idns_query", sizeof(idns_query), 0);
 	cachemgrRegister("idns",
diff -ruN squid-2.5.STABLE5/src/errorpage.c squid-2.5.STABLE6/src/errorpage.c
--- squid-2.5.STABLE5/src/errorpage.c	Thu Nov  6 09:13:03 2003
+++ squid-2.5.STABLE6/src/errorpage.c	Mon Mar 29 02:41:36 2004
@@ -1,6 +1,6 @@
 
 /*
- * $Id: errorpage.c,v 1.167.2.9 2003/11/06 16:13:03 hno Exp $
+ * $Id: errorpage.c,v 1.167.2.10 2004/03/29 09:41:36 hno Exp $
  *
  * DEBUG: section 4     Error Generation
  * AUTHOR: Duane Wessels
@@ -606,9 +606,11 @@
     httpBuildVersion(&version, 1, 0);
     if (strchr(name, ':')) {
 	/* Redirection */
-	char *quoted_url = rfc1738_escape_part(errorConvert('u', err));
 	httpReplySetHeaders(rep, version, HTTP_MOVED_TEMPORARILY, NULL, "text/html", 0, 0, squid_curtime);
-	httpHeaderPutStrf(&rep->header, HDR_LOCATION, name, quoted_url);
+	if (err->request) {
+	    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");
     } else {
 	MemBuf content = errorBuildContent(err);
diff -ruN squid-2.5.STABLE5/src/fs/Makefile.in squid-2.5.STABLE6/src/fs/Makefile.in
--- squid-2.5.STABLE5/src/fs/Makefile.in	Tue Feb 11 19:03:24 2003
+++ squid-2.5.STABLE6/src/fs/Makefile.in	Tue Jun  8 05:37:23 2004
@@ -15,7 +15,7 @@
 
 #  Makefile for storage modules in the Squid Object Cache server
 #
-#  $Id: Makefile.in,v 1.8.2.6 2003/02/12 02:03:24 hno Exp $
+#  $Id: Makefile.in,v 1.8.2.8 2004/06/08 11:37:23 hno Exp $
 #
 
 SHELL = @SHELL@
@@ -84,6 +84,7 @@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 LIBDLMALLOC = @LIBDLMALLOC@
 LIBREGEX = @LIBREGEX@
+LIBSASL = @LIBSASL@
 LIB_MALLOC = @LIB_MALLOC@
 LN = @LN@
 LN_S = @LN_S@
@@ -94,6 +95,7 @@
 OBJEXT = @OBJEXT@
 PACKAGE = @PACKAGE@
 PERL = @PERL@
+PKGCONFIG = @PKGCONFIG@
 RANLIB = @RANLIB@
 REGEXLIB = @REGEXLIB@
 REPL_LIBS = @REPL_LIBS@
diff -ruN squid-2.5.STABLE5/src/fs/aufs/Makefile.in squid-2.5.STABLE6/src/fs/aufs/Makefile.in
--- squid-2.5.STABLE5/src/fs/aufs/Makefile.in	Tue Feb 11 19:03:26 2003
+++ squid-2.5.STABLE6/src/fs/aufs/Makefile.in	Tue Jun  8 05:37:23 2004
@@ -79,6 +79,7 @@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 LIBDLMALLOC = @LIBDLMALLOC@
 LIBREGEX = @LIBREGEX@
+LIBSASL = @LIBSASL@
 LIB_MALLOC = @LIB_MALLOC@
 LN = @LN@
 LN_S = @LN_S@
@@ -89,6 +90,7 @@
 OBJEXT = @OBJEXT@
 PACKAGE = @PACKAGE@
 PERL = @PERL@
+PKGCONFIG = @PKGCONFIG@
 RANLIB = @RANLIB@
 REGEXLIB = @REGEXLIB@
 REPL_LIBS = @REPL_LIBS@
diff -ruN squid-2.5.STABLE5/src/fs/aufs/store_io_aufs.c squid-2.5.STABLE6/src/fs/aufs/store_io_aufs.c
--- squid-2.5.STABLE5/src/fs/aufs/store_io_aufs.c	Mon Jul 21 16:34:53 2003
+++ squid-2.5.STABLE6/src/fs/aufs/store_io_aufs.c	Sat Jun  5 13:42:14 2004
@@ -363,7 +363,7 @@
 
 #if ASYNC_WRITE
 static void
-storeAufsWriteDone(int fd, void *my_data, int len, int errflag)
+storeAufsWriteDone(int fd, void *my_data, const char *buf, int aio_return, int aio_errno)
 #else
 static void
 storeAufsWriteDone(int fd, int errflag, size_t len, void *my_data)
@@ -372,16 +372,17 @@
     static int loop_detect = 0;
     storeIOState *sio = my_data;
     squidaiostate_t *aiostate = (squidaiostate_t *) sio->fsstate;
-    debug(79, 3) ("storeAufsWriteDone: dirno %d, fileno %08X, FD %d, len %ld, err=%d\n",
-	sio->swap_dirn, sio->swap_filen, fd, (long int) len, errflag);
 #if ASYNC_WRITE
+    int errflag;
+    int len = aio_return;
     /* Translate from errno to Squid disk error */
-    errno = errflag;
-    if (errflag)
-	errflag = errno == ENOSPC ? DISK_NO_SPACE_LEFT : DISK_ERROR;
+    if (aio_errno)
+	errflag = aio_errno == ENOSPC ? DISK_NO_SPACE_LEFT : DISK_ERROR;
     else
 	errflag = DISK_OK;
 #endif
+    debug(79, 3) ("storeAufsWriteDone: dirno %d, fileno %08X, FD %d, len %ld, err=%d\n",
+	sio->swap_dirn, sio->swap_filen, fd, (long int) len, errflag);
     assert(++loop_detect < 10);
     aiostate->flags.writing = 0;
     if (errflag) {
@@ -393,7 +394,7 @@
     sio->offset += len;
 #if ASYNC_WRITE
     if (!storeAufsKickWriteQueue(sio))
-	0;
+	(void) 0;
     else if (aiostate->flags.close_request)
 	storeAufsIOCallback(sio, errflag);
 #else
diff -ruN squid-2.5.STABLE5/src/fs/coss/Makefile.in squid-2.5.STABLE6/src/fs/coss/Makefile.in
--- squid-2.5.STABLE5/src/fs/coss/Makefile.in	Tue Feb 11 19:03:27 2003
+++ squid-2.5.STABLE6/src/fs/coss/Makefile.in	Tue Jun  8 05:37:23 2004
@@ -79,6 +79,7 @@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 LIBDLMALLOC = @LIBDLMALLOC@
 LIBREGEX = @LIBREGEX@
+LIBSASL = @LIBSASL@
 LIB_MALLOC = @LIB_MALLOC@
 LN = @LN@
 LN_S = @LN_S@
@@ -89,6 +90,7 @@
 OBJEXT = @OBJEXT@
 PACKAGE = @PACKAGE@
 PERL = @PERL@
+PKGCONFIG = @PKGCONFIG@
 RANLIB = @RANLIB@
 REGEXLIB = @REGEXLIB@
 REPL_LIBS = @REPL_LIBS@
diff -ruN squid-2.5.STABLE5/src/fs/diskd/Makefile.in squid-2.5.STABLE6/src/fs/diskd/Makefile.in
--- squid-2.5.STABLE5/src/fs/diskd/Makefile.in	Tue Feb 11 19:03:32 2003
+++ squid-2.5.STABLE6/src/fs/diskd/Makefile.in	Tue Jun  8 05:37:23 2004
@@ -16,7 +16,7 @@
 #
 #  Makefile for the DISKD storage driver for the Squid Object Cache server
 #
-#  $Id: Makefile.in,v 1.6.2.5 2003/02/12 02:03:32 hno Exp $
+#  $Id: Makefile.in,v 1.6.2.7 2004/06/08 11:37:23 hno Exp $
 #
 
 SHELL = @SHELL@
@@ -85,6 +85,7 @@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 LIBDLMALLOC = @LIBDLMALLOC@
 LIBREGEX = @LIBREGEX@
+LIBSASL = @LIBSASL@
 LIB_MALLOC = @LIB_MALLOC@
 LN = @LN@
 LN_S = @LN_S@
@@ -95,6 +96,7 @@
 OBJEXT = @OBJEXT@
 PACKAGE = @PACKAGE@
 PERL = @PERL@
+PKGCONFIG = @PKGCONFIG@
 RANLIB = @RANLIB@
 REGEXLIB = @REGEXLIB@
 REPL_LIBS = @REPL_LIBS@
diff -ruN squid-2.5.STABLE5/src/fs/null/Makefile.in squid-2.5.STABLE6/src/fs/null/Makefile.in
--- squid-2.5.STABLE5/src/fs/null/Makefile.in	Tue Feb 11 19:03:32 2003
+++ squid-2.5.STABLE6/src/fs/null/Makefile.in	Tue Jun  8 05:37:23 2004
@@ -79,6 +79,7 @@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 LIBDLMALLOC = @LIBDLMALLOC@
 LIBREGEX = @LIBREGEX@
+LIBSASL = @LIBSASL@
 LIB_MALLOC = @LIB_MALLOC@
 LN = @LN@
 LN_S = @LN_S@
@@ -89,6 +90,7 @@
 OBJEXT = @OBJEXT@
 PACKAGE = @PACKAGE@
 PERL = @PERL@
+PKGCONFIG = @PKGCONFIG@
 RANLIB = @RANLIB@
 REGEXLIB = @REGEXLIB@
 REPL_LIBS = @REPL_LIBS@
diff -ruN squid-2.5.STABLE5/src/fs/ufs/Makefile.in squid-2.5.STABLE6/src/fs/ufs/Makefile.in
--- squid-2.5.STABLE5/src/fs/ufs/Makefile.in	Tue Feb 11 19:03:33 2003
+++ squid-2.5.STABLE6/src/fs/ufs/Makefile.in	Tue Jun  8 05:37:23 2004
@@ -79,6 +79,7 @@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 LIBDLMALLOC = @LIBDLMALLOC@
 LIBREGEX = @LIBREGEX@
+LIBSASL = @LIBSASL@
 LIB_MALLOC = @LIB_MALLOC@
 LN = @LN@
 LN_S = @LN_S@
@@ -89,6 +90,7 @@
 OBJEXT = @OBJEXT@
 PACKAGE = @PACKAGE@
 PERL = @PERL@
+PKGCONFIG = @PKGCONFIG@
 RANLIB = @RANLIB@
 REGEXLIB = @REGEXLIB@
 REPL_LIBS = @REPL_LIBS@
diff -ruN squid-2.5.STABLE5/src/fs/ufs/store_dir_ufs.c squid-2.5.STABLE6/src/fs/ufs/store_dir_ufs.c
--- squid-2.5.STABLE5/src/fs/ufs/store_dir_ufs.c	Wed Jan  8 20:38:48 2003
+++ squid-2.5.STABLE6/src/fs/ufs/store_dir_ufs.c	Mon May 31 16:03:31 2004
@@ -1,6 +1,6 @@
 
 /*
- * $Id: store_dir_ufs.c,v 1.39.2.7 2003/01/09 03:38:48 hno Exp $
+ * $Id: store_dir_ufs.c,v 1.39.2.8 2004/05/31 22:03:31 hno Exp $
  *
  * DEBUG: section 47    Store Directory Routines
  * AUTHOR: Duane Wessels
@@ -1355,8 +1355,8 @@
 int
 storeUfsDirCheckObj(SwapDir * SD, const StoreEntry * e)
 {
-    /* Return 999 (99.9%) constant load */
-    return 999;
+    ufsinfo_t *ufsinfo = SD->fsdata;
+    return 500 + ufsinfo->open_files / 2;
 }
 
 /*
diff -ruN squid-2.5.STABLE5/src/fs/ufs/store_io_ufs.c squid-2.5.STABLE6/src/fs/ufs/store_io_ufs.c
--- squid-2.5.STABLE5/src/fs/ufs/store_io_ufs.c	Thu Aug  8 14:17:42 2002
+++ squid-2.5.STABLE6/src/fs/ufs/store_io_ufs.c	Mon May 31 16:03:31 2004
@@ -1,6 +1,6 @@
 
 /*
- * $Id: store_io_ufs.c,v 1.9.2.1 2002/08/08 20:17:42 hno Exp $
+ * $Id: store_io_ufs.c,v 1.9.2.2 2004/05/31 22:03:31 hno Exp $
  *
  * DEBUG: section 79    Storage Manager UFS Interface
  * AUTHOR: Duane Wessels
@@ -50,6 +50,7 @@
 storeUfsOpen(SwapDir * SD, StoreEntry * e, STFNCB * file_callback,
     STIOCB * callback, void *callback_data)
 {
+    ufsinfo_t *ufsinfo = (ufsinfo_t *) SD->fsdata;
     sfileno f = e->swap_filen;
     char *path = storeUfsDirFullPath(SD, f, NULL);
     storeIOState *sio;
@@ -80,6 +81,7 @@
     if (fstat(fd, &sb) == 0)
 	sio->st_size = sb.st_size;
     store_open_disk_fd++;
+    ufsinfo->open_files++;
 
     /* We should update the heap/dlink position here ! */
     return sio;
@@ -126,6 +128,7 @@
     ((ufsstate_t *) (sio->fsstate))->flags.reading = 0;
     ((ufsstate_t *) (sio->fsstate))->flags.close_request = 0;
     store_open_disk_fd++;
+    ufsinfo->open_files++;
 
     /* now insert into the replacement policy */
     storeUfsDirReplAdd(SD, e);
@@ -246,8 +249,11 @@
     ufsstate_t *ufsstate = (ufsstate_t *) sio->fsstate;
     debug(79, 3) ("storeUfsIOCallback: errflag=%d\n", errflag);
     if (ufsstate->fd > -1) {
+	SwapDir *SD = INDEXSD(sio->swap_dirn);
+	ufsinfo_t *ufsinfo = (ufsinfo_t *) SD->fsdata;
 	file_close(ufsstate->fd);
 	store_open_disk_fd--;
+	ufsinfo->open_files--;
     }
     if (cbdataValid(sio->callback_data))
 	sio->callback(sio->callback_data, errflag, sio);
diff -ruN squid-2.5.STABLE5/src/fs/ufs/store_ufs.h squid-2.5.STABLE6/src/fs/ufs/store_ufs.h
--- squid-2.5.STABLE5/src/fs/ufs/store_ufs.h	Thu May 11 18:29:21 2000
+++ squid-2.5.STABLE6/src/fs/ufs/store_ufs.h	Mon May 31 16:03:31 2004
@@ -13,6 +13,7 @@
     int l2;
     fileMap *map;
     int suggest;
+    int open_files;
 };
 
 struct _ufsstate_t {
diff -ruN squid-2.5.STABLE5/src/ftp.c squid-2.5.STABLE6/src/ftp.c
--- squid-2.5.STABLE5/src/ftp.c	Tue Feb 24 16:31:22 2004
+++ squid-2.5.STABLE6/src/ftp.c	Mon May 31 17:14:37 2004
@@ -1,6 +1,6 @@
 
 /*
- * $Id: ftp.c,v 1.316.2.13 2004/02/24 23:31:22 hno Exp $
+ * $Id: ftp.c,v 1.316.2.14 2004/05/31 23:14:37 hno Exp $
  *
  * DEBUG: section 9     File Transfer Protocol (FTP)
  * AUTHOR: Harvest Derived
@@ -367,10 +367,10 @@
     int i, j, k;
     char *title;
     storeBuffer(e);
+    storeAppendPrintf(e, "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n");
     storeAppendPrintf(e, "<!-- HTML listing generated by Squid %s -->\n",
 	version_string);
     storeAppendPrintf(e, "<!-- %s -->\n", mkrfc1123(squid_curtime));
-    storeAppendPrintf(e, "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n");
     storeAppendPrintf(e, "<HTML><HEAD><TITLE>\n");
     storeAppendPrintf(e, "FTP Directory: %s\n",
 	html_quote(strBuf(ftpState->title_url)));
diff -ruN squid-2.5.STABLE5/src/helper.c squid-2.5.STABLE6/src/helper.c
--- squid-2.5.STABLE5/src/helper.c	Mon Feb  9 02:03:49 2004
+++ squid-2.5.STABLE6/src/helper.c	Thu Mar 11 08:26:30 2004
@@ -1,6 +1,6 @@
 
 /*
- * $Id: helper.c,v 1.34.2.15 2004/02/09 09:03:49 hno Exp $
+ * $Id: helper.c,v 1.34.2.16 2004/03/11 15:26:30 hno Exp $
  *
  * DEBUG: section 84    Helper process maintenance
  * AUTHOR: Harvest Derived?
@@ -743,19 +743,19 @@
     hlp->stats.queue_size++;
     if (hlp->stats.queue_size < hlp->n_running)
 	return;
-    if (hlp->stats.queue_size < hlp->n_running)
-	return;
+    if (hlp->stats.queue_size > hlp->stats.max_queue_size)
+	hlp->stats.max_queue_size = hlp->stats.queue_size;
     if (squid_curtime - hlp->last_queue_warn < 30)
 	return;
     if (shutting_down || reconfiguring)
 	return;
-    hlp->last_queue_warn = squid_curtime;
     debug(84, 1) ("WARNING: All %s processes are busy.\n", hlp->id_name);
     debug(84, 1) ("WARNING: up to %d pending requests queued\n", hlp->stats.max_queue_size);
     if (hlp->stats.queue_size > hlp->n_running * 2)
 	fatalf("Too many queued %s requests (%d on %d)", hlp->id_name, hlp->stats.queue_size, hlp->n_running);
-    if (hlp->stats.max_queue_size > 1)
+    if (squid_curtime - hlp->last_queue_warn < 300)
 	debug(84, 1) ("Consider increasing the number of %s processes to at least %d in your config file.\n", hlp->id_name, hlp->n_running + hlp->stats.max_queue_size);
+    hlp->last_queue_warn = squid_curtime;
     hlp->stats.max_queue_size = hlp->stats.queue_size;
 }
 
@@ -775,11 +775,11 @@
 	return;
     if (shutting_down || reconfiguring)
 	return;
-    hlp->last_queue_warn = squid_curtime;
     debug(84, 1) ("WARNING: All %s processes are busy.\n", hlp->id_name);
     debug(84, 1) ("WARNING: up to %d pending requests queued\n", hlp->stats.max_queue_size);
-    if (hlp->stats.max_queue_size > 1)
+    if (squid_curtime - hlp->last_queue_warn < 300)
 	debug(84, 1) ("Consider increasing the number of %s processes to at least %d in your config file.\n", hlp->id_name, hlp->n_running + hlp->stats.max_queue_size);
+    hlp->last_queue_warn = squid_curtime;
     hlp->stats.max_queue_size = hlp->stats.queue_size;
 }
 
diff -ruN squid-2.5.STABLE5/src/http.c squid-2.5.STABLE6/src/http.c
--- squid-2.5.STABLE5/src/http.c	Fri Jan 30 16:09:12 2004
+++ squid-2.5.STABLE6/src/http.c	Tue Jun  8 04:54:07 2004
@@ -1,6 +1,6 @@
 
 /*
- * $Id: http.c,v 1.384.2.12 2004/01/30 23:09:12 hno Exp $
+ * $Id: http.c,v 1.384.2.16 2004/06/08 10:54:07 hno Exp $
  *
  * DEBUG: section 11    Hypertext Transfer Protocol (HTTP)
  * AUTHOR: Harvest Derived
@@ -65,7 +65,9 @@
     if (httpState == NULL)
 	return;
     if (httpState->body_buf) {
-	clientAbortBody(httpState->orig_request);
+	if (httpState->orig_request->body_connection) {
+	    clientAbortBody(httpState->orig_request);
+	}
 	if (httpState->body_buf) {
 	    memFree(httpState->body_buf, MEM_8K_BUF);
 	    httpState->body_buf = NULL;
@@ -348,6 +350,13 @@
 	char *name = xmalloc(ilen + 1);
 	xstrncpy(name, item, ilen + 1);
 	Tolower(name);
+	if (strcmp(name, "*") == 0) {
+	    /* Can not handle "Vary: *" withtout ETag support */
+	    safe_free(name);
+	    stringClean(&vary);
+	    stringClean(&vstr);
+	    break;
+	}
 	strListAdd(&vstr, name, ',');
 	hdr = httpHeaderGetByName(&request->header, name);
 	safe_free(name);
@@ -435,35 +444,36 @@
     debug(11, 3) ("httpProcessReplyHeader: HTTP CODE: %d\n", reply->sline.status);
     if (neighbors_do_private_keys)
 	httpMaybeRemovePublic(entry, reply->sline.status);
-    switch (httpCachableReply(httpState)) {
-    case 1:
-	if (httpHeaderHas(&reply->header, HDR_VARY)
+    if (httpHeaderHas(&reply->header, HDR_VARY)
 #if X_ACCELERATOR_VARY
-	    || httpHeaderHas(&reply->header, HDR_X_ACCELERATOR_VARY)
+	|| httpHeaderHas(&reply->header, HDR_X_ACCELERATOR_VARY)
 #endif
-	    ) {
-	    const char *vary = httpMakeVaryMark(httpState->orig_request, reply);
-	    if (vary) {
-		entry->mem_obj->vary_headers = xstrdup(vary);
-		/* Kill the old base object if a change in variance is detected */
-		httpMakePublic(entry);
-	    } else {
-		httpMakePrivate(entry);
-	    }
-	} else {
-	    httpMakePublic(entry);
+	) {
+	const char *vary = httpMakeVaryMark(httpState->orig_request, reply);
+	if (!vary) {
+	    httpMakePrivate(entry);
+	    goto no_cache;
 	}
+	entry->mem_obj->vary_headers = xstrdup(vary);
+    }
+    switch (httpCachableReply(httpState)) {
+    case 1:
+	httpMakePublic(entry);
 	break;
     case 0:
 	httpMakePrivate(entry);
 	break;
     case -1:
-	httpCacheNegatively(entry);
+	if (Config.negativeTtl > 0)
+	    httpCacheNegatively(entry);
+	else
+	    httpMakePrivate(entry);
 	break;
     default:
 	assert(0);
 	break;
     }
+  no_cache:
     if (reply->cache_control) {
 	if (EBIT_TEST(reply->cache_control->mask, CC_PROXY_REVALIDATE))
 	    EBIT_SET(entry->flags, ENTRY_REVALIDATE);
@@ -708,10 +718,12 @@
     if (errflag == COMM_ERR_CLOSING)
 	return;
     if (errflag) {
-	err = errorCon(ERR_WRITE_ERROR, HTTP_INTERNAL_SERVER_ERROR);
-	err->xerrno = errno;
-	err->request = requestLink(httpState->orig_request);
-	errorAppendEntry(entry, err);
+	if (entry->mem_obj->inmem_hi == 0) {
+	    err = errorCon(ERR_WRITE_ERROR, HTTP_INTERNAL_SERVER_ERROR);
+	    err->xerrno = errno;
+	    err->request = requestLink(httpState->orig_request);
+	    errorAppendEntry(entry, err);
+	}
 	comm_close(fd);
 	return;
     } else {
@@ -1103,6 +1115,15 @@
 }
 
 static void
+httpRequestBodyHandler2(void *data)
+{
+    HttpStateData *httpState = (HttpStateData *) data;
+    char *buf = httpState->body_buf;
+    httpState->body_buf = NULL;
+    comm_write(httpState->fd, buf, httpState->body_buf_sz, httpSendRequestEntry, data, memFree8K);
+}
+
+static void
 httpRequestBodyHandler(char *buf, ssize_t size, void *data)
 {
     HttpStateData *httpState = (HttpStateData *) data;
@@ -1118,6 +1139,12 @@
 		comm_close(httpState->fd);
 		return;
 	    }
+	    httpState->body_buf = buf;
+	    httpState->body_buf_sz = size;
+	    /* Give response some time to propagate before sending rest
+	     * of request in case of error */
+	    eventAdd("POST delay on response", httpRequestBodyHandler2, httpState, 2.0, 1);
+	    return;
 	}
 	comm_write(httpState->fd, buf, size, httpSendRequestEntry, data, memFree8K);
     } else if (size == 0) {
@@ -1147,10 +1174,12 @@
     if (errflag == COMM_ERR_CLOSING)
 	return;
     if (errflag) {
-	err = errorCon(ERR_WRITE_ERROR, HTTP_INTERNAL_SERVER_ERROR);
-	err->xerrno = errno;
-	err->request = requestLink(httpState->orig_request);
-	errorAppendEntry(entry, err);
+	if (entry->mem_obj->inmem_hi == 0) {
+	    err = errorCon(ERR_WRITE_ERROR, HTTP_INTERNAL_SERVER_ERROR);
+	    err->xerrno = errno;
+	    err->request = requestLink(httpState->orig_request);
+	    errorAppendEntry(entry, err);
+	}
 	comm_close(fd);
 	return;
     }
diff -ruN squid-2.5.STABLE5/src/mib.txt squid-2.5.STABLE6/src/mib.txt
--- squid-2.5.STABLE5/src/mib.txt	Fri May  2 03:48:42 2003
+++ squid-2.5.STABLE6/src/mib.txt	Mon May 31 16:39:00 2004
@@ -2,7 +2,7 @@
 
 SQUID-MIB DEFINITIONS ::= BEGIN
 --
--- $Id: mib.txt,v 1.25.4.2 2003/05/02 09:48:42 hno Exp $
+-- $Id: mib.txt,v 1.25.4.3 2004/05/31 22:39:00 hno Exp $
 --
 
 IMPORTS
@@ -228,7 +228,7 @@
         ::= { cacheSysPerf 8 }
 
         cacheCurrentUnlinkRequests OBJECT-TYPE
-                SYNTAX Gauge32
+                SYNTAX Counter32
                 MAX-ACCESS read-only
                 STATUS current
 		DESCRIPTION
diff -ruN squid-2.5.STABLE5/src/repl/Makefile.in squid-2.5.STABLE6/src/repl/Makefile.in
--- squid-2.5.STABLE5/src/repl/Makefile.in	Tue Feb 11 19:03:38 2003
+++ squid-2.5.STABLE6/src/repl/Makefile.in	Tue Jun  8 05:37:23 2004
@@ -15,7 +15,7 @@
 
 #  Makefile for storage modules in the Squid Object Cache server
 #
-#  $Id: Makefile.in,v 1.7.2.6 2003/02/12 02:03:38 hno Exp $
+#  $Id: Makefile.in,v 1.7.2.8 2004/06/08 11:37:23 hno Exp $
 #
 
 SHELL = @SHELL@
@@ -84,6 +84,7 @@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 LIBDLMALLOC = @LIBDLMALLOC@
 LIBREGEX = @LIBREGEX@
+LIBSASL = @LIBSASL@
 LIB_MALLOC = @LIB_MALLOC@
 LN = @LN@
 LN_S = @LN_S@
@@ -94,6 +95,7 @@
 OBJEXT = @OBJEXT@
 PACKAGE = @PACKAGE@
 PERL = @PERL@
+PKGCONFIG = @PKGCONFIG@
 RANLIB = @RANLIB@
 REGEXLIB = @REGEXLIB@
 REPL_LIBS = @REPL_LIBS@
diff -ruN squid-2.5.STABLE5/src/repl/heap/Makefile.in squid-2.5.STABLE6/src/repl/heap/Makefile.in
--- squid-2.5.STABLE5/src/repl/heap/Makefile.in	Tue Feb 11 19:03:39 2003
+++ squid-2.5.STABLE6/src/repl/heap/Makefile.in	Tue Jun  8 05:37:23 2004
@@ -79,6 +79,7 @@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 LIBDLMALLOC = @LIBDLMALLOC@
 LIBREGEX = @LIBREGEX@
+LIBSASL = @LIBSASL@
 LIB_MALLOC = @LIB_MALLOC@
 LN = @LN@
 LN_S = @LN_S@
@@ -89,6 +90,7 @@
 OBJEXT = @OBJEXT@
 PACKAGE = @PACKAGE@
 PERL = @PERL@
+PKGCONFIG = @PKGCONFIG@
 RANLIB = @RANLIB@
 REGEXLIB = @REGEXLIB@
 REPL_LIBS = @REPL_LIBS@
diff -ruN squid-2.5.STABLE5/src/repl/lru/Makefile.in squid-2.5.STABLE6/src/repl/lru/Makefile.in
--- squid-2.5.STABLE5/src/repl/lru/Makefile.in	Tue Feb 11 19:03:42 2003
+++ squid-2.5.STABLE6/src/repl/lru/Makefile.in	Tue Jun  8 05:37:23 2004
@@ -79,6 +79,7 @@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 LIBDLMALLOC = @LIBDLMALLOC@
 LIBREGEX = @LIBREGEX@
+LIBSASL = @LIBSASL@
 LIB_MALLOC = @LIB_MALLOC@
 LN = @LN@
 LN_S = @LN_S@
@@ -89,6 +90,7 @@
 OBJEXT = @OBJEXT@
 PACKAGE = @PACKAGE@
 PERL = @PERL@
+PKGCONFIG = @PKGCONFIG@
 RANLIB = @RANLIB@
 REGEXLIB = @REGEXLIB@
 REPL_LIBS = @REPL_LIBS@
diff -ruN squid-2.5.STABLE5/src/snmp_agent.c squid-2.5.STABLE6/src/snmp_agent.c
--- squid-2.5.STABLE5/src/snmp_agent.c	Tue Jun 24 15:08:42 2003
+++ squid-2.5.STABLE6/src/snmp_agent.c	Mon May 31 16:39:00 2004
@@ -1,6 +1,6 @@
 
 /*
- * $Id: snmp_agent.c,v 1.83.2.2 2003/06/24 21:08:42 wessels Exp $
+ * $Id: snmp_agent.c,v 1.83.2.3 2004/05/31 22:39:00 hno Exp $
  *
  * DEBUG: section 49     SNMP Interface
  * AUTHOR: Kostas Anagnostakis
@@ -285,7 +285,7 @@
     case PERF_SYS_CURUNLREQ:
 	Answer = snmp_var_new_integer(Var->name, Var->name_length,
 	    (snint) statCounter.unlink.requests,
-	    SMI_GAUGE32);
+	    SMI_COUNTER32);
 	break;
     case PERF_SYS_CURUNUSED_FD:
 	Answer = snmp_var_new_integer(Var->name, Var->name_length,
diff -ruN squid-2.5.STABLE5/src/ssl.c squid-2.5.STABLE6/src/ssl.c
--- squid-2.5.STABLE5/src/ssl.c	Wed Aug  6 07:49:02 2003
+++ squid-2.5.STABLE6/src/ssl.c	Mon Jun  7 15:20:34 2004
@@ -1,6 +1,6 @@
 
 /*
- * $Id: ssl.c,v 1.118.2.4 2003/08/06 13:49:02 hno Exp $
+ * $Id: ssl.c,v 1.118.2.6 2004/06/07 21:20:34 hno Exp $
  *
  * DEBUG: section 26    Secure Sockets Layer Proxy
  * AUTHOR: Duane Wessels
@@ -218,7 +218,7 @@
 	if (!ignoreErrno(errno))
 	    comm_close(fd);
     } else if (len == 0) {
-	comm_close(sslState->server.fd);
+	comm_close(fd);
     }
     if (cbdataValid(sslState))
 	sslSetSelect(sslState);
@@ -326,7 +326,10 @@
 	sslState->server.len -= len;
 	/* increment total object size */
 	if (sslState->size_ptr)
-	    *sslState->size_ptr += len;
+#if SIZEOF_SIZE_T == 4
+	    if (*sslState->size_ptr < 0x7FFF0000)
+#endif
+		*sslState->size_ptr += len;
 	if (sslState->server.len > 0) {
 	    /* we didn't write the whole thing */
 	    xmemmove(sslState->server.buf,
@@ -376,10 +379,13 @@
 {
     SslStateData *sslState = data;
     assert(sslState != NULL);
+    /* temporary lock to save our own feets (comm_close -> sslClientClosed -> Free) */
+    cbdataLock(sslState);
     if (sslState->client.fd > -1)
 	comm_close(sslState->client.fd);
     if (sslState->server.fd > -1)
 	comm_close(sslState->server.fd);
+    cbdataUnlock(sslState);
 }
 
 
@@ -432,6 +438,33 @@
     }
 }
 
+static void
+sslConnectTimeout(int fd, void *data)
+{
+    SslStateData *sslState = data;
+    request_t *request = sslState->request;
+    ErrorState *err = NULL;
+    if (sslState->servers->peer)
+	hierarchyNote(&sslState->request->hier, sslState->servers->code,
+	    sslState->servers->peer->host);
+    else if (Config.onoff.log_ip_on_direct)
+	hierarchyNote(&sslState->request->hier, sslState->servers->code,
+	    fd_table[sslState->server.fd].ipaddr);
+    else
+	hierarchyNote(&sslState->request->hier, sslState->servers->code,
+	    sslState->host);
+    comm_close(fd);
+    err = errorCon(ERR_CONNECT_FAIL, HTTP_SERVICE_UNAVAILABLE);
+    *sslState->status_ptr = HTTP_SERVICE_UNAVAILABLE;
+    err->xerrno = ETIMEDOUT;
+    err->host = xstrdup(sslState->host);
+    err->port = sslState->port;
+    err->request = requestLink(request);
+    err->callback = sslErrorComplete;
+    err->callback_data = sslState;
+    errorSend(sslState->client.fd, err);
+}
+
 CBDATA_TYPE(SslStateData);
 void
 sslStart(clientHttpRequest * http, size_t * size_ptr, int *status_ptr)
@@ -526,7 +559,7 @@
 	sslState);
     commSetTimeout(sslState->server.fd,
 	Config.Timeout.connect,
-	sslTimeout,
+	sslConnectTimeout,
 	sslState);
     peerSelect(request,
 	NULL,
diff -ruN squid-2.5.STABLE5/src/store.c squid-2.5.STABLE6/src/store.c
--- squid-2.5.STABLE5/src/store.c	Wed Sep 24 16:30:22 2003
+++ squid-2.5.STABLE6/src/store.c	Mon May 31 15:28:30 2004
@@ -1,6 +1,6 @@
 
 /*
- * $Id: store.c,v 1.544.2.5 2003/09/24 22:30:22 wessels Exp $
+ * $Id: store.c,v 1.544.2.6 2004/05/31 21:28:30 hno Exp $
  *
  * DEBUG: section 20    Storage Manager
  * AUTHOR: Harvest Derived
@@ -985,16 +985,16 @@
     long int i;
     /* Calculate size of hash table (maximum currently 64k buckets).  */
     i = Config.Swap.maxSize / Config.Store.avgObjectSize;
-    debug(20, 1) ("Swap maxSize %ld KB, estimated %ld objects\n",
-	(long int) Config.Swap.maxSize, i);
+    debug(20, 1) ("Swap maxSize %lu KB, estimated %ld objects\n",
+	(unsigned long int) Config.Swap.maxSize, i);
     i /= Config.Store.objectsPerBucket;
     debug(20, 1) ("Target number of buckets: %ld\n", i);
     /* ideally the full scan period should be configurable, for the
      * moment it remains at approximately 24 hours.  */
     store_hash_buckets = storeKeyHashBuckets(i);
     debug(20, 1) ("Using %d Store buckets\n", store_hash_buckets);
-    debug(20, 1) ("Max Mem  size: %ld KB\n", (long int) Config.memMaxSize >> 10);
-    debug(20, 1) ("Max Swap size: %ld KB\n", (long int) Config.Swap.maxSize);
+    debug(20, 1) ("Max Mem  size: %lu KB\n", (unsigned long int) (Config.memMaxSize >> 10));
+    debug(20, 1) ("Max Swap size: %lu KB\n", (unsigned long int) Config.Swap.maxSize);
 }
 
 void
diff -ruN squid-2.5.STABLE5/src/structs.h squid-2.5.STABLE6/src/structs.h
--- squid-2.5.STABLE5/src/structs.h	Wed Feb  4 10:42:28 2004
+++ squid-2.5.STABLE6/src/structs.h	Sun Apr 18 17:43:30 2004
@@ -1,6 +1,6 @@
 
 /*
- * $Id: structs.h,v 1.408.2.23 2004/02/04 17:42:28 hno Exp $
+ * $Id: structs.h,v 1.408.2.24 2004/04/18 23:43:30 hno Exp $
  *
  *
  * SQUID Web Proxy Cache          http://www.squid-cache.org/
@@ -986,6 +986,7 @@
     http_state_flags flags;
     FwdState *fwd;
     char *body_buf;
+    int body_buf_sz;
 };
 
 struct _icpUdpData {
