diff -u -r -N squid-3.4.8/aclocal.m4 squid-3.4.9/aclocal.m4 --- squid-3.4.8/aclocal.m4 2014-09-15 01:17:33.000000000 -0700 +++ squid-3.4.9/aclocal.m4 2014-10-31 02:37:02.000000000 -0700 @@ -103,10 +103,9 @@ # configured tree to be moved without reconfiguration. AC_DEFUN([AM_AUX_DIR_EXPAND], -[dnl Rely on autoconf to set up CDPATH properly. -AC_PREREQ([2.50])dnl -# expand $ac_aux_dir to an absolute path -am_aux_dir=`cd $ac_aux_dir && pwd` +[AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl +# Expand $ac_aux_dir to an absolute path. +am_aux_dir=`cd "$ac_aux_dir" && pwd` ]) # AM_CONDITIONAL -*- Autoconf -*- diff -u -r -N squid-3.4.8/cfgaux/config.sub squid-3.4.9/cfgaux/config.sub --- squid-3.4.8/cfgaux/config.sub 2014-09-15 01:17:57.000000000 -0700 +++ squid-3.4.9/cfgaux/config.sub 2014-10-31 02:37:24.000000000 -0700 @@ -2,7 +2,7 @@ # Configuration validation subroutine script. # Copyright 1992-2014 Free Software Foundation, Inc. -timestamp='2014-05-01' +timestamp='2014-09-11' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -302,6 +302,7 @@ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle \ | pyramid \ + | riscv32 | riscv64 \ | rl78 | rx \ | score \ | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ @@ -828,6 +829,10 @@ basic_machine=powerpc-unknown os=-morphos ;; + moxiebox) + basic_machine=moxie-unknown + os=-moxiebox + ;; msdos) basic_machine=i386-pc os=-msdos @@ -1373,7 +1378,7 @@ | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ | -linux-newlib* | -linux-musl* | -linux-uclibc* \ - | -uxpv* | -beos* | -mpeix* | -udk* \ + | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ diff -u -r -N squid-3.4.8/cfgaux/ltmain.sh squid-3.4.9/cfgaux/ltmain.sh --- squid-3.4.8/cfgaux/ltmain.sh 2014-09-15 01:17:39.000000000 -0700 +++ squid-3.4.9/cfgaux/ltmain.sh 2014-10-31 02:37:08.000000000 -0700 @@ -70,7 +70,7 @@ # compiler: $LTCC # compiler flags: $LTCFLAGS # linker: $LD (gnu? $with_gnu_ld) -# $progname: (GNU libtool) 2.4.2 Debian-2.4.2-1.10 +# $progname: (GNU libtool) 2.4.2 Debian-2.4.2-1.11 # automake: $automake_version # autoconf: $autoconf_version # @@ -80,7 +80,7 @@ PROGRAM=libtool PACKAGE=libtool -VERSION="2.4.2 Debian-2.4.2-1.10" +VERSION="2.4.2 Debian-2.4.2-1.11" TIMESTAMP="" package_revision=1.3337 diff -u -r -N squid-3.4.8/ChangeLog squid-3.4.9/ChangeLog --- squid-3.4.8/ChangeLog 2014-09-15 01:17:12.000000000 -0700 +++ squid-3.4.9/ChangeLog 2014-10-31 02:36:43.000000000 -0700 @@ -1,3 +1,15 @@ +Changes to squid-3.4.9 (31 Oct 2014): + + - Regression fix: ext_kerberos_ldap_group_acl typo in 3.4.7 update + - Bug 4102: sslbump cert contains only a dot character in key usage extension + - Bug 4093: source-maintenance.sh errors and warnings due to wrong tools/options + - Bug 4088: memory leak in external_acl_type helper with cache=0 or ttl=0 + - Bug 4024: Bad host/IP ::1 when using IPv4-only environment + - Bug 3803: ident leaks memory on failure + - kerberos_ldap_group/cert_tool: Remove ksh dependency + - ... and some automated code style updates + - ... and some documentation updates + Changes to squid-3.4.8 (15 Sep 2014): - Fix off by one in SNMP subsystem diff -u -r -N squid-3.4.8/compat/Makefile.in squid-3.4.9/compat/Makefile.in --- squid-3.4.8/compat/Makefile.in 2014-09-15 01:17:58.000000000 -0700 +++ squid-3.4.9/compat/Makefile.in 2014-10-31 02:37:25.000000000 -0700 @@ -83,9 +83,9 @@ build_triplet = @build@ host_triplet = @host@ DIST_COMMON = $(top_srcdir)/src/Common.am $(srcdir)/Makefile.in \ - $(srcdir)/Makefile.am drand48.c inet_pton.c psignal.c \ - strtoll.c strerror.c tempnam.c initgroups.c getaddrinfo.c \ - inet_ntop.c getnameinfo.c $(top_srcdir)/cfgaux/depcomp \ + $(srcdir)/Makefile.am getnameinfo.c initgroups.c getaddrinfo.c \ + strtoll.c inet_pton.c psignal.c tempnam.c strerror.c drand48.c \ + inet_ntop.c $(top_srcdir)/cfgaux/depcomp \ $(top_srcdir)/cfgaux/test-driver check_PROGRAMS = testPreCompiler$(EXEEXT) TESTS = testPreCompiler$(EXEEXT) testHeaders diff -u -r -N squid-3.4.8/configure squid-3.4.9/configure --- squid-3.4.8/configure 2014-09-15 01:18:44.000000000 -0700 +++ squid-3.4.9/configure 2014-10-31 02:38:13.000000000 -0700 @@ -1,7 +1,7 @@ #! /bin/sh # From configure.ac Revision. # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for Squid Web Proxy 3.4.8. +# Generated by GNU Autoconf 2.69 for Squid Web Proxy 3.4.9. # # Report bugs to . # @@ -595,8 +595,8 @@ # Identity of this package. PACKAGE_NAME='Squid Web Proxy' PACKAGE_TARNAME='squid' -PACKAGE_VERSION='3.4.8' -PACKAGE_STRING='Squid Web Proxy 3.4.8' +PACKAGE_VERSION='3.4.9' +PACKAGE_STRING='Squid Web Proxy 3.4.9' PACKAGE_BUGREPORT='http://bugs.squid-cache.org/' PACKAGE_URL='' @@ -1605,7 +1605,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 3.4.8 to adapt to many kinds of systems. +\`configure' configures Squid Web Proxy 3.4.9 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1675,7 +1675,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Squid Web Proxy 3.4.8:";; + short | recursive ) echo "Configuration of Squid Web Proxy 3.4.9:";; esac cat <<\_ACEOF @@ -2071,7 +2071,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Squid Web Proxy configure 3.4.8 +Squid Web Proxy configure 3.4.9 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -3175,7 +3175,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 3.4.8, which was +It was created by Squid Web Proxy $as_me 3.4.9, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -3728,8 +3728,8 @@ ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` -# expand $ac_aux_dir to an absolute path -am_aux_dir=`cd $ac_aux_dir && pwd` +# Expand $ac_aux_dir to an absolute path. +am_aux_dir=`cd "$ac_aux_dir" && pwd` if test x"${MISSING+set}" != xset; then case $am_aux_dir in @@ -4042,7 +4042,7 @@ # Define the identity of the package. PACKAGE='squid' - VERSION='3.4.8' + VERSION='3.4.9' cat >>confdefs.h <<_ACEOF @@ -34229,7 +34229,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Squid Web Proxy $as_me 3.4.8, which was +This file was extended by Squid Web Proxy $as_me 3.4.9, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -34295,7 +34295,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -Squid Web Proxy config.status 3.4.8 +Squid Web Proxy config.status 3.4.9 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff -u -r -N squid-3.4.8/configure.ac squid-3.4.9/configure.ac --- squid-3.4.8/configure.ac 2014-09-15 01:18:43.000000000 -0700 +++ squid-3.4.9/configure.ac 2014-10-31 02:38:13.000000000 -0700 @@ -1,4 +1,4 @@ -AC_INIT([Squid Web Proxy],[3.4.8],[http://bugs.squid-cache.org/],[squid]) +AC_INIT([Squid Web Proxy],[3.4.9],[http://bugs.squid-cache.org/],[squid]) AC_PREREQ(2.61) AC_CONFIG_HEADERS([include/autoconf.h]) AC_CONFIG_AUX_DIR(cfgaux) diff -u -r -N squid-3.4.8/doc/debug-sections.txt squid-3.4.9/doc/debug-sections.txt --- squid-3.4.8/doc/debug-sections.txt 2014-09-15 01:17:12.000000000 -0700 +++ squid-3.4.9/doc/debug-sections.txt 2014-10-31 02:36:43.000000000 -0700 @@ -1,14 +1,9 @@ section -section -- CGI Cache Manager -section -- External DISKD process implementation. -section -- Refcount allocator -section -- Unlink Daemon -section -- WWW Client section 00 Announcement Server section 00 Client Database -section 00 DNS Resolver Daemon section 00 Debug Routines +section 00 DNS Resolver Daemon section 00 Hash Tables section 00 UFS Store Dump Tool section 01 Main Loop @@ -56,14 +51,14 @@ section 22 Refresh Calculation section 23 URL Parsing section 23 URL Scheme parsing -section 25 MIME Parsing and Internal Icons section 25 MiME Header Parsing +section 25 MIME Parsing and Internal Icons section 26 Secure Sockets Layer Proxy section 27 Cache Announcer section 28 Access Control section 29 Authenticator -section 29 NTLM Authenticator section 29 Negotiate Authenticator +section 29 NTLM Authenticator section 30 Ident (RFC 931) section 31 Hypertext Caching Protocol section 32 Asynchronous Disk I/O @@ -85,8 +80,8 @@ section 46 Access Log - Apache combined format section 46 Access Log - Apache common format section 46 Access Log - Squid Custom format -section 46 Access Log - Squid ICAP Logging section 46 Access Log - Squid format +section 46 Access Log - Squid ICAP Logging section 46 Access Log - Squid referer format section 46 Access Log - Squid useragent format section 47 Store COSS Directory Routines @@ -126,15 +121,15 @@ section 78 DNS lookups section 78 DNS lookups; interacts with lib/rfc1035.c section 79 Disk IO Routines +section 79 Disk IO Routines section 79 Squid-side DISKD I/O functions. section 79 Squid-side Disk I/O functions. section 79 Storage Manager COSS Interface section 79 Storage Manager UFS Interface -section 79 Disk IO Routines section 80 WCCP Support +section 81 aio_xxx() POSIX emulation on Windows section 81 CPU Profiling Routines section 81 Store HEAP Removal Policies -section 81 aio_xxx() POSIX emulation on Windows section 82 External ACL section 83 SSL accelerator support section 84 Helper process maintenance @@ -150,5 +145,10 @@ section 90 Storage Manager Client-Side Interface section 92 Storage File System section 93 Adaptation -section 93 ICAP (RFC 3507) Client section 93 eCAP Interface +section 93 ICAP (RFC 3507) Client +section -- CGI Cache Manager +section -- External DISKD process implementation. +section -- Refcount allocator +section -- Unlink Daemon +section -- WWW Client diff -u -r -N squid-3.4.8/doc/manuals/language.list squid-3.4.9/doc/manuals/language.list --- squid-3.4.8/doc/manuals/language.list 2014-09-15 01:17:12.000000000 -0700 +++ squid-3.4.9/doc/manuals/language.list 2014-10-31 02:36:43.000000000 -0700 @@ -2,8 +2,8 @@ ar.lang \ cs.lang \ de.lang \ - en.lang \ en_AU.lang \ + en.lang \ es.lang \ fr.lang \ it.lang \ diff -u -r -N squid-3.4.8/doc/manuals/Makefile.in squid-3.4.9/doc/manuals/Makefile.in --- squid-3.4.8/doc/manuals/Makefile.in 2014-09-15 01:17:58.000000000 -0700 +++ squid-3.4.9/doc/manuals/Makefile.in 2014-10-31 02:37:26.000000000 -0700 @@ -387,8 +387,8 @@ ar.lang \ cs.lang \ de.lang \ - en.lang \ en_AU.lang \ + en.lang \ es.lang \ fr.lang \ it.lang \ diff -u -r -N squid-3.4.8/helpers/basic_auth/DB/basic_db_auth.8 squid-3.4.9/helpers/basic_auth/DB/basic_db_auth.8 --- squid-3.4.8/helpers/basic_auth/DB/basic_db_auth.8 2014-09-15 01:55:44.000000000 -0700 +++ squid-3.4.9/helpers/basic_auth/DB/basic_db_auth.8 2014-10-31 03:18:32.000000000 -0700 @@ -133,7 +133,7 @@ .\" ======================================================================== .\" .IX Title "BASIC_DB_AUTH 1" -.TH BASIC_DB_AUTH 1 "2014-09-15" "perl v5.20.0" "User Contributed Perl Documentation" +.TH BASIC_DB_AUTH 1 "2014-10-31" "perl v5.20.1" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l diff -u -r -N squid-3.4.8/helpers/basic_auth/getpwnam/basic_getpwnam_auth.8 squid-3.4.9/helpers/basic_auth/getpwnam/basic_getpwnam_auth.8 --- squid-3.4.8/helpers/basic_auth/getpwnam/basic_getpwnam_auth.8 2014-09-15 01:17:12.000000000 -0700 +++ squid-3.4.9/helpers/basic_auth/getpwnam/basic_getpwnam_auth.8 2014-10-31 02:36:43.000000000 -0700 @@ -1,9 +1,7 @@ .if !'po4a'hide' .TH basic_getpwnam_auth 8 . .SH NAME -.if !'po4a'hide' .B basic_getpwnam_auth -.if !'po4a'hide' \- -Local Users auth helper for Squid +basic_getpwnam_auth \- Local Users auth helper for Squid . .SH SYNOPSIS .if !'po4a'hide' .B basic_getpwnam_auth diff -u -r -N squid-3.4.8/helpers/basic_auth/LDAP/basic_ldap_auth.8 squid-3.4.9/helpers/basic_auth/LDAP/basic_ldap_auth.8 --- squid-3.4.8/helpers/basic_auth/LDAP/basic_ldap_auth.8 2014-09-15 01:17:12.000000000 -0700 +++ squid-3.4.9/helpers/basic_auth/LDAP/basic_ldap_auth.8 2014-10-31 02:36:43.000000000 -0700 @@ -1,9 +1,7 @@ .if !'po4a'hide' .TH basic_ldap_auth 8 "14 January 2005" . .SH NAME -.if !'po4a'hide' .B basic_ldap_auth -.if !'po4a'hide' \- -LDAP authentication helper for Squid +basic_ldap_auth \- LDAP authentication helper for Squid . .SH SYNOPSIS .if !'po4a'hide' .B basic_ldap_auth diff -u -r -N squid-3.4.8/helpers/basic_auth/NCSA/basic_ncsa_auth.8 squid-3.4.9/helpers/basic_auth/NCSA/basic_ncsa_auth.8 --- squid-3.4.8/helpers/basic_auth/NCSA/basic_ncsa_auth.8 2014-09-15 01:17:12.000000000 -0700 +++ squid-3.4.9/helpers/basic_auth/NCSA/basic_ncsa_auth.8 2014-10-31 02:36:43.000000000 -0700 @@ -1,9 +1,7 @@ .if !'po4a'hide' .TH basic_ncsa_auth 8 "May 16, 2006" . .SH NAME -.if !'po4a'hide' .B basic_ncsa_auth -.if !'po4a'hide' \- -NCSA httpd-style password file authentication helper for Squid +basic_ncsa_auth \- NCSA httpd-style password file authentication helper for Squid . .SH SYNOPSIS .if !'po4a'hide' .B basic_ncsa_auth diff -u -r -N squid-3.4.8/helpers/basic_auth/PAM/basic_pam_auth.8 squid-3.4.9/helpers/basic_auth/PAM/basic_pam_auth.8 --- squid-3.4.8/helpers/basic_auth/PAM/basic_pam_auth.8 2014-09-15 01:17:12.000000000 -0700 +++ squid-3.4.9/helpers/basic_auth/PAM/basic_pam_auth.8 2014-10-31 02:36:43.000000000 -0700 @@ -1,9 +1,7 @@ .if !'po4a'hide' .TH basic_pam_auth 8 "5 Sep 2003" . .SH NAME -.if !'po4a'hide' .B basic_pam_auth -.if !'po4a'hide' \- -Squid PAM Basic authentication helper +basic_pam_auth \- PAM Basic authentication helper for Squid . .SH SYNOPSIS .if !'po4a'hide' .B "basic_pam_auth [\-n \"" diff -u -r -N squid-3.4.8/helpers/basic_auth/RADIUS/basic_radius_auth.8 squid-3.4.9/helpers/basic_auth/RADIUS/basic_radius_auth.8 --- squid-3.4.8/helpers/basic_auth/RADIUS/basic_radius_auth.8 2014-09-15 01:17:12.000000000 -0700 +++ squid-3.4.9/helpers/basic_auth/RADIUS/basic_radius_auth.8 2014-10-31 02:36:43.000000000 -0700 @@ -1,9 +1,7 @@ .if !'po4a'hide' .TH basic_radius_auth 8 "7 August 2004" . .SH NAME -.if !'po4a'hide' .B basic_radius_auth -.if !'po4a'hide' \- -Squid RADIUS authentication helper +basic_radius_auth \- Squid RADIUS authentication helper . .SH SYNOPSIS .if !'po4a'hide' .B basic_radius_auth diff -u -r -N squid-3.4.8/helpers/basic_auth/SASL/basic_sasl_auth.8 squid-3.4.9/helpers/basic_auth/SASL/basic_sasl_auth.8 --- squid-3.4.8/helpers/basic_auth/SASL/basic_sasl_auth.8 2014-09-15 01:17:12.000000000 -0700 +++ squid-3.4.9/helpers/basic_auth/SASL/basic_sasl_auth.8 2014-10-31 02:36:43.000000000 -0700 @@ -1,9 +1,7 @@ .if !'po4a'hide' .TH basic_sasl_auth 8 . .SH NAME -.if !'po4a'hide' .B basic_sasl_auth -.if !'po4a'hide' \- -Basic Authentication using SASL (specifically the cyrus-sasl authentication method) +basic_sasl_auth \- Basic Authentication using SASL (specifically the cyrus-sasl authentication method) .PP Version 1.0 . diff -u -r -N squid-3.4.8/helpers/basic_auth/SSPI/basic_sspi_auth.8 squid-3.4.9/helpers/basic_auth/SSPI/basic_sspi_auth.8 --- squid-3.4.8/helpers/basic_auth/SSPI/basic_sspi_auth.8 2014-09-15 01:17:12.000000000 -0700 +++ squid-3.4.9/helpers/basic_auth/SSPI/basic_sspi_auth.8 2014-10-31 02:36:43.000000000 -0700 @@ -1,9 +1,7 @@ .if !'po4a'hide' .TH basic_sspi_auth.exe 8 . .SH NAME -.if !'po4a'hide' .B basic_sspi_auth.exe -.if !'po4a'hide' \- -Basic authentication protocol +basic_sspi_auth.exe \- Basic authentication protocol .PP Version 2.0 . diff -u -r -N squid-3.4.8/helpers/digest_auth/file/digest_file_auth.8 squid-3.4.9/helpers/digest_auth/file/digest_file_auth.8 --- squid-3.4.8/helpers/digest_auth/file/digest_file_auth.8 2014-09-15 01:17:12.000000000 -0700 +++ squid-3.4.9/helpers/digest_auth/file/digest_file_auth.8 2014-10-31 02:36:43.000000000 -0700 @@ -1,9 +1,7 @@ .if !'po4a'hide' .TH digest_file_auth 8 . .SH NAME -.if !'po4a'hide' .B digest_file_auth -.if !'po4a'hide' \- -File based digest authentication helper for Squid. +digest_file_auth \- File based digest authentication helper for Squid. .PP Version 1.0 . diff -u -r -N squid-3.4.8/helpers/external_acl/AD_group/ext_ad_group_acl.8 squid-3.4.9/helpers/external_acl/AD_group/ext_ad_group_acl.8 --- squid-3.4.8/helpers/external_acl/AD_group/ext_ad_group_acl.8 2014-09-15 01:17:12.000000000 -0700 +++ squid-3.4.9/helpers/external_acl/AD_group/ext_ad_group_acl.8 2014-10-31 02:36:43.000000000 -0700 @@ -1,9 +1,7 @@ .if !'po4a'hide' .TH ext_ad_group_acl.exe 8 . .SH NAME -.if !'po4a'hide' .B ext_ad_group_acl.exe -.if !'po4a'hide' \- -Squid external ACL helper to check Windows users group membership. +ext_ad_group_acl.exe \- Squid external ACL helper to check Windows users group membership. .PP Version 2.0 . diff -u -r -N squid-3.4.8/helpers/external_acl/eDirectory_userip/ext_edirectory_userip_acl.8 squid-3.4.9/helpers/external_acl/eDirectory_userip/ext_edirectory_userip_acl.8 --- squid-3.4.8/helpers/external_acl/eDirectory_userip/ext_edirectory_userip_acl.8 2014-09-15 01:17:12.000000000 -0700 +++ squid-3.4.9/helpers/external_acl/eDirectory_userip/ext_edirectory_userip_acl.8 2014-10-31 02:36:43.000000000 -0700 @@ -1,9 +1,7 @@ .if !'po4a'hide' .TH ext_edirectory_userip_acl 8 . .SH NAME -.if !'po4a'hide' .B ext_edirectory_userip_acl -.if !'po4a'hide' \- -Squid eDirectory IP Lookup Helper +ext_edirectory_userip_acl \- Squid eDirectory IP Lookup Helper .PP Version 2.0 . diff -u -r -N squid-3.4.8/helpers/external_acl/file_userip/ext_file_userip_acl.8 squid-3.4.9/helpers/external_acl/file_userip/ext_file_userip_acl.8 --- squid-3.4.8/helpers/external_acl/file_userip/ext_file_userip_acl.8 2014-09-15 01:17:12.000000000 -0700 +++ squid-3.4.9/helpers/external_acl/file_userip/ext_file_userip_acl.8 2014-10-31 02:36:43.000000000 -0700 @@ -1,9 +1,7 @@ .if !'po4a'hide' .TH ext_file_userip_acl 8 . .SH NAME -.if !'po4a'hide' .B ext_file_userip_acl -.if !'po4a'hide' \- -Restrict users to certain IP addresses, using a text file backend. +ext_file_userip_acl \- Restrict users to certain IP addresses, using a text file backend. .PP Version 1.0 . diff -u -r -N squid-3.4.8/helpers/external_acl/kerberos_ldap_group/cert_tool squid-3.4.9/helpers/external_acl/kerberos_ldap_group/cert_tool --- squid-3.4.8/helpers/external_acl/kerberos_ldap_group/cert_tool 2014-09-15 01:17:12.000000000 -0700 +++ squid-3.4.9/helpers/external_acl/kerberos_ldap_group/cert_tool 2014-10-31 02:36:43.000000000 -0700 @@ -1,4 +1,4 @@ -#!/bin/ksh +#!/bin/sh # # ----------------------------------------------------------------------------- # @@ -64,9 +64,9 @@ # Create database for Sun ldap and pem file for Openldap # rm ${server}_[0-9]*.pem 2>/dev/null -let i=0 - ls ${server}_[0-9]*.cert | while read file; do - let i=i+1 +i=0 +ls ${server}_[0-9]*.cert | while read file; do + i=$(($i+1)) cat $file >> ${server}_$i.pem CA=`openssl x509 -noout -text -in ${server}_$i.pem | grep -i "CA:.*true"` if [ -n "$CA" ]; then diff -u -r -N squid-3.4.8/helpers/external_acl/kerberos_ldap_group/ext_kerberos_ldap_group_acl.8 squid-3.4.9/helpers/external_acl/kerberos_ldap_group/ext_kerberos_ldap_group_acl.8 --- squid-3.4.8/helpers/external_acl/kerberos_ldap_group/ext_kerberos_ldap_group_acl.8 2014-09-15 01:17:12.000000000 -0700 +++ squid-3.4.9/helpers/external_acl/kerberos_ldap_group/ext_kerberos_ldap_group_acl.8 2014-10-31 02:36:43.000000000 -0700 @@ -1,9 +1,7 @@ .if !'po4a'hide' .TH ext_kerberos_ldap_group_acl 8 . .SH NAME -.if !'po4a'hide' .B ext_kerberos_ldap_group_acl -.if !'po4a'hide' \- -Squid LDAP external acl group helper for Kerberos or NTLM credentials. +ext_kerberos_ldap_group_acl \- Squid LDAP external acl group helper for Kerberos or NTLM credentials. .PP Version 1.3.0sq . diff -u -r -N squid-3.4.8/helpers/external_acl/kerberos_ldap_group/support_ldap.cc squid-3.4.9/helpers/external_acl/kerberos_ldap_group/support_ldap.cc --- squid-3.4.8/helpers/external_acl/kerberos_ldap_group/support_ldap.cc 2014-09-15 01:17:12.000000000 -0700 +++ squid-3.4.9/helpers/external_acl/kerberos_ldap_group/support_ldap.cc 2014-10-31 02:36:43.000000000 -0700 @@ -811,7 +811,7 @@ #endif } - if (kc && (!margs->lurl || !margs->luser | !margs->lpass)) { + if (kc && (!margs->lurl || !margs->luser || !margs->lpass)) { /* * If Kerberos fails and no url given exit here */ diff -u -r -N squid-3.4.8/helpers/external_acl/LDAP_group/ext_ldap_group_acl.8 squid-3.4.9/helpers/external_acl/LDAP_group/ext_ldap_group_acl.8 --- squid-3.4.8/helpers/external_acl/LDAP_group/ext_ldap_group_acl.8 2014-09-15 01:17:12.000000000 -0700 +++ squid-3.4.9/helpers/external_acl/LDAP_group/ext_ldap_group_acl.8 2014-10-31 02:36:43.000000000 -0700 @@ -1,9 +1,7 @@ .if !'po4a'hide' .TH ext_ldap_group_acl 8 "30 January 2005" . .SH NAME -.if !'po4a'hide' .B ext_ldap_group_acl -.if !'po4a'hide' \- -Squid LDAP external acl group helper +ext_ldap_group_acl \- Squid LDAP external acl group helper .PP Version 2.17 . diff -u -r -N squid-3.4.8/helpers/external_acl/LM_group/ext_lm_group_acl.8 squid-3.4.9/helpers/external_acl/LM_group/ext_lm_group_acl.8 --- squid-3.4.8/helpers/external_acl/LM_group/ext_lm_group_acl.8 2014-09-15 01:17:12.000000000 -0700 +++ squid-3.4.9/helpers/external_acl/LM_group/ext_lm_group_acl.8 2014-10-31 02:36:43.000000000 -0700 @@ -1,9 +1,7 @@ .if !'po4a'hide' .TH ext_lm_group_acl 8 . .SH NAME -.if !'po4a'hide' .B ext_lm_group_acl -.if !'po4a'hide' \- -Squid external ACL helper to check Windows users group membership. +ext_lm_group_acl \- Squid external ACL helper to check Windows users group membership. .PP Version 1.22 . diff -u -r -N squid-3.4.8/helpers/external_acl/session/ext_session_acl.8 squid-3.4.9/helpers/external_acl/session/ext_session_acl.8 --- squid-3.4.8/helpers/external_acl/session/ext_session_acl.8 2014-09-15 01:17:12.000000000 -0700 +++ squid-3.4.9/helpers/external_acl/session/ext_session_acl.8 2014-10-31 02:36:43.000000000 -0700 @@ -1,9 +1,7 @@ .if !'po4a'hide' .TH ext_session_acl 8 "9 October 2011" . .SH NAME -.if !'po4a'hide' .B ext_session_acl -.if !'po4a'hide' \- -Squid session tracking external acl helper. +ext_session_acl \- Squid session tracking external acl helper. .PP Version 1.2 . diff -u -r -N squid-3.4.8/helpers/external_acl/SQL_session/ext_sql_session_acl.8 squid-3.4.9/helpers/external_acl/SQL_session/ext_sql_session_acl.8 --- squid-3.4.8/helpers/external_acl/SQL_session/ext_sql_session_acl.8 2014-09-15 01:56:06.000000000 -0700 +++ squid-3.4.9/helpers/external_acl/SQL_session/ext_sql_session_acl.8 2014-10-31 03:18:56.000000000 -0700 @@ -133,7 +133,7 @@ .\" ======================================================================== .\" .IX Title "EXT_SQL_SESSION_ACL 1" -.TH EXT_SQL_SESSION_ACL 1 "2014-09-15" "perl v5.20.0" "User Contributed Perl Documentation" +.TH EXT_SQL_SESSION_ACL 1 "2014-10-31" "perl v5.20.1" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l diff -u -r -N squid-3.4.8/helpers/external_acl/time_quota/ext_time_quota_acl.8 squid-3.4.9/helpers/external_acl/time_quota/ext_time_quota_acl.8 --- squid-3.4.8/helpers/external_acl/time_quota/ext_time_quota_acl.8 2014-09-15 01:17:12.000000000 -0700 +++ squid-3.4.9/helpers/external_acl/time_quota/ext_time_quota_acl.8 2014-10-31 02:36:43.000000000 -0700 @@ -1,9 +1,7 @@ .if !'po4a'hide' .TH ext_time_quota_acl 8 "22 March 2011" . .SH NAME -.if !'po4a'hide' .B ext_time_quota_acl -.if !'po4a'hide' \- -Squid time quota external acl helper. +ext_time_quota_acl \- Squid time quota external acl helper. .PP Version 1.0 . diff -u -r -N squid-3.4.8/helpers/external_acl/unix_group/ext_unix_group_acl.8 squid-3.4.9/helpers/external_acl/unix_group/ext_unix_group_acl.8 --- squid-3.4.8/helpers/external_acl/unix_group/ext_unix_group_acl.8 2014-09-15 01:17:12.000000000 -0700 +++ squid-3.4.9/helpers/external_acl/unix_group/ext_unix_group_acl.8 2014-10-31 02:36:43.000000000 -0700 @@ -1,9 +1,7 @@ .if !'po4a'hide' .TH ext_unix_group_acl 8 "12 August 2002" . .SH NAME -.if !'po4a'hide' .B ext_unix_group_acl -.if !'po4a'hide' \- -Squid UNIX Group ACL helper +ext_unix_group_acl \- Squid UNIX Group ACL helper . .SH SYNOPSIS .if !'po4a'hide' .B "ext_unix_group_acl [\-d] [\-g " diff -u -r -N squid-3.4.8/helpers/external_acl/wbinfo_group/ext_wbinfo_group_acl.8 squid-3.4.9/helpers/external_acl/wbinfo_group/ext_wbinfo_group_acl.8 --- squid-3.4.8/helpers/external_acl/wbinfo_group/ext_wbinfo_group_acl.8 2014-09-15 01:56:08.000000000 -0700 +++ squid-3.4.9/helpers/external_acl/wbinfo_group/ext_wbinfo_group_acl.8 2014-10-31 03:19:00.000000000 -0700 @@ -133,7 +133,7 @@ .\" ======================================================================== .\" .IX Title "EXT_WBINFO_GROUP_ACL.PL.IN 1" -.TH EXT_WBINFO_GROUP_ACL.PL.IN 1 "2014-09-15" "perl v5.20.0" "User Contributed Perl Documentation" +.TH EXT_WBINFO_GROUP_ACL.PL.IN 1 "2014-10-31" "perl v5.20.1" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l diff -u -r -N squid-3.4.8/helpers/log_daemon/DB/log_db_daemon.8 squid-3.4.9/helpers/log_daemon/DB/log_db_daemon.8 --- squid-3.4.8/helpers/log_daemon/DB/log_db_daemon.8 2014-09-15 01:56:10.000000000 -0700 +++ squid-3.4.9/helpers/log_daemon/DB/log_db_daemon.8 2014-10-31 03:19:02.000000000 -0700 @@ -133,7 +133,7 @@ .\" ======================================================================== .\" .IX Title "LOG_DB_DAEMON 1" -.TH LOG_DB_DAEMON 1 "2014-09-15" "perl v5.20.0" "User Contributed Perl Documentation" +.TH LOG_DB_DAEMON 1 "2014-10-31" "perl v5.20.1" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l diff -u -r -N squid-3.4.8/helpers/negotiate_auth/kerberos/negotiate_kerberos_auth.8 squid-3.4.9/helpers/negotiate_auth/kerberos/negotiate_kerberos_auth.8 --- squid-3.4.8/helpers/negotiate_auth/kerberos/negotiate_kerberos_auth.8 2014-09-15 01:17:12.000000000 -0700 +++ squid-3.4.9/helpers/negotiate_auth/kerberos/negotiate_kerberos_auth.8 2014-10-31 02:36:43.000000000 -0700 @@ -1,9 +1,7 @@ .if !'po4a'hide' .TH negotiate_kerberos_auth 8 . .SH NAME -.if !'po4a'hide' .B negotiate_kerberos_auth -.if !'po4a'hide' \- -Squid kerberos based authentication helper +negotiate_kerberos_auth \- Squid kerberos based authentication helper .PP Version 3.0.4sq . diff -u -r -N squid-3.4.8/helpers/ntlm_auth/SSPI/ntlm_sspi_auth.8 squid-3.4.9/helpers/ntlm_auth/SSPI/ntlm_sspi_auth.8 --- squid-3.4.8/helpers/ntlm_auth/SSPI/ntlm_sspi_auth.8 2014-09-15 01:17:12.000000000 -0700 +++ squid-3.4.9/helpers/ntlm_auth/SSPI/ntlm_sspi_auth.8 2014-10-31 02:36:43.000000000 -0700 @@ -1,10 +1,7 @@ .if !'po4a'hide' .TH ntlm_sspi_auth.exe 8 . .SH NAME -.if !'po4a'hide' .B ntlm_sspi_auth.exe -.if !'po4a'hide' \- -Native Windows NTLM/NTLMv2 authenticator for Squid with -automatic support for NTLM NEGOTIATE packets. +ntlm_sspi_auth.exe \- Native Windows NTLM/NTLMv2 authenticator for Squid .PP Version 1.22 . diff -u -r -N squid-3.4.8/helpers/storeid_rewrite/file/storeid_file_rewrite.8 squid-3.4.9/helpers/storeid_rewrite/file/storeid_file_rewrite.8 --- squid-3.4.8/helpers/storeid_rewrite/file/storeid_file_rewrite.8 2014-09-15 01:56:22.000000000 -0700 +++ squid-3.4.9/helpers/storeid_rewrite/file/storeid_file_rewrite.8 2014-10-31 03:19:13.000000000 -0700 @@ -133,7 +133,7 @@ .\" ======================================================================== .\" .IX Title "STOREID_FILE_REWRITE 1" -.TH STOREID_FILE_REWRITE 1 "2014-09-15" "perl v5.20.0" "User Contributed Perl Documentation" +.TH STOREID_FILE_REWRITE 1 "2014-10-31" "perl v5.20.1" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l diff -u -r -N squid-3.4.8/icons/list squid-3.4.9/icons/list --- squid-3.4.8/icons/list 2014-09-15 01:17:12.000000000 -0700 +++ squid-3.4.9/icons/list 2014-10-31 02:36:43.000000000 -0700 @@ -14,8 +14,8 @@ silk/database.png \ silk/database_table.png \ silk/drive_disk.png \ - silk/film.png \ silk/film_key.png \ + silk/film.png \ silk/folder.png \ silk/folder_table.png \ silk/image.png \ @@ -24,18 +24,18 @@ silk/layout.png \ silk/link.png \ silk/music.png \ - silk/package.png \ silk/package_go.png \ + silk/package.png \ silk/page_code.png \ silk/page_excel.png \ silk/page_green.png \ - silk/page_white.png \ silk/page_white_acrobat.png \ - silk/page_white_c.png \ silk/page_white_cplusplus.png \ + silk/page_white_c.png \ silk/page_white_flash.png \ silk/page_white_magnify.png \ silk/page_white_picture.png \ + silk/page_white.png \ silk/page_white_powerpoint.png \ silk/page_white_stack.png \ silk/page_white_text.png \ @@ -44,8 +44,8 @@ silk/page_world.png \ silk/photo.png \ silk/picture.png \ - silk/plugin.png \ silk/plugin_add.png \ - silk/script.png \ + silk/plugin.png \ silk/script_gear.png \ - silk/script_palette.png + silk/script_palette.png \ + silk/script.png diff -u -r -N squid-3.4.8/icons/Makefile.in squid-3.4.9/icons/Makefile.in --- squid-3.4.8/icons/Makefile.in 2014-09-15 01:18:15.000000000 -0700 +++ squid-3.4.9/icons/Makefile.in 2014-10-31 02:37:43.000000000 -0700 @@ -429,8 +429,8 @@ silk/database.png \ silk/database_table.png \ silk/drive_disk.png \ - silk/film.png \ silk/film_key.png \ + silk/film.png \ silk/folder.png \ silk/folder_table.png \ silk/image.png \ @@ -439,18 +439,18 @@ silk/layout.png \ silk/link.png \ silk/music.png \ - silk/package.png \ silk/package_go.png \ + silk/package.png \ silk/page_code.png \ silk/page_excel.png \ silk/page_green.png \ - silk/page_white.png \ silk/page_white_acrobat.png \ - silk/page_white_c.png \ silk/page_white_cplusplus.png \ + silk/page_white_c.png \ silk/page_white_flash.png \ silk/page_white_magnify.png \ silk/page_white_picture.png \ + silk/page_white.png \ silk/page_white_powerpoint.png \ silk/page_white_stack.png \ silk/page_white_text.png \ @@ -459,11 +459,11 @@ silk/page_world.png \ silk/photo.png \ silk/picture.png \ - silk/plugin.png \ silk/plugin_add.png \ - silk/script.png \ + silk/plugin.png \ silk/script_gear.png \ - silk/script_palette.png + silk/script_palette.png \ + silk/script.png icondir = $(datadir)/icons/silk icon_DATA = $(ICONS) diff -u -r -N squid-3.4.8/include/version.h squid-3.4.9/include/version.h --- squid-3.4.8/include/version.h 2014-09-15 01:18:44.000000000 -0700 +++ squid-3.4.9/include/version.h 2014-10-31 02:38:13.000000000 -0700 @@ -7,7 +7,7 @@ */ #ifndef SQUID_RELEASE_TIME -#define SQUID_RELEASE_TIME 1410769025 +#define SQUID_RELEASE_TIME 1414748195 #endif #ifndef APP_SHORTNAME diff -u -r -N squid-3.4.8/lib/profiler/xprof_type.h squid-3.4.9/lib/profiler/xprof_type.h --- squid-3.4.8/lib/profiler/xprof_type.h 2014-09-15 01:17:12.000000000 -0700 +++ squid-3.4.9/lib/profiler/xprof_type.h 2014-10-31 02:36:43.000000000 -0700 @@ -3,80 +3,79 @@ /* AUTO-GENERATED FILE */ #if USE_XPROF_STATS typedef enum { - XPROF_PROF_UNACCOUNTED, - XPROF_ACL_matches, - XPROF_HttpHeaderClean, - XPROF_HttpHeaderParse, - XPROF_HttpHeader_getCc, - XPROF_HttpMsg_httpMsgParseStep, - XPROF_HttpParserParseReqLine, - XPROF_HttpStateData_processReplyBody, - XPROF_HttpStateData_processReplyHeader, - XPROF_HttpStateData_readReply, - XPROF_InvokeHandlers, - XPROF_MemBuf_append, - XPROF_MemBuf_consume, - XPROF_MemBuf_consumeWhitespace, - XPROF_MemBuf_grow, - XPROF_MemObject_write, - XPROF_PROF_OVERHEAD, - XPROF_SignalEngine_checkEvents, - XPROF_StoreEntry_write, - XPROF_StringAllocAndFill, - XPROF_StringAppend, - XPROF_StringClean, - XPROF_StringInitBuf, - XPROF_StringReset, - XPROF_aclCheckFast, - XPROF_calloc, - XPROF_clientSocketRecipient, - XPROF_commHandleWrite, - XPROF_comm_accept, - XPROF_comm_check_incoming, - XPROF_comm_close, - XPROF_comm_connect_addr, - XPROF_comm_handle_ready_fd, - XPROF_comm_open, - XPROF_comm_poll_normal, - XPROF_comm_poll_prep_pfds, - XPROF_comm_read_handler, - XPROF_comm_udp_sendto, - XPROF_comm_write_handler, - XPROF_diskHandleRead, - XPROF_diskHandleWrite, - XPROF_esiExpressionEval, - XPROF_esiParsing, - XPROF_esiProcessing, - XPROF_eventRun, - XPROF_file_close, - XPROF_file_open, - XPROF_file_read, - XPROF_file_write, - XPROF_free, - XPROF_free_const, - XPROF_hash_lookup, - XPROF_headersEnd, - XPROF_httpRequestFree, - XPROF_httpStart, - XPROF_malloc, - XPROF_mem_hdr_write, - XPROF_parseHttpRequest, - XPROF_read, - XPROF_realloc, - XPROF_recv, - XPROF_send, - XPROF_storeClient_kickReads, - XPROF_storeDirCallback, - XPROF_storeGet, - XPROF_storeGetMemSpace, - XPROF_storeMaintainSwapSpace, - XPROF_storeRelease, - XPROF_storeWriteComplete, - XPROF_write, - XPROF_xcalloc, - XPROF_xmalloc, - XPROF_xrealloc, - XPROF_LAST -} xprof_type; +XPROF_PROF_UNACCOUNTED, +XPROF_aclCheckFast, +XPROF_ACL_matches, +XPROF_calloc, +XPROF_clientSocketRecipient, +XPROF_comm_accept, +XPROF_comm_check_incoming, +XPROF_comm_close, +XPROF_comm_connect_addr, +XPROF_comm_handle_ready_fd, +XPROF_commHandleWrite, +XPROF_comm_open, +XPROF_comm_poll_normal, +XPROF_comm_poll_prep_pfds, +XPROF_comm_read_handler, +XPROF_comm_udp_sendto, +XPROF_comm_write_handler, +XPROF_diskHandleRead, +XPROF_diskHandleWrite, +XPROF_esiExpressionEval, +XPROF_esiParsing, +XPROF_esiProcessing, +XPROF_eventRun, +XPROF_file_close, +XPROF_file_open, +XPROF_file_read, +XPROF_file_write, +XPROF_free, +XPROF_free_const, +XPROF_hash_lookup, +XPROF_headersEnd, +XPROF_HttpHeaderClean, +XPROF_HttpHeader_getCc, +XPROF_HttpHeaderParse, +XPROF_HttpMsg_httpMsgParseStep, +XPROF_HttpParserParseReqLine, +XPROF_httpRequestFree, +XPROF_httpStart, +XPROF_HttpStateData_processReplyBody, +XPROF_HttpStateData_processReplyHeader, +XPROF_HttpStateData_readReply, +XPROF_InvokeHandlers, +XPROF_malloc, +XPROF_MemBuf_append, +XPROF_MemBuf_consume, +XPROF_MemBuf_consumeWhitespace, +XPROF_MemBuf_grow, +XPROF_mem_hdr_write, +XPROF_MemObject_write, +XPROF_parseHttpRequest, +XPROF_PROF_OVERHEAD, +XPROF_read, +XPROF_realloc, +XPROF_recv, +XPROF_send, +XPROF_SignalEngine_checkEvents, +XPROF_storeClient_kickReads, +XPROF_storeDirCallback, +XPROF_StoreEntry_write, +XPROF_storeGet, +XPROF_storeGetMemSpace, +XPROF_storeMaintainSwapSpace, +XPROF_storeRelease, +XPROF_storeWriteComplete, +XPROF_StringAllocAndFill, +XPROF_StringAppend, +XPROF_StringClean, +XPROF_StringInitBuf, +XPROF_StringReset, +XPROF_write, +XPROF_xcalloc, +XPROF_xmalloc, +XPROF_xrealloc, + XPROF_LAST } xprof_type; #endif #endif diff -u -r -N squid-3.4.8/libltdl/config/config.sub squid-3.4.9/libltdl/config/config.sub --- squid-3.4.8/libltdl/config/config.sub 2014-09-15 01:17:40.000000000 -0700 +++ squid-3.4.9/libltdl/config/config.sub 2014-10-31 02:37:08.000000000 -0700 @@ -2,7 +2,7 @@ # Configuration validation subroutine script. # Copyright 1992-2014 Free Software Foundation, Inc. -timestamp='2014-05-01' +timestamp='2014-09-11' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -302,6 +302,7 @@ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle \ | pyramid \ + | riscv32 | riscv64 \ | rl78 | rx \ | score \ | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ @@ -828,6 +829,10 @@ basic_machine=powerpc-unknown os=-morphos ;; + moxiebox) + basic_machine=moxie-unknown + os=-moxiebox + ;; msdos) basic_machine=i386-pc os=-msdos @@ -1373,7 +1378,7 @@ | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ | -linux-newlib* | -linux-musl* | -linux-uclibc* \ - | -uxpv* | -beos* | -mpeix* | -udk* \ + | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ diff -u -r -N squid-3.4.8/libltdl/config/ltmain.sh squid-3.4.9/libltdl/config/ltmain.sh --- squid-3.4.8/libltdl/config/ltmain.sh 2014-09-15 01:17:41.000000000 -0700 +++ squid-3.4.9/libltdl/config/ltmain.sh 2014-10-31 02:37:09.000000000 -0700 @@ -70,7 +70,7 @@ # compiler: $LTCC # compiler flags: $LTCFLAGS # linker: $LD (gnu? $with_gnu_ld) -# $progname: (GNU libtool) 2.4.2 Debian-2.4.2-1.10 +# $progname: (GNU libtool) 2.4.2 Debian-2.4.2-1.11 # automake: $automake_version # autoconf: $autoconf_version # @@ -80,7 +80,7 @@ PROGRAM=libtool PACKAGE=libtool -VERSION="2.4.2 Debian-2.4.2-1.10" +VERSION="2.4.2 Debian-2.4.2-1.11" TIMESTAMP="" package_revision=1.3337 diff -u -r -N squid-3.4.8/libltdl/Makefile.in squid-3.4.9/libltdl/Makefile.in --- squid-3.4.8/libltdl/Makefile.in 2014-09-15 01:17:49.000000000 -0700 +++ squid-3.4.9/libltdl/Makefile.in 2014-10-31 02:37:17.000000000 -0700 @@ -87,7 +87,7 @@ subdir = . DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/configure $(am__configure_deps) \ - $(srcdir)/config-h.in lt__dirent.c argz.c lt__strl.c \ + $(srcdir)/config-h.in lt__dirent.c lt__strl.c argz.c \ $(top_srcdir)/config/depcomp $(am__include_HEADERS_DIST) \ $(am__ltdlinclude_HEADERS_DIST) README \ config/compile config/config.guess config/config.sub \ diff -u -r -N squid-3.4.8/RELEASENOTES.html squid-3.4.9/RELEASENOTES.html --- squid-3.4.8/RELEASENOTES.html 2014-09-15 01:57:18.000000000 -0700 +++ squid-3.4.9/RELEASENOTES.html 2014-10-31 03:20:13.000000000 -0700 @@ -2,10 +2,10 @@ - Squid 3.4.8 release notes + Squid 3.4.9 release notes -

