diff -ruN squid-2.6.STABLE5/ChangeLog squid-2.6.STABLE6/ChangeLog --- squid-2.6.STABLE5/ChangeLog Fri Nov 3 06:16:21 2006 +++ squid-2.6.STABLE6/ChangeLog Mon Dec 11 16:20:13 2006 @@ -1,3 +1,35 @@ +Changes to squid-2.6.STABLE6 (Dec 12 2006) + + - Bug #1817: Assertion failure assert(buflen >= copy_sz) in htcp.c htcpBuildAuth() + - Add client source port logformat tag >p + - Cleanup of transparent & accelerator mode request parsing to untangle the firewall dependencies a bit + - Bug #1799: Harmless 1 byte buffer overflow on long host names in /etc/hosts + - automake no longer recommends mkinstalldirs. Removed. + - Only use crypt() if it's available, allowing ncsa_auth to be built + on platofms without crypt() support. + - Windows port documentation updates + - Bug #1818: Assertion failure assert(e->swap_dirn >= 0) in fs/coss/store_dir_coss.c storeCoss_DeleteStoreEntry + - Bug #1117: assertion failed: aufs/store_dir_aufs.c:642: "rb->flags.need_to_validate" + - Remove extra newline in redirect message sent by deny_info http://... aclname + - Bug #1805: assertion failed: StatHist.c:195: "D[i] >= 0" + - Clarify the external_acl_type helper format specification and some defaults + - Add support for the weight= parameter to round-robin peers + - Bug #1832: Error building squid-2.6.STABLE5 using --enable-truncate + - Convert snmpDebugOid to use a temporary String object instead of strcat + - Document that proxy_auth also accepts -i for case-insensitive operation + - Remove malloc/free of temporary buffer in time parsing routines. + - Reduce memory allocator pressure by not continually allocating client-side read buffers + - Accept large dates >2^31 on 64-bit platformst. Seen for example in the Google logo. + - Convert the connStateData->chr single link list to a normal dlink_list for clarity. + - Bug #1584: Unable to register with multiple WCCP2 routers + - Fix the WCCPv2 mask assignment code to not crash as the value assignments are built. + - Bug #439: Multicast ICP peering is unstable and considers most peers dead + - Bug #1801: NTLM authentication ends up in a loop if the server responds with a retriable error + - Bug #1839: Cosmetic debug message cleanup in peerHandleHtcpReply. + - Bug #1840: Disable digest and netdb queries to multicast peers + - Bug #1641: assertion failed: stmem.c:149: "size > 0" while processing certain Vary objects + - Fix build errors when using latest MinGW Windows environment + Changes to squid-2.6.STABLE5 (Now 3 2006) - Bug #1776: 2.6.STABLE4 aufs fails to compile if coss isn't enabled diff -ruN squid-2.6.STABLE5/Makefile.in squid-2.6.STABLE6/Makefile.in --- squid-2.6.STABLE5/Makefile.in Sun Oct 29 19:21:09 2006 +++ squid-2.6.STABLE6/Makefile.in Sat Nov 4 16:19:44 2006 @@ -15,7 +15,7 @@ @SET_MAKE@ # -# $Id: Makefile.in,v 1.50 2006/10/30 02:21:09 hno Exp $ +# $Id: Makefile.in,v 1.51 2006/11/04 23:19:44 hno Exp $ # srcdir = @srcdir@ top_srcdir = @top_srcdir@ @@ -43,8 +43,7 @@ $(srcdir)/Makefile.in $(top_srcdir)/configure \ $(top_srcdir)/include/autoconf.h.in COPYING ChangeLog INSTALL \ cfgaux/compile cfgaux/config.guess cfgaux/config.sub \ - cfgaux/depcomp cfgaux/install-sh cfgaux/missing \ - cfgaux/mkinstalldirs + cfgaux/depcomp cfgaux/install-sh cfgaux/missing subdir = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ @@ -53,7 +52,7 @@ $(ACLOCAL_M4) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno configure.status.lineno -mkinstalldirs = $(SHELL) $(top_srcdir)/cfgaux/mkinstalldirs +mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/include/autoconf.h CONFIG_CLEAN_FILES = SOURCES = diff -ruN squid-2.6.STABLE5/RELEASENOTES.html squid-2.6.STABLE6/RELEASENOTES.html --- squid-2.6.STABLE5/RELEASENOTES.html Fri Nov 3 06:20:46 2006 +++ squid-2.6.STABLE6/RELEASENOTES.html Mon Dec 11 16:21:04 2006 @@ -7,7 +7,7 @@

Squid 2.6 release notes

-

Squid Developers

$Id: release-2.6.html,v 1.36 2006/11/03 13:16:22 hno Exp $ +

Squid Developers

$Id: release-2.6.html,v 1.39 2006/12/11 00:57:40 hno Exp $
This document contains the release notes for version 2.6 of Squid. Squid is a WWW Cache application developed by the Web Caching community. @@ -42,6 +42,9 @@

10. Key changes squid-2.6.STABLE4 to 2.6.STABLE5

+

+

11. Key changes squid-2.6.STABLE5 to 2.6.STABLE6

+

1. Key changes from squid 2.5

@@ -340,7 +343,19 @@

-
Building Squid on Windows:

A reasonably recent release of Cygwin or MinGW is needed. Like other Unix/Linux environments, -devel version of libraries must be installed.
+

Building Squid on Windows:

A reasonably recent release of +Cygwin or +MinGW is needed.
+The usage of the Cygwin environment is very similar to other Unix/Linux environments, and -devel version of libraries must be installed.
+For the MinGW environment, the packages MSYS, MinGW and msysDTK must be installed. Some additional libraries and tools must be downloaded separately:

+OpenSSL: +Shining Light Productions Win32 OpenSSL
+libcrypt: +MinGW packages repository
+db-1.85: +TinyCOBOL download area
+uudecode: +Native Win32 ports of some GNU utilities

When running configure, --disable-wccp and --disable-wccpv2 options should always specified to avoid compile errors.

+
+Before build Squid with SSL support, some operations are needed (in the following example OpenSSL is installed in C:\OpenSSL and MinGW in C:\MinGW): +

+

@@ -491,10 +520,25 @@

  • Bug #1796: Assertion error HttpHeader.c:914: "str"
  • All comm loops now use the generic event framework
  • a number of other minor and cosmetic bugfixes. See the list of -squid-2.6.STABLE4 changes and the +squid-2.6.STABLE5 changes and the ChangeLog file for details.
  • +

    11. Key changes squid-2.6.STABLE5 to 2.6.STABLE6

    + +

    +

    +

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