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 <http://bugs.squid-cache.org/>.
 #
@@ -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 @@
 <HTML>
 <HEAD>
  <META NAME="GENERATOR" CONTENT="LinuxDoc-Tools 0.9.69">
- <TITLE>Squid 3.4.8 release notes</TITLE>
+ <TITLE>Squid 3.4.9 release notes</TITLE>
 </HEAD>
 <BODY>
-<H1>Squid 3.4.8 release notes</H1>
+<H1>Squid 3.4.9 release notes</H1>
 
 <H2>Squid Developers</H2>
 <HR>
@@ -57,11 +57,14 @@
 <HR>
 <H2><A NAME="s1">1.</A> <A HREF="#toc1">Notice</A></H2>
 
-<P>The Squid Team are pleased to announce the release of Squid-3.4.8 for testing.</P>
+<P>The Squid Team are pleased to announce the release of Squid-3.4.9 for testing.</P>
 <P>This new release is available for download from 
 <A HREF="http://www.squid-cache.org/Versions/v3/3.4/">http://www.squid-cache.org/Versions/v3/3.4/</A> or the
 <A HREF="http://www.squid-cache.org/Mirrors/http-mirrors.html">mirrors</A>.</P>
-<P>While this release is not deemed ready for production use, we believe it is ready for wider testing by the community.</P>
+
+<P>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.</P>
+
 <P>We welcome feedback and bug reports. If you find a bug, please see 
 <A HREF="http://wiki.squid-cache.org/SquidFaq/BugReporting">http://wiki.squid-cache.org/SquidFaq/BugReporting</A>
 for how to submit a report with a stack trace.</P>
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<ExternalACLEntry> 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<external_acl_entry *>(p->lru_list.tail->data));
+    while (p->lru_list.tail) {
+        ExternalACLEntryPointer e(static_cast<ExternalACLEntry *>(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<ExternalACLEntry *>(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<external_acl_entry *>(lru_list.tail->data));
+    if (cache_size && cache_entries >= cache_size) {
+        ExternalACLEntryPointer e(static_cast<ExternalACLEntry *>(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<external_acl_entry *>(hash_lookup(acl->def->cache, key));
+        entry = static_cast<ExternalACLEntry *>(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<ExternalACLEntry *>(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<ExternalACLEntry *>(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<ExternalACLEntry *>(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<ExternalACLEntry *>(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<ACLChecklist*>(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 &params)
 {
     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 <amosjeffries@squid-cache.org>
+.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+).