Squid 3.4.8 release notes

+

Squid 3.4.9 release notes

Squid Developers


@@ -57,11 +57,14 @@

1. Notice

-

The Squid Team are pleased to announce the release of Squid-3.4.8 for testing.

+

The Squid Team are pleased to announce the release of Squid-3.4.9 for testing.

This new release is available for download from http://www.squid-cache.org/Versions/v3/3.4/ or the mirrors.

-

While this release is not deemed ready for production use, we believe it is ready for wider testing by the community.

+ +

Some interesting new features adding system flexibility have been added along with general improvements all around. +While this release is not fully bug-free we believe it is ready for use in production on many systems.

+

We welcome feedback and bug reports. If you find a bug, please see http://wiki.squid-cache.org/SquidFaq/BugReporting for how to submit a report with a stack trace.

diff -u -r -N squid-3.4.8/src/acl/FilledChecklist.cc squid-3.4.9/src/acl/FilledChecklist.cc --- squid-3.4.8/src/acl/FilledChecklist.cc 2014-09-15 01:17:12.000000000 -0700 +++ squid-3.4.9/src/acl/FilledChecklist.cc 2014-10-31 02:36:43.000000000 -0700 @@ -3,6 +3,7 @@ #include "client_side.h" #include "comm/Connection.h" #include "comm/forward.h" +#include "ExternalACLEntry.h" #include "HttpReply.h" #include "HttpRequest.h" #include "SquidConfig.h" @@ -27,7 +28,6 @@ #if USE_SSL sslErrors(NULL), #endif - extacl_entry (NULL), conn_(NULL), fd_(-1), destinationDomainChecked_(false), @@ -45,9 +45,6 @@ safe_free(dst_rdns); // created by xstrdup(). - if (extacl_entry) - cbdataReferenceDone(extacl_entry); - HTTPMSGUNLOCK(request); HTTPMSGUNLOCK(reply); @@ -143,7 +140,6 @@ #if USE_SSL sslErrors(NULL), #endif - extacl_entry (NULL), conn_(NULL), fd_(-1), destinationDomainChecked_(false), diff -u -r -N squid-3.4.8/src/acl/FilledChecklist.h squid-3.4.9/src/acl/FilledChecklist.h --- squid-3.4.8/src/acl/FilledChecklist.h 2014-09-15 01:17:12.000000000 -0700 +++ squid-3.4.9/src/acl/FilledChecklist.h 2014-10-31 02:36:43.000000000 -0700 @@ -3,6 +3,7 @@ #include "acl/Checklist.h" #include "acl/forward.h" +#include "base/CbcPointer.h" #include "ip/Address.h" #if USE_AUTH #include "auth/UserRequest.h" @@ -13,7 +14,6 @@ class CachePeer; class ConnStateData; -class ExternalACLEntry; class HttpRequest; class HttpReply; @@ -75,7 +75,7 @@ Ssl::X509_Pointer serverCert; #endif - ExternalACLEntry *extacl_entry; + ExternalACLEntryPointer extacl_entry; private: ConnStateData * conn_; /**< hack for ident and NTLM */ diff -u -r -N squid-3.4.8/src/acl/forward.h squid-3.4.9/src/acl/forward.h --- squid-3.4.8/src/acl/forward.h 2014-09-15 01:17:12.000000000 -0700 +++ squid-3.4.9/src/acl/forward.h 2014-10-31 02:36:43.000000000 -0700 @@ -1,6 +1,8 @@ #ifndef SQUID_ACL_FORWARD_H #define SQUID_ACL_FORWARD_H +#include "base/RefCount.h" + class ACL; class ACLChecklist; class ACLFilledChecklist; @@ -28,4 +30,7 @@ #define acl_access Acl::Tree #define ACLList Acl::Tree +class ExternalACLEntry; +typedef RefCount ExternalACLEntryPointer; + #endif /* SQUID_ACL_FORWARD_H */ diff -u -r -N squid-3.4.8/src/acl/Ip.cc squid-3.4.9/src/acl/Ip.cc --- squid-3.4.8/src/acl/Ip.cc 2014-09-15 01:17:12.000000000 -0700 +++ squid-3.4.9/src/acl/Ip.cc 2014-10-31 02:36:43.000000000 -0700 @@ -411,10 +411,15 @@ int errcode = getaddrinfo(addr1,NULL,&hints,&hp); if (hp == NULL) { - debugs(28, DBG_CRITICAL, "aclIpParseIpData: Bad host/IP: '" << addr1 << - "' in '" << t << "', flags=" << hints.ai_flags << - " : (" << errcode << ") " << gai_strerror(errcode) ); - self_destruct(); + if (strcmp(addr1, "::1") == 0) { + debugs(28, DBG_IMPORTANT, "aclIpParseIpData: IPv6 has not been enabled in host DNS resolver."); + delete q; + } else { + debugs(28, DBG_CRITICAL, "aclIpParseIpData: Bad host/IP: '" << addr1 << + "' in '" << t << "', flags=" << hints.ai_flags << + " : (" << errcode << ") " << gai_strerror(errcode) ); + self_destruct(); + } return NULL; } diff -u -r -N squid-3.4.8/src/cbdata.cc squid-3.4.9/src/cbdata.cc --- squid-3.4.8/src/cbdata.cc 2014-09-15 01:17:12.000000000 -0700 +++ squid-3.4.9/src/cbdata.cc 2014-10-31 02:36:43.000000000 -0700 @@ -465,9 +465,16 @@ -- c->locks; - if (c->valid || c->locks) + if (c->locks) return; + if (c->valid) { +#if USE_CBDATA_DEBUG + debugs(45, DBG_IMPORTANT, "CBDATA memory leak. cbdata=" << p << " " << file << ":" << line); +#endif + return; + } + --cbdataCount; debugs(45, 9, "cbdataUnlock: Freeing " << p); diff -u -r -N squid-3.4.8/src/external_acl.cc squid-3.4.9/src/external_acl.cc --- squid-3.4.8/src/external_acl.cc 2014-09-15 01:17:12.000000000 -0700 +++ squid-3.4.9/src/external_acl.cc 2014-10-31 02:36:43.000000000 -0700 @@ -85,11 +85,11 @@ typedef struct _external_acl_format external_acl_format; static char *makeExternalAclKey(ACLFilledChecklist * ch, external_acl_data * acl_data); -static void external_acl_cache_delete(external_acl * def, external_acl_entry * entry); -static int external_acl_entry_expired(external_acl * def, external_acl_entry * entry); -static int external_acl_grace_expired(external_acl * def, external_acl_entry * entry); -static void external_acl_cache_touch(external_acl * def, external_acl_entry * entry); -static external_acl_entry *external_acl_cache_add(external_acl * def, const char *key, ExternalACLEntryData const &data); +static void external_acl_cache_delete(external_acl * def, const ExternalACLEntryPointer &entry); +static int external_acl_entry_expired(external_acl * def, const ExternalACLEntryPointer &entry); +static int external_acl_grace_expired(external_acl * def, const ExternalACLEntryPointer &entry); +static void external_acl_cache_touch(external_acl * def, const ExternalACLEntryPointer &entry); +static ExternalACLEntryPointer external_acl_cache_add(external_acl * def, const char *key, ExternalACLEntryData const &data); /****************************************************************** * external_acl directive @@ -101,7 +101,7 @@ public: external_acl *next; - void add(ExternalACLEntry *); + void add(const ExternalACLEntryPointer &); void trimCache(); @@ -239,8 +239,10 @@ p->theHelper = NULL; } - while (p->lru_list.tail) - external_acl_cache_delete(p, static_cast(p->lru_list.tail->data)); + while (p->lru_list.tail) { + ExternalACLEntryPointer e(static_cast(p->lru_list.tail->data)); + external_acl_cache_delete(p, e); + } if (p->cache) hashFreeMemory(p->cache); } @@ -670,21 +672,26 @@ } void -external_acl::add(ExternalACLEntry *anEntry) +external_acl::add(const ExternalACLEntryPointer &anEntry) { trimCache(); + assert(anEntry != NULL); assert (anEntry->def == NULL); anEntry->def = this; - hash_join(cache, anEntry); - dlinkAdd(anEntry, &anEntry->lru, &lru_list); + ExternalACLEntry *e = const_cast(anEntry.getRaw()); // XXX: make hash a std::map of Pointer. + hash_join(cache, e); + dlinkAdd(e, &e->lru, &lru_list); + e->lock(); //cbdataReference(e); // lock it on behalf of the hash ++cache_entries; } void external_acl::trimCache() { - if (cache_size && cache_entries >= cache_size) - external_acl_cache_delete(this, static_cast(lru_list.tail->data)); + if (cache_size && cache_entries >= cache_size) { + ExternalACLEntryPointer e(static_cast(lru_list.tail->data)); + external_acl_cache_delete(this, e); + } } /****************************************************************** @@ -771,7 +778,7 @@ } static void -copyResultsFromEntry(HttpRequest *req, external_acl_entry *entry) +copyResultsFromEntry(HttpRequest *req, const ExternalACLEntryPointer &entry) { if (req) { #if USE_AUTH @@ -796,32 +803,30 @@ aclMatchExternal(external_acl_data *acl, ACLFilledChecklist *ch) { debugs(82, 9, HERE << "acl=\"" << acl->def->name << "\""); - external_acl_entry *entry = ch->extacl_entry; + ExternalACLEntryPointer entry = ch->extacl_entry; external_acl_message = "MISSING REQUIRED INFORMATION"; - if (entry) { - if (cbdataReferenceValid(entry) && entry->def == acl->def) { + if (entry != NULL) { + if (entry->def == acl->def) { /* Ours, use it.. if the key matches */ const char *key = makeExternalAclKey(ch, acl); if (!key) return ACCESS_DUNNO; // insufficent data to continue if (strcmp(key, (char*)entry->key) != 0) { - debugs(82, 9, HERE << "entry key='" << (char *)entry->key << "', our key='" << key << "' dont match. Discarded."); + debugs(82, 9, "entry key='" << (char *)entry->key << "', our key='" << key << "' dont match. Discarded."); // too bad. need a new lookup. - cbdataReferenceDone(ch->extacl_entry); - entry = NULL; + entry = ch->extacl_entry = NULL; } } else { - /* Not valid, or not ours.. get rid of it */ - debugs(82, 9, HERE << "entry " << entry << " not valid or not ours. Discarded."); - if (entry) { - debugs(82, 9, HERE << "entry def=" << entry->def << ", our def=" << acl->def); + /* Not ours.. get rid of it */ + debugs(82, 9, "entry " << entry << " not valid or not ours. Discarded."); + if (entry != NULL) { + debugs(82, 9, "entry def=" << entry->def << ", our def=" << acl->def); const char *key = makeExternalAclKey(ch, acl); // may be nil - debugs(82, 9, HERE << "entry key='" << (char *)entry->key << "', our key='" << key << "'"); + debugs(82, 9, "entry key='" << (char *)entry->key << "', our key='" << key << "'"); } - cbdataReferenceDone(ch->extacl_entry); - entry = NULL; + entry = ch->extacl_entry = NULL; } } @@ -846,13 +851,13 @@ return ACCESS_DUNNO; } - entry = static_cast(hash_lookup(acl->def->cache, key)); + entry = static_cast(hash_lookup(acl->def->cache, key)); - external_acl_entry *staleEntry = entry; - if (entry && external_acl_entry_expired(acl->def, entry)) + const ExternalACLEntryPointer staleEntry = entry; + if (entry != NULL && external_acl_entry_expired(acl->def, entry)) entry = NULL; - if (entry && external_acl_grace_expired(acl->def, entry)) { + if (entry != NULL && external_acl_grace_expired(acl->def, entry)) { // refresh in the background ExternalACLLookup::Start(ch, acl, true); debugs(82, 4, HERE << "no need to wait for the refresh of '" << @@ -861,8 +866,6 @@ if (!entry) { debugs(82, 2, HERE << acl->def->name << "(\"" << key << "\") = lookup needed"); - debugs(82, 2, HERE << "\"" << key << "\": entry=@" << - entry << ", age=" << (entry ? (long int) squid_curtime - entry->date : 0)); if (acl->def->theHelper->stats.queue_size < (int)acl->def->theHelper->childs.n_active) { debugs(82, 2, HERE << "\"" << key << "\": queueing a call."); @@ -951,14 +954,15 @@ */ static void -external_acl_cache_touch(external_acl * def, external_acl_entry * entry) +external_acl_cache_touch(external_acl * def, const ExternalACLEntryPointer &entry) { // this must not be done when nothing is being cached. if (def->cache_size <= 0 || (def->ttl <= 0 && entry->result == 1) || (def->negative_ttl <= 0 && entry->result != 1)) return; dlinkDelete(&entry->lru, &def->lru_list); - dlinkAdd(entry, &entry->lru, &def->lru_list); + ExternalACLEntry *e = const_cast(entry.getRaw()); // XXX: make hash a std::map of Pointer. + dlinkAdd(e, &entry->lru, &def->lru_list); } static char * @@ -1240,7 +1244,7 @@ } static int -external_acl_entry_expired(external_acl * def, external_acl_entry * entry) +external_acl_entry_expired(external_acl * def, const ExternalACLEntryPointer &entry) { if (def->cache_size <= 0) return 1; @@ -1252,7 +1256,7 @@ } static int -external_acl_grace_expired(external_acl * def, external_acl_entry * entry) +external_acl_grace_expired(external_acl * def, const ExternalACLEntryPointer &entry) { if (def->cache_size <= 0) return 1; @@ -1267,10 +1271,10 @@ return 0; } -static external_acl_entry * +static ExternalACLEntryPointer external_acl_cache_add(external_acl * def, const char *key, ExternalACLEntryData const & data) { - ExternalACLEntry *entry; + ExternalACLEntryPointer entry; // do not bother caching this result if TTL is going to expire it immediately if (def->cache_size <= 0 || (def->ttl <= 0 && data.result == 1) || (def->negative_ttl <= 0 && data.result != 1)) { @@ -1285,11 +1289,10 @@ entry = static_cast(hash_lookup(def->cache, key)); debugs(82, 2, "external_acl_cache_add: Adding '" << key << "' = " << data.result); - if (entry) { - debugs(82, 3, "ExternalACLEntry::update: updating existing entry"); + if (entry != NULL) { + debugs(82, 3, "updating existing entry"); entry->update(data); external_acl_cache_touch(def, entry); - return entry; } @@ -1303,13 +1306,15 @@ } static void -external_acl_cache_delete(external_acl * def, external_acl_entry * entry) +external_acl_cache_delete(external_acl * def, const ExternalACLEntryPointer &entry) { + assert(entry != NULL); assert(def->cache_size > 0 && entry->def == def); - hash_remove_link(def->cache, entry); - dlinkDelete(&entry->lru, &def->lru_list); + ExternalACLEntry *e = const_cast(entry.getRaw()); // XXX: make hash a std::map of Pointer. + hash_remove_link(def->cache, e); + dlinkDelete(&e->lru, &def->lru_list); + e->unlock(); // unlock on behalf of the hash def->cache_entries -= 1; - delete entry; } /****************************************************************** @@ -1366,7 +1371,6 @@ externalAclState *next; ExternalACLEntryData entryData; entryData.result = ACCESS_DENIED; - external_acl_entry *entry = NULL; debugs(82, 2, HERE << "reply=" << reply); @@ -1402,14 +1406,15 @@ dlinkDelete(&state->list, &state->def->queue); + ExternalACLEntryPointer entry; if (cbdataReferenceValid(state->def)) { // only cache OK and ERR results. if (reply.result == HelperReply::Okay || reply.result == HelperReply::Error) entry = external_acl_cache_add(state->def, state->key, entryData); else { - external_acl_entry *oldentry = (external_acl_entry *)hash_lookup(state->def->cache, state->key); + const ExternalACLEntryPointer oldentry = static_cast(hash_lookup(state->def->cache, state->key)); - if (oldentry) + if (oldentry != NULL) external_acl_cache_delete(state->def, oldentry); } } @@ -1597,13 +1602,13 @@ /// Called when an async lookup returns void -ExternalACLLookup::LookupDone(void *data, void *result) +ExternalACLLookup::LookupDone(void *data, const ExternalACLEntryPointer &result) { ACLFilledChecklist *checklist = Filled(static_cast(data)); - checklist->extacl_entry = cbdataReference((external_acl_entry *)result); + checklist->extacl_entry = result; // attach the helper kv-pair to the transaction - if (checklist->extacl_entry) { + if (checklist->extacl_entry != NULL) { if (HttpRequest * req = checklist->request) { // XXX: we have no access to the transaction / AccessLogEntry so cant SyncNotes(). // workaround by using anything already set in HttpRequest diff -u -r -N squid-3.4.8/src/ExternalACLEntry.cc squid-3.4.9/src/ExternalACLEntry.cc --- squid-3.4.8/src/ExternalACLEntry.cc 2014-09-15 01:17:12.000000000 -0700 +++ squid-3.4.9/src/ExternalACLEntry.cc 2014-10-31 02:36:43.000000000 -0700 @@ -47,8 +47,6 @@ * external_acl cache */ -CBDATA_CLASS_INIT(ExternalACLEntry); - ExternalACLEntry::ExternalACLEntry() : notes() { diff -u -r -N squid-3.4.8/src/ExternalACLEntry.h squid-3.4.9/src/ExternalACLEntry.h --- squid-3.4.8/src/ExternalACLEntry.h 2014-09-15 01:17:12.000000000 -0700 +++ squid-3.4.9/src/ExternalACLEntry.h 2014-10-31 02:36:43.000000000 -0700 @@ -43,7 +43,7 @@ #define SQUID_EXTERNALACLENTRY_H #include "acl/Acl.h" -#include "cbdata.h" +#include "acl/forward.h" #include "hash.h" #include "Notes.h" #include "SquidString.h" @@ -82,9 +82,8 @@ * Used opaqueue in the interface */ -class ExternalACLEntry: public hash_link +class ExternalACLEntry: public hash_link, public RefCountable { - public: ExternalACLEntry(); ~ExternalACLEntry(); @@ -106,10 +105,9 @@ String log; external_acl *def; -private: - CBDATA_CLASS2(ExternalACLEntry); + MEMPROXY_CLASS(ExternalACLEntry); }; -typedef class ExternalACLEntry external_acl_entry; +MEMPROXY_CLASS_INLINE(ExternalACLEntry); #endif diff -u -r -N squid-3.4.8/src/ExternalACL.h squid-3.4.9/src/ExternalACL.h --- squid-3.4.8/src/ExternalACL.h 2014-09-15 01:17:12.000000000 -0700 +++ squid-3.4.9/src/ExternalACL.h 2014-10-31 02:36:43.000000000 -0700 @@ -33,6 +33,8 @@ #define SQUID_EXTERNALACL_H #include "acl/Checklist.h" +#include "base/RefCount.h" + class external_acl; class StoreEntry; @@ -52,7 +54,7 @@ private: static ExternalACLLookup instance_; - static void LookupDone(void *data, void *result); + static void LookupDone(void *data, const ExternalACLEntryPointer &result); }; #include "acl/Acl.h" @@ -96,7 +98,7 @@ void parse_externalAclHelper(external_acl **); void dump_externalAclHelper(StoreEntry * sentry, const char *name, const external_acl *); void free_externalAclHelper(external_acl **); -typedef void EAH(void *data, void *result); +typedef void EAH(void *data, const ExternalACLEntryPointer &result); void externalAclLookup(ACLChecklist * ch, void *acl_data, EAH * handler, void *data); void externalAclInit(void); void externalAclShutdown(void); diff -u -r -N squid-3.4.8/src/ident/Ident.cc squid-3.4.9/src/ident/Ident.cc --- squid-3.4.8/src/ident/Ident.cc 2014-09-15 01:17:12.000000000 -0700 +++ squid-3.4.9/src/ident/Ident.cc 2014-10-31 02:36:43.000000000 -0700 @@ -56,13 +56,27 @@ struct _IdentClient *next; } IdentClient; -typedef struct _IdentStateData { +class IdentStateData +{ +public: + /* AsyncJob API emulated */ + void deleteThis(const char *aReason); + void swanSong(); + + /// notify all waiting IdentClient callbacks + void notify(const char *result); + hash_link hash; /* must be first */ Comm::ConnectionPointer conn; MemBuf queryMsg; ///< the lookup message sent to IDENT server IdentClient *clients; char buf[IDENT_BUFSIZE]; -} IdentStateData; + +private: + CBDATA_CLASS2(IdentStateData); +}; + +CBDATA_CLASS_INIT(IdentStateData); // TODO: make these all a series of Async job calls. They are self-contained callbacks now. static IOCB ReadReply; @@ -72,25 +86,39 @@ static CNCB ConnectDone; static hash_table *ident_hash = NULL; static void ClientAdd(IdentStateData * state, IDCB * callback, void *callback_data); -static void identCallback(IdentStateData * state, char *result); } // namespace Ident Ident::IdentConfig Ident::TheConfig; -/**** PRIVATE FUNCTIONS ****/ +void +Ident::IdentStateData::deleteThis(const char *aReason) +{ + swanSong(); + delete this; +} void -Ident::identCallback(IdentStateData * state, char *result) +Ident::IdentStateData::swanSong() { - IdentClient *client; + if (clients != NULL) + notify(NULL); - if (result && *result == '\0') - result = NULL; + if (Comm::IsConnOpen(conn)) { + comm_remove_close_handler(conn->fd, Ident::Close, this); + conn->close(); + } - while ((client = state->clients)) { + hash_remove_link(ident_hash, (hash_link *) this); + xfree(hash.key); +} + +void +Ident::IdentStateData::notify(const char *result) +{ + while (IdentClient *client = clients) { void *cbdata; - state->clients = client->next; + clients = client->next; if (cbdataReferenceValidDone(client->callback_data, &cbdata)) client->callback(result, cbdata); @@ -103,18 +131,15 @@ Ident::Close(const CommCloseCbParams ¶ms) { IdentStateData *state = (IdentStateData *)params.data; - identCallback(state, NULL); - state->conn->close(); - hash_remove_link(ident_hash, (hash_link *) state); - xfree(state->hash.key); - cbdataFree(state); + state->deleteThis("connection closed"); } void Ident::Timeout(const CommTimeoutCbParams &io) { debugs(30, 3, HERE << io.conn); - io.conn->close(); + IdentStateData *state = (IdentStateData *)io.data; + state->deleteThis("timeout"); } void @@ -125,12 +150,10 @@ if (status != COMM_OK) { if (status == COMM_TIMEOUT) debugs(30, 3, "IDENT connection timeout to " << state->conn->remote); - Ident::identCallback(state, NULL); + state->deleteThis(status == COMM_TIMEOUT ? "connect timeout" : "connect error"); return; } - assert(conn != NULL && conn == state->conn); - /* * see if any of our clients still care */ @@ -141,11 +164,11 @@ } if (c == NULL) { - /* no clients care */ - conn->close(); + state->deleteThis("client(s) aborted"); return; } + assert(conn != NULL && conn == state->conn); comm_add_close_handler(conn->fd, Ident::Close, state); AsyncCall::Pointer writeCall = commCbCall(5,4, "Ident::WriteFeedback", @@ -167,7 +190,8 @@ // TODO handle write errors better. retry or abort? if (flag != COMM_OK) { debugs(30, 2, HERE << conn << " err-flags=" << flag << " IDENT write error: " << xstrerr(xerrno)); - conn->close(); + IdentStateData *state = (IdentStateData *)data; + state->deleteThis("write error"); } } @@ -182,7 +206,7 @@ assert(conn->fd == state->conn->fd); if (flag != COMM_OK || len <= 0) { - state->conn->close(); + state->deleteThis("read error"); return; } @@ -204,11 +228,13 @@ if (strstr(buf, "USERID")) { if ((ident = strrchr(buf, ':'))) { while (xisspace(*++ident)); - Ident::identCallback(state, ident); + if (ident && *ident == '\0') + ident = NULL; + state->notify(ident); } } - state->conn->close(); + state->deleteThis("completed"); } void @@ -223,10 +249,6 @@ *C = c; } -CBDATA_TYPE(IdentStateData); - -/**** PUBLIC FUNCTIONS ****/ - /* * start a TCP connection to the peer host on port 113 */ @@ -250,8 +272,7 @@ return; } - CBDATA_INIT_TYPE(IdentStateData); - state = cbdataAlloc(IdentStateData); + state = new IdentStateData; state->hash.key = xstrdup(key); // copy the conn details. We dont want the original FD to be re-used by IDENT. diff -u -r -N squid-3.4.8/src/Makefile.in squid-3.4.9/src/Makefile.in --- squid-3.4.8/src/Makefile.in 2014-09-15 01:18:21.000000000 -0700 +++ squid-3.4.9/src/Makefile.in 2014-10-31 02:37:49.000000000 -0700 @@ -3001,18 +3001,6 @@ $(XTRA_LIBS) STUB_SOURCE = tests/STUB.h \ - tests/stub_CommIO.cc \ - tests/stub_DelayId.cc \ - tests/stub_DiskIOModule.cc \ - tests/stub_HelperChildConfig.cc \ - tests/stub_HttpReply.cc \ - tests/stub_HttpRequest.cc \ - tests/stub_MemBuf.cc \ - tests/stub_MemObject.cc \ - tests/stub_MemStore.cc \ - tests/stub_Port.cc \ - tests/stub_StatHist.cc \ - tests/stub_UdsOp.cc \ tests/stub_access_log.cc \ tests/stub_acl.cc \ tests/stub_cache_cf.cc \ @@ -3022,19 +3010,25 @@ tests/stub_client_side.cc \ tests/stub_client_side_request.cc \ tests/stub_comm.cc \ + tests/stub_CommIO.cc \ tests/stub_debug.cc \ + tests/stub_DelayId.cc \ + tests/stub_DiskIOModule.cc \ tests/stub_errorpage.cc \ tests/stub_event.cc \ tests/stub_fatal.cc \ tests/stub_fd.cc \ tests/stub_helper.cc \ + tests/stub_HelperChildConfig.cc \ tests/stub_http.cc \ + tests/stub_HttpReply.cc \ + tests/stub_HttpRequest.cc \ tests/stub_icp.cc \ tests/stub_internal.cc \ + tests/stub_ipcache.cc \ tests/stub_ipc.cc \ tests/stub_ipc_Forwarder.cc \ tests/stub_ipc_TypedMsgHdr.cc \ - tests/stub_ipcache.cc \ tests/stub_libcomm.cc \ tests/stub_libeui.cc \ tests/stub_libformat.cc \ @@ -3042,11 +3036,16 @@ tests/stub_libmgr.cc \ tests/stub_libsslsquid.cc \ tests/stub_main_cc.cc \ + tests/stub_MemBuf.cc \ tests/stub_mem.cc \ tests/stub_mem_node.cc \ + tests/stub_MemObject.cc \ + tests/stub_MemStore.cc \ tests/stub_mime.cc \ tests/stub_pconn.cc \ + tests/stub_Port.cc \ tests/stub_stat.cc \ + tests/stub_StatHist.cc \ tests/stub_stmem.cc \ tests/stub_store.cc \ tests/stub_store_client.cc \ @@ -3054,6 +3053,7 @@ tests/stub_store_stats.cc \ tests/stub_store_swapout.cc \ tests/stub_tools.cc \ + tests/stub_UdsOp.cc \ tests/stub_wordlist.cc EXTRA_DIST = cf_gen_defines cf.data.pre cf.data.depend \ diff -u -r -N squid-3.4.8/src/ssl/gadgets.cc squid-3.4.9/src/ssl/gadgets.cc --- squid-3.4.8/src/ssl/gadgets.cc 2014-09-15 01:17:12.000000000 -0700 +++ squid-3.4.9/src/ssl/gadgets.cc 2014-10-31 02:36:43.000000000 -0700 @@ -297,7 +297,21 @@ if ((ext = X509_get_ext(cert.get(), p)) != NULL) { ASN1_BIT_STRING *keyusage = (ASN1_BIT_STRING *)X509V3_EXT_d2i(ext); ASN1_BIT_STRING_set_bit(keyusage, KeyEncipherment, 1); - X509_EXTENSION_set_data( ext, (ASN1_OCTET_STRING*)keyusage ); + + //Build the ASN1_OCTET_STRING + const X509V3_EXT_METHOD *method = X509V3_EXT_get(ext); + assert(method && method->it); + unsigned char *ext_der = NULL; + int ext_len = ASN1_item_i2d((ASN1_VALUE *)keyusage, + &ext_der, + (const ASN1_ITEM *)ASN1_ITEM_ptr(method->it)); + + ASN1_OCTET_STRING *ext_oct = M_ASN1_OCTET_STRING_new(); + ext_oct->data = ext_der; + ext_oct->length = ext_len; + X509_EXTENSION_set_data(ext, ext_oct); + + M_ASN1_OCTET_STRING_free(ext_oct); ASN1_BIT_STRING_free(keyusage); } } diff -u -r -N squid-3.4.8/src/ssl/ssl_crtd.8 squid-3.4.9/src/ssl/ssl_crtd.8 --- squid-3.4.8/src/ssl/ssl_crtd.8 2014-09-15 01:17:12.000000000 -0700 +++ squid-3.4.9/src/ssl/ssl_crtd.8 2014-10-31 02:36:43.000000000 -0700 @@ -1,9 +1,7 @@ .if !'po4a'hide' .TH ssl_crtd 8 . .SH NAME -.if !'po4a'hide' .B ssl_crtd -.if !'po4a'hide' \- -SSL certificate generator. +ssl_crtd \- SSL certificate generator for Squid. .PP Version 1.0 . diff -u -r -N squid-3.4.8/src/tests/Stub.list squid-3.4.9/src/tests/Stub.list --- squid-3.4.8/src/tests/Stub.list 2014-09-15 01:17:12.000000000 -0700 +++ squid-3.4.9/src/tests/Stub.list 2014-10-31 02:36:43.000000000 -0700 @@ -1,16 +1,4 @@ STUB_SOURCE= tests/STUB.h \ - tests/stub_CommIO.cc \ - tests/stub_DelayId.cc \ - tests/stub_DiskIOModule.cc \ - tests/stub_HelperChildConfig.cc \ - tests/stub_HttpReply.cc \ - tests/stub_HttpRequest.cc \ - tests/stub_MemBuf.cc \ - tests/stub_MemObject.cc \ - tests/stub_MemStore.cc \ - tests/stub_Port.cc \ - tests/stub_StatHist.cc \ - tests/stub_UdsOp.cc \ tests/stub_access_log.cc \ tests/stub_acl.cc \ tests/stub_cache_cf.cc \ @@ -20,19 +8,25 @@ tests/stub_client_side.cc \ tests/stub_client_side_request.cc \ tests/stub_comm.cc \ + tests/stub_CommIO.cc \ tests/stub_debug.cc \ + tests/stub_DelayId.cc \ + tests/stub_DiskIOModule.cc \ tests/stub_errorpage.cc \ tests/stub_event.cc \ tests/stub_fatal.cc \ tests/stub_fd.cc \ tests/stub_helper.cc \ + tests/stub_HelperChildConfig.cc \ tests/stub_http.cc \ + tests/stub_HttpReply.cc \ + tests/stub_HttpRequest.cc \ tests/stub_icp.cc \ tests/stub_internal.cc \ + tests/stub_ipcache.cc \ tests/stub_ipc.cc \ tests/stub_ipc_Forwarder.cc \ tests/stub_ipc_TypedMsgHdr.cc \ - tests/stub_ipcache.cc \ tests/stub_libcomm.cc \ tests/stub_libeui.cc \ tests/stub_libformat.cc \ @@ -40,11 +34,16 @@ tests/stub_libmgr.cc \ tests/stub_libsslsquid.cc \ tests/stub_main_cc.cc \ + tests/stub_MemBuf.cc \ tests/stub_mem.cc \ tests/stub_mem_node.cc \ + tests/stub_MemObject.cc \ + tests/stub_MemStore.cc \ tests/stub_mime.cc \ tests/stub_pconn.cc \ + tests/stub_Port.cc \ tests/stub_stat.cc \ + tests/stub_StatHist.cc \ tests/stub_stmem.cc \ tests/stub_store.cc \ tests/stub_store_client.cc \ @@ -52,4 +51,5 @@ tests/stub_store_stats.cc \ tests/stub_store_swapout.cc \ tests/stub_tools.cc \ + tests/stub_UdsOp.cc \ tests/stub_wordlist.cc diff -u -r -N squid-3.4.8/tools/squidclient.1 squid-3.4.9/tools/squidclient.1 --- squid-3.4.8/tools/squidclient.1 2014-09-15 01:17:12.000000000 -0700 +++ squid-3.4.9/tools/squidclient.1 2014-10-31 02:36:43.000000000 -0700 @@ -1,9 +1,7 @@ .if !'po4a'hide' .TH squidclient 1 . .SH NAME -.if !'po4a'hide' .B squidclient -.if !'po4a'hide' \- -A simple HTTP web client tool +squidclient \- A simple HTTP web client tool . .SH SYNOPSIS .if !'po4a'hide' .B squidclient @@ -185,10 +183,11 @@ WWW authentication password . .SH AUTHOR -Derived from Harvest. Further developed by by numerous individuals from -the internet community. Development is led by Duane Wessels of the -National Laboratory for Applied Network Research and funded by -the National Science Foundation. +This program and manual was written by +.if !'po4a'hide' .I Amos Jeffries +.PP +Based on original code derived from Harvest and further developed by +numerous individuals from the internet community. . .SH COPYRIGHT Distributed under the GNU General Public License (GNU GPL) version 2 or later (GPLv2+).