diff -u -r -N squid-4.4/ChangeLog squid-4.5/ChangeLog
--- squid-4.4/ChangeLog	2018-10-28 09:44:55.000000000 +1300
+++ squid-4.5/ChangeLog	2019-01-01 13:02:15.000000000 +1300
@@ -1,12 +1,24 @@
-Changes to squid-4.3 (28 Oct 2018):
+Changes to squid-4.5 (01 Jan 2019):
 
-	- Bug 4893: Malformed %>ru URIs for CONNECT requests
-	- Fix %USER_CA_CERT_xx and %USER_CERT_xx crashes
-	- SSL: support compilation with minimal OpenSSL
-	- SSL: certificate fields injection via %D in ERR_SECURE_CONNECT_FAIL
-	- Fix netdb not saving to disk
-	- Fix memory leak when parsing SNMP packet
-	- ... and some compile issues
+	- Bug 4253: ssl_bump prevents access to some web contents
+	- TLS: add %>handshake logformat code
+	- Redesign forward_max_tries to count TCP connection attempts
+	- Fix client_connection_mark ACL handling of clientless transactions
+	- Fix netdb exchange with a TLS cache_peer
+	- Update netdb when tunneling requests
+	- Use pkg-config for detecting libxml2
+	- ... and some documentation updates
+	- ... and some code compile fixes
+
+Changes to squid-4.4 (28 Oct 2018):
+
+       - Bug 4893: Malformed %>ru URIs for CONNECT requests
+       - Fix %USER_CA_CERT_xx and %USER_CERT_xx crashes
+       - SSL: support compilation with minimal OpenSSL
+       - SSL: certificate fields injection via %D in ERR_SECURE_CONNECT_FAIL
+       - Fix netdb not saving to disk
+       - Fix memory leak when parsing SNMP packet
+       - ... and some compile issues
 
 Changes to squid-4.3 (01 Oct 2018):
 
diff -u -r -N squid-4.4/compat/Makefile.in squid-4.5/compat/Makefile.in
--- squid-4.4/compat/Makefile.in	2018-10-28 09:45:09.000000000 +1300
+++ squid-4.5/compat/Makefile.in	2019-01-01 13:30:43.000000000 +1300
@@ -577,6 +577,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/configure squid-4.5/configure
--- squid-4.4/configure	2018-10-28 09:45:15.000000000 +1300
+++ squid-4.5/configure	2019-01-01 13:30:50.000000000 +1300
@@ -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 4.4.
+# Generated by GNU Autoconf 2.69 for Squid Web Proxy 4.5.
 #
 # 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='4.4'
-PACKAGE_STRING='Squid Web Proxy 4.4'
+PACKAGE_VERSION='4.5'
+PACKAGE_STRING='Squid Web Proxy 4.5'
 PACKAGE_BUGREPORT='http://bugs.squid-cache.org/'
 PACKAGE_URL=''
 
@@ -744,6 +744,8 @@
 ENABLE_LIBEXPAT_TRUE
 ENABLE_ESI_FALSE
 ENABLE_ESI_TRUE
+LIBXML2_LIBS
+LIBXML2_CFLAGS
 ENABLE_DELAY_POOLS_FALSE
 ENABLE_DELAY_POOLS_TRUE
 ENABLE_PINGER_FALSE
@@ -1084,6 +1086,8 @@
 PKG_CONFIG_PATH
 PKG_CONFIG_LIBDIR
 LT_SYS_LIBRARY_PATH
+LIBXML2_CFLAGS
+LIBXML2_LIBS
 EXT_LIBECAP_CFLAGS
 EXT_LIBECAP_LIBS
 LIBGNUTLS_CFLAGS
@@ -1647,7 +1651,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 4.4 to adapt to many kinds of systems.
+\`configure' configures Squid Web Proxy 4.5 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1718,7 +1722,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of Squid Web Proxy 4.4:";;
+     short | recursive ) echo "Configuration of Squid Web Proxy 4.5:";;
    esac
   cat <<\_ACEOF
 
@@ -2056,6 +2060,10 @@
               path overriding pkg-config's built-in search path
   LT_SYS_LIBRARY_PATH
               User-defined run-time library search path.
+  LIBXML2_CFLAGS
+              C compiler flags for LIBXML2, overriding pkg-config
+  LIBXML2_LIBS
+              linker flags for LIBXML2, overriding pkg-config
   EXT_LIBECAP_CFLAGS
               C compiler flags for EXT_LIBECAP, overriding pkg-config
   EXT_LIBECAP_LIBS
@@ -2147,7 +2155,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-Squid Web Proxy configure 4.4
+Squid Web Proxy configure 4.5
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -3251,7 +3259,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 4.4, which was
+It was created by Squid Web Proxy $as_me 4.5, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -4118,7 +4126,7 @@
 
 # Define the identity of the package.
  PACKAGE='squid'
- VERSION='4.4'
+ VERSION='4.5'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -22293,7 +22301,81 @@
 fi
 
 if test "x$squid_opt_use_esi" != "xno" -a "x$with_libxml2" != "xno" ; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lxml2" >&5
+
+# save state, key is squid_libxml2_save
+squid_libxml2_save_CFLAGS="${CFLAGS}"
+squid_libxml2_save_CXXFLAGS="${CXXFLAGS}"
+squid_libxml2_save_LDFLAGS="${LDFLAGS}"
+squid_libxml2_save_LIBS="${LIBS}"
+squid_libxml2_save_CC="${CC}"
+squid_libxml2_save_CXX="${CXX}"
+squid_libxml2_save_CPPFLAGS="${CPPFLAGS}"
+squid_libxml2_save_squid_saved_vars=""
+for squid_util_var_tosave in $squid_libxml2_save_squid_saved_vars
+do
+    squid_util_var_tosave2="squid_libxml2_save_${squid_util_var_tosave}"
+    eval "${squid_util_var_tosave2}=\"${squid_util_var_tosave}\""
+done
+
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBXML2" >&5
+$as_echo_n "checking for LIBXML2... " >&6; }
+
+if test -n "$LIBXML2_CFLAGS"; then
+    pkg_cv_LIBXML2_CFLAGS="$LIBXML2_CFLAGS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libxml-2.0\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "libxml-2.0") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_LIBXML2_CFLAGS=`$PKG_CONFIG --cflags "libxml-2.0" 2>/dev/null`
+else
+  pkg_failed=yes
+fi
+ else
+    pkg_failed=untried
+fi
+if test -n "$LIBXML2_LIBS"; then
+    pkg_cv_LIBXML2_LIBS="$LIBXML2_LIBS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libxml-2.0\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "libxml-2.0") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_LIBXML2_LIBS=`$PKG_CONFIG --libs "libxml-2.0" 2>/dev/null`
+else
+  pkg_failed=yes
+fi
+ else
+    pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+   	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+        _pkg_short_errors_supported=yes
+else
+        _pkg_short_errors_supported=no
+fi
+        if test $_pkg_short_errors_supported = yes; then
+	        LIBXML2_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "libxml-2.0" 2>&1`
+        else
+	        LIBXML2_PKG_ERRORS=`$PKG_CONFIG --print-errors "libxml-2.0" 2>&1`
+        fi
+	# Put the nasty error message in config.log where it belongs
+	echo "$LIBXML2_PKG_ERRORS" >&5
+
+
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lxml2" >&5
 $as_echo_n "checking for main in -lxml2... " >&6; }
 if ${ac_cv_lib_xml2_main+:} false; then :
   $as_echo_n "(cached) " >&6
@@ -22324,16 +22406,16 @@
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_xml2_main" >&5
 $as_echo "$ac_cv_lib_xml2_main" >&6; }
 if test "x$ac_cv_lib_xml2_main" = xyes; then :
-  XMLLIB="-lxml2"; HAVE_LIBXML2=1
+  LIBXML2_LIBS="$LIBXML2_LIBS -lxml2"
 fi
 
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking location of libxml2 include files" >&5
+        { $as_echo "$as_me:${as_lineno-$LINENO}: checking location of libxml2 include files" >&5
 $as_echo_n "checking location of libxml2 include files... " >&6; }
 if ${ac_cv_libxml2_include+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
-    for ac_header in libxml/parser.h
+      for ac_header in libxml/parser.h
 do :
   ac_fn_cxx_check_header_mongrel "$LINENO" "libxml/parser.h" "ac_cv_header_libxml_parser_h" "$ac_includes_default"
 if test "x$ac_cv_header_libxml_parser_h" = xyes; then :
@@ -22343,24 +22425,116 @@
 
 else
 
-      { $as_echo "$as_me:${as_lineno-$LINENO}: Testing in /usr/include/libxml2" >&5
+        { $as_echo "$as_me:${as_lineno-$LINENO}: Testing in /usr/include/libxml2" >&5
 $as_echo "$as_me: Testing in /usr/include/libxml2" >&6;}
-      SAVED_CPPFLAGS="$CPPFLAGS"
-      CPPFLAGS="-I/usr/include/libxml2 $CPPFLAGS"
-      unset ac_cv_header_libxml_parser_h
-      for ac_header in libxml/parser.h
+        SAVED_CPPFLAGS="$CPPFLAGS"
+        CPPFLAGS="-I/usr/include/libxml2 $CPPFLAGS"
+        unset ac_cv_header_libxml_parser_h
+        for ac_header in libxml/parser.h
 do :
   ac_fn_cxx_check_header_mongrel "$LINENO" "libxml/parser.h" "ac_cv_header_libxml_parser_h" "$ac_includes_default"
 if test "x$ac_cv_header_libxml_parser_h" = xyes; then :
   cat >>confdefs.h <<_ACEOF
 #define HAVE_LIBXML_PARSER_H 1
 _ACEOF
- ac_cv_libxml2_include="-I/usr/include/libxml2"
+ LIBXML2_CFLAGS="$LIBXML2_CFLAGS -I/usr/include/libxml2"
 else
 
-        { $as_echo "$as_me:${as_lineno-$LINENO}: Testing in /usr/local/include/libxml2" >&5
+          { $as_echo "$as_me:${as_lineno-$LINENO}: Testing in /usr/local/include/libxml2" >&5
 $as_echo "$as_me: Testing in /usr/local/include/libxml2" >&6;}
-        CPPFLAGS="-I/usr/local/include/libxml2 $SAVED_CPPFLAGS"
+          CPPFLAGS="-I/usr/local/include/libxml2 $SAVED_CPPFLAGS"
+          unset ac_cv_header_libxml_parser_h
+          for ac_header in libxml/parser.h
+do :
+  ac_fn_cxx_check_header_mongrel "$LINENO" "libxml/parser.h" "ac_cv_header_libxml_parser_h" "$ac_includes_default"
+if test "x$ac_cv_header_libxml_parser_h" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_LIBXML_PARSER_H 1
+_ACEOF
+ LIBXML2_CFLAGS="$LIBXML2_CFLAGS -I/usr/local/include/libxml2"
+else
+
+            { $as_echo "$as_me:${as_lineno-$LINENO}: Failed to find libxml2 header file libxml/parser.h" >&5
+$as_echo "$as_me: Failed to find libxml2 header file libxml/parser.h" >&6;}
+
+fi
+
+done
+
+
+fi
+
+done
+
+        CPPFLAGS="$SAVED_CPPFLAGS"
+
+fi
+
+done
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_libxml2_include" >&5
+$as_echo "$ac_cv_libxml2_include" >&6; }
+
+elif test $pkg_failed = untried; then
+     	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lxml2" >&5
+$as_echo_n "checking for main in -lxml2... " >&6; }
+if ${ac_cv_lib_xml2_main+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lxml2  $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+
+int
+main ()
+{
+return main ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_link "$LINENO"; then :
+  ac_cv_lib_xml2_main=yes
+else
+  ac_cv_lib_xml2_main=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_xml2_main" >&5
+$as_echo "$ac_cv_lib_xml2_main" >&6; }
+if test "x$ac_cv_lib_xml2_main" = xyes; then :
+  LIBXML2_LIBS="$LIBXML2_LIBS -lxml2"
+fi
+
+        { $as_echo "$as_me:${as_lineno-$LINENO}: checking location of libxml2 include files" >&5
+$as_echo_n "checking location of libxml2 include files... " >&6; }
+if ${ac_cv_libxml2_include+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+      for ac_header in libxml/parser.h
+do :
+  ac_fn_cxx_check_header_mongrel "$LINENO" "libxml/parser.h" "ac_cv_header_libxml_parser_h" "$ac_includes_default"
+if test "x$ac_cv_header_libxml_parser_h" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_LIBXML_PARSER_H 1
+_ACEOF
+
+else
+
+        { $as_echo "$as_me:${as_lineno-$LINENO}: Testing in /usr/include/libxml2" >&5
+$as_echo "$as_me: Testing in /usr/include/libxml2" >&6;}
+        SAVED_CPPFLAGS="$CPPFLAGS"
+        CPPFLAGS="-I/usr/include/libxml2 $CPPFLAGS"
         unset ac_cv_header_libxml_parser_h
         for ac_header in libxml/parser.h
 do :
@@ -22369,10 +22543,24 @@
   cat >>confdefs.h <<_ACEOF
 #define HAVE_LIBXML_PARSER_H 1
 _ACEOF
- ac_cv_libxml2_include="-I/usr/local/include/libxml2"
+ LIBXML2_CFLAGS="$LIBXML2_CFLAGS -I/usr/include/libxml2"
+else
+
+          { $as_echo "$as_me:${as_lineno-$LINENO}: Testing in /usr/local/include/libxml2" >&5
+$as_echo "$as_me: Testing in /usr/local/include/libxml2" >&6;}
+          CPPFLAGS="-I/usr/local/include/libxml2 $SAVED_CPPFLAGS"
+          unset ac_cv_header_libxml_parser_h
+          for ac_header in libxml/parser.h
+do :
+  ac_fn_cxx_check_header_mongrel "$LINENO" "libxml/parser.h" "ac_cv_header_libxml_parser_h" "$ac_includes_default"
+if test "x$ac_cv_header_libxml_parser_h" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_LIBXML_PARSER_H 1
+_ACEOF
+ LIBXML2_CFLAGS="$LIBXML2_CFLAGS -I/usr/local/include/libxml2"
 else
 
-          { $as_echo "$as_me:${as_lineno-$LINENO}: Failed to find libxml2 header file libxml/parser.h" >&5
+            { $as_echo "$as_me:${as_lineno-$LINENO}: Failed to find libxml2 header file libxml/parser.h" >&5
 $as_echo "$as_me: Failed to find libxml2 header file libxml/parser.h" >&6;}
 
 fi
@@ -22384,7 +22572,7 @@
 
 done
 
-      CPPFLAGS="$SAVED_CPPFLAGS"
+        CPPFLAGS="$SAVED_CPPFLAGS"
 
 fi
 
@@ -22394,10 +22582,15 @@
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_libxml2_include" >&5
 $as_echo "$ac_cv_libxml2_include" >&6; }
-  if test "x$ac_cv_libxml2_include" != "x"; then
-      SQUID_CXXFLAGS="$ac_cv_libxml2_include $SQUID_CXXFLAGS"
-      CPPFLAGS="$ac_cv_libxml2_include $CPPFLAGS"
-  fi
+
+else
+	LIBXML2_CFLAGS=$pkg_cv_LIBXML2_CFLAGS
+	LIBXML2_LIBS=$pkg_cv_LIBXML2_LIBS
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+
+fi
+  CPPFLAGS="$CPPFLAGS $LIBXML2_CFLAGS"
     for ac_header in libxml/parser.h libxml/HTMLparser.h libxml/HTMLtree.h
 do :
   as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
@@ -22412,28 +22605,52 @@
 done
 
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBXML2 $HAVE_LIBXML2
-_ACEOF
-
-  if test "x$HAVE_LIBXML2" = "x1"; then :
+# rollback state, key is squid_libxml2_save
+CFLAGS="${squid_libxml2_save_CFLAGS}"
+CXXFLAGS="${squid_libxml2_save_CXXFLAGS}"
+LDFLAGS="${squid_libxml2_save_LDFLAGS}"
+LIBS="${squid_libxml2_save_LIBS}"
+CC="${squid_libxml2_save_CC}"
+CXX="${squid_libxml2_save_CXX}"
+CPPFLAGS="${squid_libxml2_save_CPPFLAGS}"
+for squid_util_var_tosave in $squid_libxml2_save_squid_saved_vars
+do
+    squid_util_var_tosave2="\$squid_libxml2_save_${squid_util_var_tosave}"
+    eval "$squid_util_var_tosave=\"${squid_util_var_tosave2}\""
+done
 
-    squid_opt_use_esi=yes
+# commit state, key is squid_libxml2_save
+unset squid_libxml2_save_CFLAGS
+unset squid_libxml2_save_CXXFLAGS
+unset squid_libxml2_save_LDFLAGS
+unset squid_libxml2_save_LIBS
+unset squid_libxml2_save_CC
+unset squid_libxml2_save_CXX
+unset squid_libxml2_save_CPPFLAGS
+for squid_util_var_tosave in $squid_libxml2_save_squid_saved_vars
+do
+    unset ${squid_util_var_tosave}
+done
 
-else
 
-    if test "x$with_libxml2" = "xyes"; then :
 
-      as_fn_error $? "Required library libxml2 not found." "$LINENO" 5
+  if test "x$LIBXML2_LIBS" != "x"; then
+    HAVE_LIBXML2=1
+    squid_opt_use_esi=yes
+    SQUID_CXXFLAGS="$SQUID_CXXFLAGS $LIBXML2_CFLAGS"
+    CPPFLAGS="$CPPFLAGS $LIBXML2_CFLAGS"
+    XMLLIB="$LIBXML2_LIBS"
 
-else
+cat >>confdefs.h <<_ACEOF
+#define HAVE_LIBXML2 $HAVE_LIBXML2
+_ACEOF
 
-      { $as_echo "$as_me:${as_lineno-$LINENO}: Library libxml2 not found." >&5
+  elif test "x$with_libxml2" = "xyes"; then
+    as_fn_error $? "Required library libxml2 not found" "$LINENO" 5
+  else
+    { $as_echo "$as_me:${as_lineno-$LINENO}: Library libxml2 not found." >&5
 $as_echo "$as_me: Library libxml2 not found." >&6;}
-
-fi
-
-fi
+  fi
 fi
 
 if test "x$squid_opt_use_esi" = "xyes"; then :
@@ -43971,7 +44188,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 4.4, which was
+This file was extended by Squid Web Proxy $as_me 4.5, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -44037,7 +44254,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 4.4
+Squid Web Proxy config.status 4.5
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
diff -u -r -N squid-4.4/configure.ac squid-4.5/configure.ac
--- squid-4.4/configure.ac	2018-10-28 09:45:15.000000000 +1300
+++ squid-4.5/configure.ac	2019-01-01 13:30:50.000000000 +1300
@@ -5,12 +5,12 @@
 ## Please see the COPYING and CONTRIBUTORS files for details.
 ##
 
-AC_INIT([Squid Web Proxy],[4.4],[http://bugs.squid-cache.org/],[squid])
+AC_INIT([Squid Web Proxy],[4.5],[http://bugs.squid-cache.org/],[squid])
 AC_PREREQ(2.61)
 AC_CONFIG_HEADERS([include/autoconf.h])
 AC_CONFIG_AUX_DIR(cfgaux)
 AC_CONFIG_SRCDIR([src/main.cc])
-AM_INIT_AUTOMAKE([tar-ustar nostdinc subdir-objects])
+AM_INIT_AUTOMAKE([tar-ustar nostdinc subdir-objects dist-xz])
 AC_REVISION($Revision$)dnl
 AC_PREFIX_DEFAULT(/usr/local/squid)
 AM_MAINTAINER_MODE
@@ -922,41 +922,45 @@
 
 AC_ARG_WITH(libxml2, AS_HELP_STRING([--without-libxml2],[Do not use libxml2 for ESI. Default: auto-detect]))
 if test "x$squid_opt_use_esi" != "xno" -a "x$with_libxml2" != "xno" ; then
-  AC_CHECK_LIB([xml2], [main], [XMLLIB="-lxml2"; HAVE_LIBXML2=1])
-  dnl Find the main header and include path...
-  AC_CACHE_CHECK([location of libxml2 include files], [ac_cv_libxml2_include], [
-    AC_CHECK_HEADERS([libxml/parser.h], [], [
-      AC_MSG_NOTICE([Testing in /usr/include/libxml2])
-      SAVED_CPPFLAGS="$CPPFLAGS"
-      CPPFLAGS="-I/usr/include/libxml2 $CPPFLAGS"
-      unset ac_cv_header_libxml_parser_h
-      AC_CHECK_HEADERS([libxml/parser.h], [ac_cv_libxml2_include="-I/usr/include/libxml2"], [
-        AC_MSG_NOTICE([Testing in /usr/local/include/libxml2])
-        CPPFLAGS="-I/usr/local/include/libxml2 $SAVED_CPPFLAGS"
+  SQUID_STATE_SAVE([squid_libxml2_save])
+  PKG_CHECK_MODULES([LIBXML2],[libxml-2.0],[],[
+    AC_CHECK_LIB([xml2], [main], [LIBXML2_LIBS="$LIBXML2_LIBS -lxml2"])
+    dnl Find the main header and include path...
+    AC_CACHE_CHECK([location of libxml2 include files], [ac_cv_libxml2_include], [
+      AC_CHECK_HEADERS([libxml/parser.h], [], [
+        AC_MSG_NOTICE([Testing in /usr/include/libxml2])
+        SAVED_CPPFLAGS="$CPPFLAGS"
+        CPPFLAGS="-I/usr/include/libxml2 $CPPFLAGS"
         unset ac_cv_header_libxml_parser_h
-        AC_CHECK_HEADERS([libxml/parser.h], [ac_cv_libxml2_include="-I/usr/local/include/libxml2"], [
-          AC_MSG_NOTICE([Failed to find libxml2 header file libxml/parser.h])
+        AC_CHECK_HEADERS([libxml/parser.h], [LIBXML2_CFLAGS="$LIBXML2_CFLAGS -I/usr/include/libxml2"], [
+          AC_MSG_NOTICE([Testing in /usr/local/include/libxml2])
+          CPPFLAGS="-I/usr/local/include/libxml2 $SAVED_CPPFLAGS"
+          unset ac_cv_header_libxml_parser_h
+          AC_CHECK_HEADERS([libxml/parser.h], [LIBXML2_CFLAGS="$LIBXML2_CFLAGS -I/usr/local/include/libxml2"], [
+            AC_MSG_NOTICE([Failed to find libxml2 header file libxml/parser.h])
+          ])
         ])
+        CPPFLAGS="$SAVED_CPPFLAGS"
       ])
-      CPPFLAGS="$SAVED_CPPFLAGS"
     ])
   ])
-  if test "x$ac_cv_libxml2_include" != "x"; then
-      SQUID_CXXFLAGS="$ac_cv_libxml2_include $SQUID_CXXFLAGS"
-      CPPFLAGS="$ac_cv_libxml2_include $CPPFLAGS"
-  fi
+  CPPFLAGS="$CPPFLAGS $LIBXML2_CFLAGS"
   dnl Now that we know where to look find the headers...
   AC_CHECK_HEADERS(libxml/parser.h libxml/HTMLparser.h libxml/HTMLtree.h)
-  AC_DEFINE_UNQUOTED(HAVE_LIBXML2, $HAVE_LIBXML2, [Define to 1 if you have the libxml2 library])
-  AS_IF(test "x$HAVE_LIBXML2" = "x1",[
+  SQUID_STATE_ROLLBACK([squid_libxml2_save])
+
+  if test "x$LIBXML2_LIBS" != "x"; then
+    HAVE_LIBXML2=1
     squid_opt_use_esi=yes
-  ],[
-    AS_IF(test "x$with_libxml2" = "xyes",[
-      AC_MSG_ERROR([Required library libxml2 not found.])
-    ],[
-      AC_MSG_NOTICE([Library libxml2 not found.])
-    ])
-  ])
+    SQUID_CXXFLAGS="$SQUID_CXXFLAGS $LIBXML2_CFLAGS"
+    CPPFLAGS="$CPPFLAGS $LIBXML2_CFLAGS"
+    XMLLIB="$LIBXML2_LIBS"
+    AC_DEFINE_UNQUOTED(HAVE_LIBXML2, $HAVE_LIBXML2, [Define to 1 if you have the libxml2 library])
+  elif test "x$with_libxml2" = "xyes"; then
+    AC_MSG_ERROR([Required library libxml2 not found])
+  else
+    AC_MSG_NOTICE([Library libxml2 not found.])
+  fi
 fi
 
 AS_IF([test "x$squid_opt_use_esi" = "xyes"],[
diff -u -r -N squid-4.4/contrib/Makefile.in squid-4.5/contrib/Makefile.in
--- squid-4.4/contrib/Makefile.in	2018-10-28 09:45:09.000000000 +1300
+++ squid-4.5/contrib/Makefile.in	2019-01-01 13:30:43.000000000 +1300
@@ -273,6 +273,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/doc/Makefile.in squid-4.5/doc/Makefile.in
--- squid-4.4/doc/Makefile.in	2018-10-28 09:45:09.000000000 +1300
+++ squid-4.5/doc/Makefile.in	2019-01-01 13:30:43.000000000 +1300
@@ -328,6 +328,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/doc/manuals/Makefile.in squid-4.5/doc/manuals/Makefile.in
--- squid-4.4/doc/manuals/Makefile.in	2018-10-28 09:45:09.000000000 +1300
+++ squid-4.5/doc/manuals/Makefile.in	2019-01-01 13:30:43.000000000 +1300
@@ -268,6 +268,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/doc/release-notes/Makefile.in squid-4.5/doc/release-notes/Makefile.in
--- squid-4.4/doc/release-notes/Makefile.in	2018-10-28 09:45:09.000000000 +1300
+++ squid-4.5/doc/release-notes/Makefile.in	2019-01-01 13:30:43.000000000 +1300
@@ -268,6 +268,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/doc/release-notes/release-4.html squid-4.5/doc/release-notes/release-4.html
--- squid-4.4/doc/release-notes/release-4.html	2018-10-28 09:56:40.000000000 +1300
+++ squid-4.5/doc/release-notes/release-4.html	2019-01-01 13:42:00.000000000 +1300
@@ -2,10 +2,10 @@
 <HTML>
 <HEAD>
  <META NAME="GENERATOR" CONTENT="LinuxDoc-Tools 0.9.73">
- <TITLE>Squid 4.4 release notes</TITLE>
+ <TITLE>Squid 4.5 release notes</TITLE>
 </HEAD>
 <BODY>
-<H1>Squid 4.4 release notes</H1>
+<H1>Squid 4.5 release notes</H1>
 
 <H2>Squid Developers</H2>
 <HR>
@@ -63,7 +63,7 @@
 <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-4.4 for testing.</P>
+<P>The Squid Team are pleased to announce the release of Squid-4.5 for testing.</P>
 <P>This new release is available for download from 
 <A HREF="http://www.squid-cache.org/Versions/v4/">http://www.squid-cache.org/Versions/v4/</A> or the
 <A HREF="http://www.squid-cache.org/Download/http-mirrors.html">mirrors</A>.</P>
@@ -369,8 +369,8 @@
 
 <DT><B>acl</B><DD>
 <P>New <EM>-m</EM> flag for <EM>note</EM> ACL to match substrings.</P>
-<P>New <EM>clientside_mark</EM> type for matching Netfilter CONNMARK on
-the client TCP connection.</P>
+<P>New <EM>client_connection_mark</EM> type for matching Netfilter
+CONNMARK of the client TCP connection.</P>
 <P>New <EM>connections_encrypted</EM> type for matching transactions
 where all HTTP messages were received over TLS transport connections,
 including messages received from ICAP servers.</P>
@@ -499,6 +499,8 @@
 negotiated cipher of the client connection.</P>
 <P>New code <EM>%ssl::&lt;negotiated_cipher</EM> to display the
 negotiated cipher of the last server or peer connection.</P>
+<P>New code <EM>%&gt;handshake</EM> to display initial octets
+received on a client connection (Base64 encoded).</P>
 <P>Fixed <EM>%&lt;Hs</EM>, <EM>%&lt;pt</EM> and <EM>%&lt;tt</EM>
 codes for received CONNECT errors.</P>
 <P>Improved <EM>%&lt;bs</EM> logging on forwarding retries.</P>
diff -u -r -N squid-4.4/errors/Makefile.in squid-4.5/errors/Makefile.in
--- squid-4.4/errors/Makefile.in	2018-10-28 09:45:09.000000000 +1300
+++ squid-4.5/errors/Makefile.in	2019-01-01 13:30:43.000000000 +1300
@@ -269,6 +269,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/icons/Makefile.in squid-4.5/icons/Makefile.in
--- squid-4.4/icons/Makefile.in	2018-10-28 09:45:09.000000000 +1300
+++ squid-4.5/icons/Makefile.in	2019-01-01 13:30:43.000000000 +1300
@@ -298,6 +298,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/include/version.h squid-4.5/include/version.h
--- squid-4.4/include/version.h	2018-10-28 09:45:15.000000000 +1300
+++ squid-4.5/include/version.h	2019-01-01 13:30:50.000000000 +1300
@@ -7,7 +7,7 @@
  */
 
 #ifndef SQUID_RELEASE_TIME
-#define SQUID_RELEASE_TIME 1540673103
+#define SQUID_RELEASE_TIME 1546302637
 #endif
 
 /*
diff -u -r -N squid-4.4/lib/libTrie/Makefile.in squid-4.5/lib/libTrie/Makefile.in
--- squid-4.4/lib/libTrie/Makefile.in	2018-10-28 09:45:09.000000000 +1300
+++ squid-4.5/lib/libTrie/Makefile.in	2019-01-01 13:30:43.000000000 +1300
@@ -597,6 +597,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/lib/libTrie/test/Makefile.in squid-4.5/lib/libTrie/test/Makefile.in
--- squid-4.4/lib/libTrie/test/Makefile.in	2018-10-28 09:45:09.000000000 +1300
+++ squid-4.5/lib/libTrie/test/Makefile.in	2019-01-01 13:30:43.000000000 +1300
@@ -528,6 +528,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/lib/Makefile.in squid-4.5/lib/Makefile.in
--- squid-4.4/lib/Makefile.in	2018-10-28 09:45:09.000000000 +1300
+++ squid-4.5/lib/Makefile.in	2019-01-01 13:30:43.000000000 +1300
@@ -647,6 +647,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/lib/ntlmauth/Makefile.in squid-4.5/lib/ntlmauth/Makefile.in
--- squid-4.4/lib/ntlmauth/Makefile.in	2018-10-28 09:45:09.000000000 +1300
+++ squid-4.5/lib/ntlmauth/Makefile.in	2019-01-01 13:30:43.000000000 +1300
@@ -548,6 +548,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/lib/profiler/Makefile.in squid-4.5/lib/profiler/Makefile.in
--- squid-4.4/lib/profiler/Makefile.in	2018-10-28 09:45:09.000000000 +1300
+++ squid-4.5/lib/profiler/Makefile.in	2019-01-01 13:30:43.000000000 +1300
@@ -552,6 +552,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/lib/rfcnb/Makefile.in squid-4.5/lib/rfcnb/Makefile.in
--- squid-4.4/lib/rfcnb/Makefile.in	2018-10-28 09:45:09.000000000 +1300
+++ squid-4.5/lib/rfcnb/Makefile.in	2019-01-01 13:30:43.000000000 +1300
@@ -529,6 +529,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/lib/smblib/Makefile.in squid-4.5/lib/smblib/Makefile.in
--- squid-4.4/lib/smblib/Makefile.in	2018-10-28 09:45:09.000000000 +1300
+++ squid-4.5/lib/smblib/Makefile.in	2019-01-01 13:30:43.000000000 +1300
@@ -531,6 +531,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/lib/snmplib/Makefile.in squid-4.5/lib/snmplib/Makefile.in
--- squid-4.4/lib/snmplib/Makefile.in	2018-10-28 09:45:09.000000000 +1300
+++ squid-4.5/lib/snmplib/Makefile.in	2019-01-01 13:30:43.000000000 +1300
@@ -325,6 +325,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/Makefile.in squid-4.5/Makefile.in
--- squid-4.4/Makefile.in	2018-10-28 09:45:09.000000000 +1300
+++ squid-4.5/Makefile.in	2019-01-01 13:30:42.000000000 +1300
@@ -261,9 +261,9 @@
     dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
   done; \
   reldir="$$dir2"
-DIST_ARCHIVES = $(distdir).tar.gz $(distdir).tar.bz2
+DIST_ARCHIVES = $(distdir).tar.gz $(distdir).tar.bz2 $(distdir).tar.xz
 GZIP_ENV = --best
-DIST_TARGETS = dist-bzip2 dist-gzip
+DIST_TARGETS = dist-xz dist-bzip2 dist-gzip
 distuninstallcheck_listfiles = find . -type f -print
 am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \
   | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$'
@@ -356,6 +356,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
@@ -758,7 +760,6 @@
 dist-lzip: distdir
 	tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz
 	$(am__post_remove_distdir)
-
 dist-xz: distdir
 	tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz
 	$(am__post_remove_distdir)
diff -u -r -N squid-4.4/RELEASENOTES.html squid-4.5/RELEASENOTES.html
--- squid-4.4/RELEASENOTES.html	2018-10-28 09:56:40.000000000 +1300
+++ squid-4.5/RELEASENOTES.html	2019-01-01 13:42:00.000000000 +1300
@@ -2,10 +2,10 @@
 <HTML>
 <HEAD>
  <META NAME="GENERATOR" CONTENT="LinuxDoc-Tools 0.9.73">
- <TITLE>Squid 4.4 release notes</TITLE>
+ <TITLE>Squid 4.5 release notes</TITLE>
 </HEAD>
 <BODY>
-<H1>Squid 4.4 release notes</H1>
+<H1>Squid 4.5 release notes</H1>
 
 <H2>Squid Developers</H2>
 <HR>
@@ -63,7 +63,7 @@
 <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-4.4 for testing.</P>
+<P>The Squid Team are pleased to announce the release of Squid-4.5 for testing.</P>
 <P>This new release is available for download from 
 <A HREF="http://www.squid-cache.org/Versions/v4/">http://www.squid-cache.org/Versions/v4/</A> or the
 <A HREF="http://www.squid-cache.org/Download/http-mirrors.html">mirrors</A>.</P>
@@ -369,8 +369,8 @@
 
 <DT><B>acl</B><DD>
 <P>New <EM>-m</EM> flag for <EM>note</EM> ACL to match substrings.</P>
-<P>New <EM>clientside_mark</EM> type for matching Netfilter CONNMARK on
-the client TCP connection.</P>
+<P>New <EM>client_connection_mark</EM> type for matching Netfilter
+CONNMARK of the client TCP connection.</P>
 <P>New <EM>connections_encrypted</EM> type for matching transactions
 where all HTTP messages were received over TLS transport connections,
 including messages received from ICAP servers.</P>
@@ -499,6 +499,8 @@
 negotiated cipher of the client connection.</P>
 <P>New code <EM>%ssl::&lt;negotiated_cipher</EM> to display the
 negotiated cipher of the last server or peer connection.</P>
+<P>New code <EM>%&gt;handshake</EM> to display initial octets
+received on a client connection (Base64 encoded).</P>
 <P>Fixed <EM>%&lt;Hs</EM>, <EM>%&lt;pt</EM> and <EM>%&lt;tt</EM>
 codes for received CONNECT errors.</P>
 <P>Improved <EM>%&lt;bs</EM> logging on forwarding retries.</P>
diff -u -r -N squid-4.4/scripts/Makefile.in squid-4.5/scripts/Makefile.in
--- squid-4.4/scripts/Makefile.in	2018-10-28 09:45:09.000000000 +1300
+++ squid-4.5/scripts/Makefile.in	2019-01-01 13:30:43.000000000 +1300
@@ -271,6 +271,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/src/acl/ConnMark.cc squid-4.5/src/acl/ConnMark.cc
--- squid-4.4/src/acl/ConnMark.cc	2018-10-28 09:44:55.000000000 +1300
+++ squid-4.5/src/acl/ConnMark.cc	2019-01-01 13:02:15.000000000 +1300
@@ -74,15 +74,22 @@
 Acl::ConnMark::match(ACLChecklist *cl)
 {
     const auto *checklist = Filled(cl);
-    const auto connmark = checklist->conn()->clientConnection->nfmark;
+    const auto conn = checklist->conn();
 
-    for (const auto &m : marks) {
-        if ((connmark & m.second) == m.first) {
-            debugs(28, 5, "found " << m << " matching " << asHex(connmark));
-            return 1;
+    if (conn && conn->clientConnection) {
+        const auto connmark = conn->clientConnection->nfmark;
+
+        for (const auto &m : marks) {
+            if ((connmark & m.second) == m.first) {
+                debugs(28, 5, "found " << m << " matching " << asHex(connmark));
+                return 1;
+            }
+            debugs(28, 7, "skipped " << m << " mismatching " << asHex(connmark));
         }
-        debugs(28, 7, "skipped " << m << " mismatching " << asHex(connmark));
+    } else {
+        debugs(28, 7, "fails: no client connection");
     }
+
     return 0;
 }
 
diff -u -r -N squid-4.4/src/acl/external/AD_group/Makefile.in squid-4.5/src/acl/external/AD_group/Makefile.in
--- squid-4.4/src/acl/external/AD_group/Makefile.in	2018-10-28 09:45:10.000000000 +1300
+++ squid-4.5/src/acl/external/AD_group/Makefile.in	2019-01-01 13:30:44.000000000 +1300
@@ -538,6 +538,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/src/acl/external/delayer/ext_delayer_acl.8 squid-4.5/src/acl/external/delayer/ext_delayer_acl.8
--- squid-4.4/src/acl/external/delayer/ext_delayer_acl.8	2018-10-28 09:56:43.000000000 +1300
+++ squid-4.5/src/acl/external/delayer/ext_delayer_acl.8	2019-01-01 13:42:04.000000000 +1300
@@ -1,4 +1,4 @@
-.\" Automatically generated by Pod::Man 4.09 (Pod::Simple 3.35)
+.\" Automatically generated by Pod::Man 4.10 (Pod::Simple 3.35)
 .\"
 .\" Standard preamble:
 .\" ========================================================================
@@ -54,16 +54,20 @@
 .\" Avoid warning from groff about undefined register 'F'.
 .de IX
 ..
-.if !\nF .nr F 0
-.if \nF>0 \{\
-.    de IX
-.    tm Index:\\$1\t\\n%\t"\\$2"
+.nr rF 0
+.if \n(.g .if rF .nr rF 1
+.if (\n(rF:(\n(.g==0)) \{\
+.    if \nF \{\
+.        de IX
+.        tm Index:\\$1\t\\n%\t"\\$2"
 ..
-.    if !\nF==2 \{\
-.        nr % 0
-.        nr F 2
+.        if !\nF==2 \{\
+.            nr % 0
+.            nr F 2
+.        \}
 .    \}
 .\}
+.rr rF
 .\"
 .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
 .\" Fear.  Run.  Save yourself.  No user-serviceable parts.
@@ -129,7 +133,7 @@
 .\" ========================================================================
 .\"
 .IX Title "EXT_DELAYER_ACL 8"
-.TH EXT_DELAYER_ACL 8 "2018-10-27" "perl v5.26.2" "User Contributed Perl Documentation"
+.TH EXT_DELAYER_ACL 8 "2019-01-01" "perl v5.28.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-4.4/src/acl/external/delayer/Makefile.in squid-4.5/src/acl/external/delayer/Makefile.in
--- squid-4.4/src/acl/external/delayer/Makefile.in	2018-10-28 09:45:10.000000000 +1300
+++ squid-4.5/src/acl/external/delayer/Makefile.in	2019-01-01 13:30:44.000000000 +1300
@@ -486,6 +486,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/src/acl/external/eDirectory_userip/Makefile.in squid-4.5/src/acl/external/eDirectory_userip/Makefile.in
--- squid-4.4/src/acl/external/eDirectory_userip/Makefile.in	2018-10-28 09:45:10.000000000 +1300
+++ squid-4.5/src/acl/external/eDirectory_userip/Makefile.in	2019-01-01 13:30:44.000000000 +1300
@@ -541,6 +541,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/src/acl/external/file_userip/Makefile.in squid-4.5/src/acl/external/file_userip/Makefile.in
--- squid-4.4/src/acl/external/file_userip/Makefile.in	2018-10-28 09:45:10.000000000 +1300
+++ squid-4.5/src/acl/external/file_userip/Makefile.in	2019-01-01 13:30:44.000000000 +1300
@@ -539,6 +539,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/src/acl/external/kerberos_ldap_group/Makefile.in squid-4.5/src/acl/external/kerberos_ldap_group/Makefile.in
--- squid-4.4/src/acl/external/kerberos_ldap_group/Makefile.in	2018-10-28 09:45:10.000000000 +1300
+++ squid-4.5/src/acl/external/kerberos_ldap_group/Makefile.in	2019-01-01 13:30:44.000000000 +1300
@@ -574,6 +574,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/src/acl/external/LDAP_group/Makefile.in squid-4.5/src/acl/external/LDAP_group/Makefile.in
--- squid-4.4/src/acl/external/LDAP_group/Makefile.in	2018-10-28 09:45:10.000000000 +1300
+++ squid-4.5/src/acl/external/LDAP_group/Makefile.in	2019-01-01 13:30:44.000000000 +1300
@@ -541,6 +541,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/src/acl/external/LM_group/Makefile.in squid-4.5/src/acl/external/LM_group/Makefile.in
--- squid-4.4/src/acl/external/LM_group/Makefile.in	2018-10-28 09:45:10.000000000 +1300
+++ squid-4.5/src/acl/external/LM_group/Makefile.in	2019-01-01 13:30:44.000000000 +1300
@@ -539,6 +539,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/src/acl/external/Makefile.in squid-4.5/src/acl/external/Makefile.in
--- squid-4.4/src/acl/external/Makefile.in	2018-10-28 09:45:10.000000000 +1300
+++ squid-4.5/src/acl/external/Makefile.in	2019-01-01 13:30:44.000000000 +1300
@@ -327,6 +327,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/src/acl/external/session/Makefile.in squid-4.5/src/acl/external/session/Makefile.in
--- squid-4.4/src/acl/external/session/Makefile.in	2018-10-28 09:45:10.000000000 +1300
+++ squid-4.5/src/acl/external/session/Makefile.in	2019-01-01 13:30:44.000000000 +1300
@@ -536,6 +536,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/src/acl/external/SQL_session/ext_sql_session_acl.8 squid-4.5/src/acl/external/SQL_session/ext_sql_session_acl.8
--- squid-4.4/src/acl/external/SQL_session/ext_sql_session_acl.8	2018-10-28 09:56:44.000000000 +1300
+++ squid-4.5/src/acl/external/SQL_session/ext_sql_session_acl.8	2019-01-01 13:42:04.000000000 +1300
@@ -1,4 +1,4 @@
-.\" Automatically generated by Pod::Man 4.09 (Pod::Simple 3.35)
+.\" Automatically generated by Pod::Man 4.10 (Pod::Simple 3.35)
 .\"
 .\" Standard preamble:
 .\" ========================================================================
@@ -54,16 +54,20 @@
 .\" Avoid warning from groff about undefined register 'F'.
 .de IX
 ..
-.if !\nF .nr F 0
-.if \nF>0 \{\
-.    de IX
-.    tm Index:\\$1\t\\n%\t"\\$2"
+.nr rF 0
+.if \n(.g .if rF .nr rF 1
+.if (\n(rF:(\n(.g==0)) \{\
+.    if \nF \{\
+.        de IX
+.        tm Index:\\$1\t\\n%\t"\\$2"
 ..
-.    if !\nF==2 \{\
-.        nr % 0
-.        nr F 2
+.        if !\nF==2 \{\
+.            nr % 0
+.            nr F 2
+.        \}
 .    \}
 .\}
+.rr rF
 .\"
 .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
 .\" Fear.  Run.  Save yourself.  No user-serviceable parts.
@@ -129,7 +133,7 @@
 .\" ========================================================================
 .\"
 .IX Title "EXT_SQL_SESSION_ACL 8"
-.TH EXT_SQL_SESSION_ACL 8 "2018-10-27" "perl v5.26.2" "User Contributed Perl Documentation"
+.TH EXT_SQL_SESSION_ACL 8 "2019-01-01" "perl v5.28.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-4.4/src/acl/external/SQL_session/Makefile.in squid-4.5/src/acl/external/SQL_session/Makefile.in
--- squid-4.4/src/acl/external/SQL_session/Makefile.in	2018-10-28 09:45:10.000000000 +1300
+++ squid-4.5/src/acl/external/SQL_session/Makefile.in	2019-01-01 13:30:44.000000000 +1300
@@ -486,6 +486,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/src/acl/external/time_quota/Makefile.in squid-4.5/src/acl/external/time_quota/Makefile.in
--- squid-4.4/src/acl/external/time_quota/Makefile.in	2018-10-28 09:45:10.000000000 +1300
+++ squid-4.5/src/acl/external/time_quota/Makefile.in	2019-01-01 13:30:44.000000000 +1300
@@ -537,6 +537,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/src/acl/external/unix_group/Makefile.in squid-4.5/src/acl/external/unix_group/Makefile.in
--- squid-4.4/src/acl/external/unix_group/Makefile.in	2018-10-28 09:45:10.000000000 +1300
+++ squid-4.5/src/acl/external/unix_group/Makefile.in	2019-01-01 13:30:44.000000000 +1300
@@ -539,6 +539,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/src/acl/external/wbinfo_group/ext_wbinfo_group_acl.8 squid-4.5/src/acl/external/wbinfo_group/ext_wbinfo_group_acl.8
--- squid-4.4/src/acl/external/wbinfo_group/ext_wbinfo_group_acl.8	2018-10-28 09:56:44.000000000 +1300
+++ squid-4.5/src/acl/external/wbinfo_group/ext_wbinfo_group_acl.8	2019-01-01 13:42:04.000000000 +1300
@@ -1,4 +1,4 @@
-.\" Automatically generated by Pod::Man 4.09 (Pod::Simple 3.35)
+.\" Automatically generated by Pod::Man 4.10 (Pod::Simple 3.35)
 .\"
 .\" Standard preamble:
 .\" ========================================================================
@@ -54,16 +54,20 @@
 .\" Avoid warning from groff about undefined register 'F'.
 .de IX
 ..
-.if !\nF .nr F 0
-.if \nF>0 \{\
-.    de IX
-.    tm Index:\\$1\t\\n%\t"\\$2"
+.nr rF 0
+.if \n(.g .if rF .nr rF 1
+.if (\n(rF:(\n(.g==0)) \{\
+.    if \nF \{\
+.        de IX
+.        tm Index:\\$1\t\\n%\t"\\$2"
 ..
-.    if !\nF==2 \{\
-.        nr % 0
-.        nr F 2
+.        if !\nF==2 \{\
+.            nr % 0
+.            nr F 2
+.        \}
 .    \}
 .\}
+.rr rF
 .\"
 .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
 .\" Fear.  Run.  Save yourself.  No user-serviceable parts.
@@ -129,7 +133,7 @@
 .\" ========================================================================
 .\"
 .IX Title "EXT_WBINFO_GROUP_ACL 8"
-.TH EXT_WBINFO_GROUP_ACL 8 "2018-10-27" "perl v5.26.2" "User Contributed Perl Documentation"
+.TH EXT_WBINFO_GROUP_ACL 8 "2019-01-01" "perl v5.28.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-4.4/src/acl/external/wbinfo_group/Makefile.in squid-4.5/src/acl/external/wbinfo_group/Makefile.in
--- squid-4.4/src/acl/external/wbinfo_group/Makefile.in	2018-10-28 09:45:10.000000000 +1300
+++ squid-4.5/src/acl/external/wbinfo_group/Makefile.in	2019-01-01 13:30:44.000000000 +1300
@@ -486,6 +486,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/src/acl/Makefile.in squid-4.5/src/acl/Makefile.in
--- squid-4.4/src/acl/Makefile.in	2018-10-28 09:45:10.000000000 +1300
+++ squid-4.5/src/acl/Makefile.in	2019-01-01 13:30:44.000000000 +1300
@@ -687,6 +687,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/src/adaptation/ecap/Makefile.in squid-4.5/src/adaptation/ecap/Makefile.in
--- squid-4.4/src/adaptation/ecap/Makefile.in	2018-10-28 09:45:10.000000000 +1300
+++ squid-4.5/src/adaptation/ecap/Makefile.in	2019-01-01 13:30:45.000000000 +1300
@@ -559,6 +559,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/src/adaptation/icap/Makefile.in squid-4.5/src/adaptation/icap/Makefile.in
--- squid-4.4/src/adaptation/icap/Makefile.in	2018-10-28 09:45:10.000000000 +1300
+++ squid-4.5/src/adaptation/icap/Makefile.in	2019-01-01 13:30:45.000000000 +1300
@@ -555,6 +555,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/src/adaptation/icap/Xaction.cc squid-4.5/src/adaptation/icap/Xaction.cc
--- squid-4.4/src/adaptation/icap/Xaction.cc	2018-10-28 09:44:55.000000000 +1300
+++ squid-4.5/src/adaptation/icap/Xaction.cc	2019-01-01 13:02:15.000000000 +1300
@@ -744,7 +744,7 @@
     securer = NULL;
 
     if (closer != NULL) {
-        if (answer.conn != NULL)
+        if (Comm::IsConnOpen(answer.conn))
             comm_remove_close_handler(answer.conn->fd, closer);
         else
             closer->cancel("securing completed");
diff -u -r -N squid-4.4/src/adaptation/Makefile.in squid-4.5/src/adaptation/Makefile.in
--- squid-4.4/src/adaptation/Makefile.in	2018-10-28 09:45:10.000000000 +1300
+++ squid-4.5/src/adaptation/Makefile.in	2019-01-01 13:30:44.000000000 +1300
@@ -602,6 +602,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/src/anyp/Makefile.in squid-4.5/src/anyp/Makefile.in
--- squid-4.4/src/anyp/Makefile.in	2018-10-28 09:45:11.000000000 +1300
+++ squid-4.5/src/anyp/Makefile.in	2019-01-01 13:30:45.000000000 +1300
@@ -550,6 +550,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/src/auth/basic/DB/basic_db_auth.8 squid-4.5/src/auth/basic/DB/basic_db_auth.8
--- squid-4.4/src/auth/basic/DB/basic_db_auth.8	2018-10-28 09:56:45.000000000 +1300
+++ squid-4.5/src/auth/basic/DB/basic_db_auth.8	2019-01-01 13:42:05.000000000 +1300
@@ -1,4 +1,4 @@
-.\" Automatically generated by Pod::Man 4.09 (Pod::Simple 3.35)
+.\" Automatically generated by Pod::Man 4.10 (Pod::Simple 3.35)
 .\"
 .\" Standard preamble:
 .\" ========================================================================
@@ -54,16 +54,20 @@
 .\" Avoid warning from groff about undefined register 'F'.
 .de IX
 ..
-.if !\nF .nr F 0
-.if \nF>0 \{\
-.    de IX
-.    tm Index:\\$1\t\\n%\t"\\$2"
+.nr rF 0
+.if \n(.g .if rF .nr rF 1
+.if (\n(rF:(\n(.g==0)) \{\
+.    if \nF \{\
+.        de IX
+.        tm Index:\\$1\t\\n%\t"\\$2"
 ..
-.    if !\nF==2 \{\
-.        nr % 0
-.        nr F 2
+.        if !\nF==2 \{\
+.            nr % 0
+.            nr F 2
+.        \}
 .    \}
 .\}
+.rr rF
 .\"
 .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
 .\" Fear.  Run.  Save yourself.  No user-serviceable parts.
@@ -129,7 +133,7 @@
 .\" ========================================================================
 .\"
 .IX Title "BASIC_DB_AUTH 8"
-.TH BASIC_DB_AUTH 8 "2018-10-27" "perl v5.26.2" "User Contributed Perl Documentation"
+.TH BASIC_DB_AUTH 8 "2019-01-01" "perl v5.28.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-4.4/src/auth/basic/DB/Makefile.in squid-4.5/src/auth/basic/DB/Makefile.in
--- squid-4.4/src/auth/basic/DB/Makefile.in	2018-10-28 09:45:11.000000000 +1300
+++ squid-4.5/src/auth/basic/DB/Makefile.in	2019-01-01 13:30:45.000000000 +1300
@@ -486,6 +486,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/src/auth/basic/fake/Makefile.in squid-4.5/src/auth/basic/fake/Makefile.in
--- squid-4.4/src/auth/basic/fake/Makefile.in	2018-10-28 09:45:11.000000000 +1300
+++ squid-4.5/src/auth/basic/fake/Makefile.in	2019-01-01 13:30:45.000000000 +1300
@@ -533,6 +533,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/src/auth/basic/getpwnam/Makefile.in squid-4.5/src/auth/basic/getpwnam/Makefile.in
--- squid-4.4/src/auth/basic/getpwnam/Makefile.in	2018-10-28 09:45:11.000000000 +1300
+++ squid-4.5/src/auth/basic/getpwnam/Makefile.in	2019-01-01 13:30:46.000000000 +1300
@@ -539,6 +539,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/src/auth/basic/LDAP/Makefile.in squid-4.5/src/auth/basic/LDAP/Makefile.in
--- squid-4.4/src/auth/basic/LDAP/Makefile.in	2018-10-28 09:45:11.000000000 +1300
+++ squid-4.5/src/auth/basic/LDAP/Makefile.in	2019-01-01 13:30:45.000000000 +1300
@@ -539,6 +539,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/src/auth/basic/Makefile.in squid-4.5/src/auth/basic/Makefile.in
--- squid-4.4/src/auth/basic/Makefile.in	2018-10-28 09:45:11.000000000 +1300
+++ squid-4.5/src/auth/basic/Makefile.in	2019-01-01 13:30:45.000000000 +1300
@@ -589,6 +589,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/src/auth/basic/NCSA/Makefile.in squid-4.5/src/auth/basic/NCSA/Makefile.in
--- squid-4.4/src/auth/basic/NCSA/Makefile.in	2018-10-28 09:45:11.000000000 +1300
+++ squid-4.5/src/auth/basic/NCSA/Makefile.in	2019-01-01 13:30:45.000000000 +1300
@@ -561,6 +561,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/src/auth/basic/NIS/Makefile.in squid-4.5/src/auth/basic/NIS/Makefile.in
--- squid-4.4/src/auth/basic/NIS/Makefile.in	2018-10-28 09:45:11.000000000 +1300
+++ squid-4.5/src/auth/basic/NIS/Makefile.in	2019-01-01 13:30:45.000000000 +1300
@@ -556,6 +556,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/src/auth/basic/PAM/Makefile.in squid-4.5/src/auth/basic/PAM/Makefile.in
--- squid-4.4/src/auth/basic/PAM/Makefile.in	2018-10-28 09:45:11.000000000 +1300
+++ squid-4.5/src/auth/basic/PAM/Makefile.in	2019-01-01 13:30:45.000000000 +1300
@@ -538,6 +538,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/src/auth/basic/POP3/basic_pop3_auth.8 squid-4.5/src/auth/basic/POP3/basic_pop3_auth.8
--- squid-4.4/src/auth/basic/POP3/basic_pop3_auth.8	2018-10-28 09:56:45.000000000 +1300
+++ squid-4.5/src/auth/basic/POP3/basic_pop3_auth.8	2019-01-01 13:42:06.000000000 +1300
@@ -1,4 +1,4 @@
-.\" Automatically generated by Pod::Man 4.09 (Pod::Simple 3.35)
+.\" Automatically generated by Pod::Man 4.10 (Pod::Simple 3.35)
 .\"
 .\" Standard preamble:
 .\" ========================================================================
@@ -54,16 +54,20 @@
 .\" Avoid warning from groff about undefined register 'F'.
 .de IX
 ..
-.if !\nF .nr F 0
-.if \nF>0 \{\
-.    de IX
-.    tm Index:\\$1\t\\n%\t"\\$2"
+.nr rF 0
+.if \n(.g .if rF .nr rF 1
+.if (\n(rF:(\n(.g==0)) \{\
+.    if \nF \{\
+.        de IX
+.        tm Index:\\$1\t\\n%\t"\\$2"
 ..
-.    if !\nF==2 \{\
-.        nr % 0
-.        nr F 2
+.        if !\nF==2 \{\
+.            nr % 0
+.            nr F 2
+.        \}
 .    \}
 .\}
+.rr rF
 .\"
 .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
 .\" Fear.  Run.  Save yourself.  No user-serviceable parts.
@@ -129,7 +133,7 @@
 .\" ========================================================================
 .\"
 .IX Title "BASIC_POP3_AUTH 8"
-.TH BASIC_POP3_AUTH 8 "2018-10-27" "perl v5.26.2" "User Contributed Perl Documentation"
+.TH BASIC_POP3_AUTH 8 "2019-01-01" "perl v5.28.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-4.4/src/auth/basic/POP3/Makefile.in squid-4.5/src/auth/basic/POP3/Makefile.in
--- squid-4.4/src/auth/basic/POP3/Makefile.in	2018-10-28 09:45:11.000000000 +1300
+++ squid-4.5/src/auth/basic/POP3/Makefile.in	2019-01-01 13:30:45.000000000 +1300
@@ -486,6 +486,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/src/auth/basic/RADIUS/Makefile.in squid-4.5/src/auth/basic/RADIUS/Makefile.in
--- squid-4.4/src/auth/basic/RADIUS/Makefile.in	2018-10-28 09:45:11.000000000 +1300
+++ squid-4.5/src/auth/basic/RADIUS/Makefile.in	2019-01-01 13:30:45.000000000 +1300
@@ -561,6 +561,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/src/auth/basic/SASL/Makefile.in squid-4.5/src/auth/basic/SASL/Makefile.in
--- squid-4.4/src/auth/basic/SASL/Makefile.in	2018-10-28 09:45:11.000000000 +1300
+++ squid-4.5/src/auth/basic/SASL/Makefile.in	2019-01-01 13:30:45.000000000 +1300
@@ -539,6 +539,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/src/auth/basic/SMB/Makefile.in squid-4.5/src/auth/basic/SMB/Makefile.in
--- squid-4.4/src/auth/basic/SMB/Makefile.in	2018-10-28 09:45:11.000000000 +1300
+++ squid-4.5/src/auth/basic/SMB/Makefile.in	2019-01-01 13:30:45.000000000 +1300
@@ -543,6 +543,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/src/auth/basic/SMB_LM/Makefile.in squid-4.5/src/auth/basic/SMB_LM/Makefile.in
--- squid-4.4/src/auth/basic/SMB_LM/Makefile.in	2018-10-28 09:45:11.000000000 +1300
+++ squid-4.5/src/auth/basic/SMB_LM/Makefile.in	2019-01-01 13:30:45.000000000 +1300
@@ -556,6 +556,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/src/auth/basic/SSPI/Makefile.in squid-4.5/src/auth/basic/SSPI/Makefile.in
--- squid-4.4/src/auth/basic/SSPI/Makefile.in	2018-10-28 09:45:11.000000000 +1300
+++ squid-4.5/src/auth/basic/SSPI/Makefile.in	2019-01-01 13:30:45.000000000 +1300
@@ -565,6 +565,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/src/auth/digest/eDirectory/Makefile.in squid-4.5/src/auth/digest/eDirectory/Makefile.in
--- squid-4.4/src/auth/digest/eDirectory/Makefile.in	2018-10-28 09:45:11.000000000 +1300
+++ squid-4.5/src/auth/digest/eDirectory/Makefile.in	2019-01-01 13:30:46.000000000 +1300
@@ -558,6 +558,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/src/auth/digest/file/Makefile.in squid-4.5/src/auth/digest/file/Makefile.in
--- squid-4.4/src/auth/digest/file/Makefile.in	2018-10-28 09:45:11.000000000 +1300
+++ squid-4.5/src/auth/digest/file/Makefile.in	2019-01-01 13:30:46.000000000 +1300
@@ -561,6 +561,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/src/auth/digest/LDAP/Makefile.in squid-4.5/src/auth/digest/LDAP/Makefile.in
--- squid-4.4/src/auth/digest/LDAP/Makefile.in	2018-10-28 09:45:11.000000000 +1300
+++ squid-4.5/src/auth/digest/LDAP/Makefile.in	2019-01-01 13:30:46.000000000 +1300
@@ -558,6 +558,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/src/auth/digest/Makefile.in squid-4.5/src/auth/digest/Makefile.in
--- squid-4.4/src/auth/digest/Makefile.in	2018-10-28 09:45:11.000000000 +1300
+++ squid-4.5/src/auth/digest/Makefile.in	2019-01-01 13:30:46.000000000 +1300
@@ -589,6 +589,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/src/auth/Makefile.in squid-4.5/src/auth/Makefile.in
--- squid-4.4/src/auth/Makefile.in	2018-10-28 09:45:11.000000000 +1300
+++ squid-4.5/src/auth/Makefile.in	2019-01-01 13:30:45.000000000 +1300
@@ -599,6 +599,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/src/auth/negotiate/kerberos/Makefile.in squid-4.5/src/auth/negotiate/kerberos/Makefile.in
--- squid-4.4/src/auth/negotiate/kerberos/Makefile.in	2018-10-28 09:45:11.000000000 +1300
+++ squid-4.5/src/auth/negotiate/kerberos/Makefile.in	2019-01-01 13:30:46.000000000 +1300
@@ -583,6 +583,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/src/auth/negotiate/Makefile.in squid-4.5/src/auth/negotiate/Makefile.in
--- squid-4.4/src/auth/negotiate/Makefile.in	2018-10-28 09:45:11.000000000 +1300
+++ squid-4.5/src/auth/negotiate/Makefile.in	2019-01-01 13:30:46.000000000 +1300
@@ -590,6 +590,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/src/auth/negotiate/SSPI/Makefile.in squid-4.5/src/auth/negotiate/SSPI/Makefile.in
--- squid-4.4/src/auth/negotiate/SSPI/Makefile.in	2018-10-28 09:45:11.000000000 +1300
+++ squid-4.5/src/auth/negotiate/SSPI/Makefile.in	2019-01-01 13:30:46.000000000 +1300
@@ -539,6 +539,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/src/auth/negotiate/wrapper/Makefile.in squid-4.5/src/auth/negotiate/wrapper/Makefile.in
--- squid-4.4/src/auth/negotiate/wrapper/Makefile.in	2018-10-28 09:45:11.000000000 +1300
+++ squid-4.5/src/auth/negotiate/wrapper/Makefile.in	2019-01-01 13:30:46.000000000 +1300
@@ -536,6 +536,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/src/auth/ntlm/fake/Makefile.in squid-4.5/src/auth/ntlm/fake/Makefile.in
--- squid-4.4/src/auth/ntlm/fake/Makefile.in	2018-10-28 09:45:12.000000000 +1300
+++ squid-4.5/src/auth/ntlm/fake/Makefile.in	2019-01-01 13:30:46.000000000 +1300
@@ -538,6 +538,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/src/auth/ntlm/Makefile.in squid-4.5/src/auth/ntlm/Makefile.in
--- squid-4.4/src/auth/ntlm/Makefile.in	2018-10-28 09:45:12.000000000 +1300
+++ squid-4.5/src/auth/ntlm/Makefile.in	2019-01-01 13:30:46.000000000 +1300
@@ -589,6 +589,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/src/auth/ntlm/SMB_LM/Makefile.in squid-4.5/src/auth/ntlm/SMB_LM/Makefile.in
--- squid-4.4/src/auth/ntlm/SMB_LM/Makefile.in	2018-10-28 09:45:12.000000000 +1300
+++ squid-4.5/src/auth/ntlm/SMB_LM/Makefile.in	2019-01-01 13:30:46.000000000 +1300
@@ -540,6 +540,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/src/auth/ntlm/SSPI/Makefile.in squid-4.5/src/auth/ntlm/SSPI/Makefile.in
--- squid-4.4/src/auth/ntlm/SSPI/Makefile.in	2018-10-28 09:45:12.000000000 +1300
+++ squid-4.5/src/auth/ntlm/SSPI/Makefile.in	2019-01-01 13:30:46.000000000 +1300
@@ -541,6 +541,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/src/base/File.cc squid-4.5/src/base/File.cc
--- squid-4.4/src/base/File.cc	2018-10-28 09:44:55.000000000 +1300
+++ squid-4.5/src/base/File.cc	2019-01-01 13:02:15.000000000 +1300
@@ -373,3 +373,4 @@
 #if _SQUID_WINDOWS_
 const HANDLE File::InvalidHandle = INVALID_HANDLE_VALUE;
 #endif /* _SQUID_WINDOWS_ */
+
diff -u -r -N squid-4.4/src/base/Makefile.in squid-4.5/src/base/Makefile.in
--- squid-4.4/src/base/Makefile.in	2018-10-28 09:45:12.000000000 +1300
+++ squid-4.5/src/base/Makefile.in	2019-01-01 13:30:46.000000000 +1300
@@ -554,6 +554,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/src/cf.data.pre squid-4.5/src/cf.data.pre
--- squid-4.4/src/cf.data.pre	2018-10-28 09:44:55.000000000 +1300
+++ squid-4.5/src/cf.data.pre	2019-01-01 13:02:15.000000000 +1300
@@ -3791,11 +3791,15 @@
 TYPE: int
 LOC: Config.forward_max_tries
 DOC_START
-	Controls how many different forward paths Squid will try
-	before giving up. See also forward_timeout.
+	Limits the number of attempts to forward the request.
+
+	For the purpose of this limit, Squid counts all high-level request
+	forwarding attempts, including any same-destination retries after
+	certain persistent connection failures and any attempts to use a
+	different peer. However, low-level connection reopening attempts
+	(enabled using connect_retries) are not counted.
 	
-	NOTE: connect_retries (default: none) can make each of these
-	possible forwarding paths be tried multiple times.
+	See also: forward_timeout and connect_retries.
 DOC_END
 
 COMMENT_START
@@ -4394,6 +4398,37 @@
 		<qos	Server connection TOS/DSCP value set by Squid
 		<nfmark Server connection netfilter mark set by Squid
 
+		>handshake Raw client handshake
+			Initial client bytes received by Squid on a newly
+			accepted TCP connection or inside a just established
+			CONNECT tunnel. Squid stops accumulating handshake
+			bytes as soon as the handshake parser succeeds or
+			fails (determining whether the client is using the
+			expected protocol).
+
+			For HTTP clients, the handshake is the request line.
+			For TLS clients, the handshake consists of all TLS
+			records up to and including the TLS record that
+			contains the last byte of the first ClientHello
+			message. For clients using an unsupported protocol,
+			this field contains the bytes received by Squid at the
+			time of the handshake parsing failure.
+
+			See the on_unsupported_protocol directive for more
+			information on Squid handshake traffic expectations.
+
+			Current support is limited to these contexts:
+			- http_port connections, but only when the
+			  on_unsupported_protocol directive is in use.
+			- https_port connections (and CONNECT tunnels) that
+			  are subject to the ssl_bump peek or stare action.
+
+			To protect binary handshake data, this field is always
+			base64-encoded (RFC 4648 Section 4). If logformat
+			field encoding is configured, that encoding is applied
+			on top of base64. Otherwise, the computed base64 value
+			is recorded as is.
+
 	Time related format codes:
 
 		ts	Seconds since epoch
@@ -9823,19 +9858,23 @@
 DEFAULT: 0
 DEFAULT_DOC: Do not retry failed connections.
 DOC_START
-	This sets the maximum number of connection attempts made for each
-	TCP connection. The connect_retries attempts must all still
-	complete within the connection timeout period.
-
-	The default is not to re-try if the first connection attempt fails.
-	The (not recommended) maximum is 10 tries.
-
-	A warning message will be generated if it is set to a too-high
-	value and the configured value will be over-ridden.
-
-	Note: These re-tries are in addition to forward_max_tries
-	which limit how many different addresses may be tried to find
-	a useful server.
+	Limits the number of reopening attempts when establishing a single
+	TCP connection. All these attempts must still complete before the
+	applicable connection opening timeout expires.
+
+	By default and when connect_retries is set to zero, Squid does not
+	retry failed connection opening attempts.
+
+	The (not recommended) maximum is 10 tries. An attempt to configure a
+	higher value results in the value of 10 being used (with a warning).
+
+	Squid may open connections to retry various high-level forwarding
+	failures. For an outside observer, that activity may look like a
+	low-level connection reopening attempt, but those high-level retries
+	are governed by forward_max_tries instead.
+
+	See also: connect_timeout, forward_timeout, icap_connect_timeout,
+	ident_timeout, and forward_max_tries.
 DOC_END
 
 NAME: retry_on_error
diff -u -r -N squid-4.4/src/clients/Makefile.in squid-4.5/src/clients/Makefile.in
--- squid-4.4/src/clients/Makefile.in	2018-10-28 09:45:12.000000000 +1300
+++ squid-4.5/src/clients/Makefile.in	2019-01-01 13:30:46.000000000 +1300
@@ -550,6 +550,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/src/client_side.cc squid-4.5/src/client_side.cc
--- squid-4.4/src/client_side.cc	2018-10-28 09:44:55.000000000 +1300
+++ squid-4.5/src/client_side.cc	2019-01-01 13:02:15.000000000 +1300
@@ -1081,20 +1081,18 @@
     return NULL;
 }
 
-static void
-prepareAcceleratedURL(ConnStateData * conn, ClientHttpRequest *http, const Http1::RequestParserPointer &hp)
+static char *
+prepareAcceleratedURL(ConnStateData * conn, const Http1::RequestParserPointer &hp)
 {
     int vhost = conn->port->vhost;
     int vport = conn->port->vport;
     static char ipbuf[MAX_IPSTRLEN];
 
-    http->flags.accel = true;
-
     /* BUG: Squid cannot deal with '*' URLs (RFC2616 5.1.2) */
 
     static const SBuf cache_object("cache_object://");
     if (hp->requestUri().startsWith(cache_object))
-        return; /* already in good shape */
+        return nullptr; /* already in good shape */
 
     // XXX: re-use proper URL parser for this
     SBuf url = hp->requestUri(); // use full provided URI if we abort
@@ -1104,7 +1102,7 @@
             break;
 
         if (conn->port->vhost)
-            return; /* already in good shape */
+            return nullptr; /* already in good shape */
 
         // skip the URI scheme
         static const CharacterSet uriScheme = CharacterSet("URI-scheme","+-.") + CharacterSet::ALPHA + CharacterSet::DIGIT;
@@ -1141,18 +1139,16 @@
 #endif
 
     if (vport < 0)
-        vport = http->getConn()->clientConnection->local.port();
+        vport = conn->clientConnection->local.port();
 
-    const bool switchedToHttps = conn->switchedToHttps();
-    const bool tryHostHeader = vhost || switchedToHttps;
     char *host = NULL;
-    if (tryHostHeader && (host = hp->getHeaderField("Host"))) {
+    if (vhost && (host = hp->getHeaderField("Host"))) {
         debugs(33, 5, "ACCEL VHOST REWRITE: vhost=" << host << " + vport=" << vport);
         char thost[256];
         if (vport > 0) {
             thost[0] = '\0';
             char *t = NULL;
-            if (host[strlen(host)] != ']' && (t = strrchr(host,':')) != NULL) {
+            if (host[strlen(host) - 1] != ']' && (t = strrchr(host,':')) != nullptr) {
                 strncpy(thost, host, (t-host));
                 snprintf(thost+(t-host), sizeof(thost)-(t-host), ":%d", vport);
                 host = thost;
@@ -1161,67 +1157,116 @@
                 host = thost;
             }
         } // else nothing to alter port-wise.
-        const int url_sz = hp->requestUri().length() + 32 + Config.appendDomainLen + strlen(host);
-        http->uri = (char *)xcalloc(url_sz, 1);
         const SBuf &scheme = AnyP::UriScheme(conn->transferProtocol.protocol).image();
-        snprintf(http->uri, url_sz, SQUIDSBUFPH "://%s" SQUIDSBUFPH, SQUIDSBUFPRINT(scheme), host, SQUIDSBUFPRINT(url));
-        debugs(33, 5, "ACCEL VHOST REWRITE: " << http->uri);
+        const int url_sz = scheme.length() + strlen(host) + url.length() + 32;
+        char *uri = static_cast<char *>(xcalloc(url_sz, 1));
+        snprintf(uri, url_sz, SQUIDSBUFPH "://%s" SQUIDSBUFPH, SQUIDSBUFPRINT(scheme), host, SQUIDSBUFPRINT(url));
+        debugs(33, 5, "ACCEL VHOST REWRITE: " << uri);
+        return uri;
     } else if (conn->port->defaultsite /* && !vhost */) {
         debugs(33, 5, "ACCEL DEFAULTSITE REWRITE: defaultsite=" << conn->port->defaultsite << " + vport=" << vport);
-        const int url_sz = hp->requestUri().length() + 32 + Config.appendDomainLen +
-                           strlen(conn->port->defaultsite);
-        http->uri = (char *)xcalloc(url_sz, 1);
         char vportStr[32];
         vportStr[0] = '\0';
         if (vport > 0) {
             snprintf(vportStr, sizeof(vportStr),":%d",vport);
         }
         const SBuf &scheme = AnyP::UriScheme(conn->transferProtocol.protocol).image();
-        snprintf(http->uri, url_sz, SQUIDSBUFPH "://%s%s" SQUIDSBUFPH,
+        const int url_sz = scheme.length() + strlen(conn->port->defaultsite) + sizeof(vportStr) + url.length() + 32;
+        char *uri = static_cast<char *>(xcalloc(url_sz, 1));
+        snprintf(uri, url_sz, SQUIDSBUFPH "://%s%s" SQUIDSBUFPH,
                  SQUIDSBUFPRINT(scheme), conn->port->defaultsite, vportStr, SQUIDSBUFPRINT(url));
-        debugs(33, 5, "ACCEL DEFAULTSITE REWRITE: " << http->uri);
+        debugs(33, 5, "ACCEL DEFAULTSITE REWRITE: " << uri);
+        return uri;
     } else if (vport > 0 /* && (!vhost || no Host:) */) {
         debugs(33, 5, "ACCEL VPORT REWRITE: *_port IP + vport=" << vport);
         /* Put the local socket IP address as the hostname, with whatever vport we found  */
-        const int url_sz = hp->requestUri().length() + 32 + Config.appendDomainLen;
-        http->uri = (char *)xcalloc(url_sz, 1);
-        http->getConn()->clientConnection->local.toHostStr(ipbuf,MAX_IPSTRLEN);
+        conn->clientConnection->local.toHostStr(ipbuf,MAX_IPSTRLEN);
         const SBuf &scheme = AnyP::UriScheme(conn->transferProtocol.protocol).image();
-        snprintf(http->uri, url_sz, SQUIDSBUFPH "://%s:%d" SQUIDSBUFPH,
+        const int url_sz = scheme.length() + sizeof(ipbuf) + url.length() + 32;
+        char *uri = static_cast<char *>(xcalloc(url_sz, 1));
+        snprintf(uri, url_sz, SQUIDSBUFPH "://%s:%d" SQUIDSBUFPH,
                  SQUIDSBUFPRINT(scheme), ipbuf, vport, SQUIDSBUFPRINT(url));
-        debugs(33, 5, "ACCEL VPORT REWRITE: " << http->uri);
+        debugs(33, 5, "ACCEL VPORT REWRITE: " << uri);
+        return uri;
     }
+
+    return nullptr;
 }
 
-static void
-prepareTransparentURL(ConnStateData * conn, ClientHttpRequest *http, const Http1::RequestParserPointer &hp)
+static char *
+buildUrlFromHost(ConnStateData * conn, const Http1::RequestParserPointer &hp)
 {
-    // TODO Must() on URI !empty when the parser supports throw. For now avoid assert().
-    if (!hp->requestUri().isEmpty() && hp->requestUri()[0] != '/')
-        return; /* already in good shape */
-
+    char *uri = nullptr;
     /* BUG: Squid cannot deal with '*' URLs (RFC2616 5.1.2) */
-
     if (const char *host = hp->getHeaderField("Host")) {
-        const int url_sz = hp->requestUri().length() + 32 + Config.appendDomainLen +
-                           strlen(host);
-        http->uri = (char *)xcalloc(url_sz, 1);
         const SBuf &scheme = AnyP::UriScheme(conn->transferProtocol.protocol).image();
-        snprintf(http->uri, url_sz, SQUIDSBUFPH "://%s" SQUIDSBUFPH,
-                 SQUIDSBUFPRINT(scheme), host, SQUIDSBUFPRINT(hp->requestUri()));
-        debugs(33, 5, "TRANSPARENT HOST REWRITE: " << http->uri);
-    } else {
+        const int url_sz = scheme.length() + strlen(host) + hp->requestUri().length() + 32;
+        uri = static_cast<char *>(xcalloc(url_sz, 1));
+        snprintf(uri, url_sz, SQUIDSBUFPH "://%s" SQUIDSBUFPH,
+                 SQUIDSBUFPRINT(scheme),
+                 host,
+                 SQUIDSBUFPRINT(hp->requestUri()));
+    }
+    return uri;
+}
+
+char *
+ConnStateData::prepareTlsSwitchingURL(const Http1::RequestParserPointer &hp)
+{
+    Must(switchedToHttps());
+
+    if (!hp->requestUri().isEmpty() && hp->requestUri()[0] != '/')
+        return nullptr; /* already in good shape */
+
+    char *uri = buildUrlFromHost(this, hp);
+#if USE_OPENSSL
+    if (!uri) {
+        Must(tlsConnectPort);
+        Must(sslConnectHostOrIp.size());
+        SBuf useHost;
+        if (!tlsClientSni().isEmpty())
+            useHost = tlsClientSni();
+        else
+            useHost.assign(sslConnectHostOrIp.rawBuf(), sslConnectHostOrIp.size());
+
+        const SBuf &scheme = AnyP::UriScheme(transferProtocol.protocol).image();
+        const int url_sz = scheme.length() + useHost.length() + hp->requestUri().length() + 32;
+        uri = static_cast<char *>(xcalloc(url_sz, 1));
+        snprintf(uri, url_sz, SQUIDSBUFPH "://" SQUIDSBUFPH ":%d" SQUIDSBUFPH,
+                 SQUIDSBUFPRINT(scheme),
+                 SQUIDSBUFPRINT(useHost),
+                 tlsConnectPort,
+                 SQUIDSBUFPRINT(hp->requestUri()));
+    }
+#endif
+    if (uri)
+        debugs(33, 5, "TLS switching host rewrite: " << uri);
+    return uri;
+}
+
+static char *
+prepareTransparentURL(ConnStateData * conn, const Http1::RequestParserPointer &hp)
+{
+    // TODO Must() on URI !empty when the parser supports throw. For now avoid assert().
+    if (!hp->requestUri().isEmpty() && hp->requestUri()[0] != '/')
+        return nullptr; /* already in good shape */
+
+    char *uri = buildUrlFromHost(conn, hp);
+    if (!uri) {
         /* Put the local socket IP address as the hostname.  */
-        const int url_sz = hp->requestUri().length() + 32 + Config.appendDomainLen;
-        http->uri = (char *)xcalloc(url_sz, 1);
         static char ipbuf[MAX_IPSTRLEN];
-        http->getConn()->clientConnection->local.toHostStr(ipbuf,MAX_IPSTRLEN);
-        const SBuf &scheme = AnyP::UriScheme(http->getConn()->transferProtocol.protocol).image();
-        snprintf(http->uri, url_sz, SQUIDSBUFPH "://%s:%d" SQUIDSBUFPH,
+        conn->clientConnection->local.toHostStr(ipbuf,MAX_IPSTRLEN);
+        const SBuf &scheme = AnyP::UriScheme(conn->transferProtocol.protocol).image();
+        const int url_sz = sizeof(ipbuf) + hp->requestUri().length() + 32;
+        uri = static_cast<char *>(xcalloc(url_sz, 1));
+        snprintf(uri, url_sz, SQUIDSBUFPH "://%s:%d" SQUIDSBUFPH,
                  SQUIDSBUFPRINT(scheme),
-                 ipbuf, http->getConn()->clientConnection->local.port(), SQUIDSBUFPRINT(hp->requestUri()));
-        debugs(33, 5, "TRANSPARENT REWRITE: " << http->uri);
+                 ipbuf, conn->clientConnection->local.port(), SQUIDSBUFPRINT(hp->requestUri()));
     }
+
+    if (uri)
+        debugs(33, 5, "TRANSPARENT REWRITE: " << uri);
+    return uri;
 }
 
 /** Parse an HTTP request
@@ -1341,9 +1386,11 @@
      *  - remote interception with PROXY protocol
      *  - remote reverse-proxy with PROXY protocol
      */
-    if (csd->transparent()) {
+    if (csd->switchedToHttps()) {
+        http->uri = csd->prepareTlsSwitchingURL(hp);
+    } else if (csd->transparent()) {
         /* intercept or transparent mode, properly working with no failures */
-        prepareTransparentURL(csd, http, hp);
+        http->uri = prepareTransparentURL(csd, hp);
 
     } else if (internalCheck(hp->requestUri())) { // NP: only matches relative-URI
         /* internal URL mode */
@@ -1353,9 +1400,10 @@
         //  But have not parsed there yet!! flag for local-only handling.
         http->flags.internal = true;
 
-    } else if (csd->port->flags.accelSurrogate || csd->switchedToHttps()) {
+    } else if (csd->port->flags.accelSurrogate) {
         /* accelerator mode */
-        prepareAcceleratedURL(csd, http, hp);
+        http->uri = prepareAcceleratedURL(csd, hp);
+        http->flags.accel = true;
     }
 
     if (!http->uri) {
@@ -2315,6 +2363,7 @@
 #if USE_OPENSSL
     switchedToHttps_(false),
     parsingTlsHandshake(false),
+    tlsConnectPort(0),
     sslServerBump(NULL),
     signAlgorithm(Ssl::algSignTrusted),
 #endif
@@ -3050,6 +3099,7 @@
     assert(!switchedToHttps_);
 
     sslConnectHostOrIp = request->url.host();
+    tlsConnectPort = request->url.port();
     resetSslCommonName(request->url.host());
 
     // We are going to read new request
diff -u -r -N squid-4.4/src/client_side.h squid-4.5/src/client_side.h
--- squid-4.4/src/client_side.h	2018-10-28 09:44:55.000000000 +1300
+++ squid-4.5/src/client_side.h	2019-01-01 13:02:15.000000000 +1300
@@ -274,6 +274,7 @@
 #else
     bool switchedToHttps() const { return false; }
 #endif
+    char *prepareTlsSwitchingURL(const Http1::RequestParserPointer &hp);
 
     /* clt_conn_tag=tag annotation access */
     const SBuf &connectionTag() const { return connectionTag_; }
@@ -393,6 +394,7 @@
 
     /// The SSL server host name appears in CONNECT request or the server ip address for the intercepted requests
     String sslConnectHostOrIp; ///< The SSL server host name as passed in the CONNECT request
+    unsigned short tlsConnectPort; ///< The TLS server port number as passed in the CONNECT request
     SBuf sslCommonName_; ///< CN name for SSL certificate generation
 
     /// TLS client delivered SNI value. Empty string if none has been received.
diff -u -r -N squid-4.4/src/comm/Makefile.in squid-4.5/src/comm/Makefile.in
--- squid-4.4/src/comm/Makefile.in	2018-10-28 09:45:12.000000000 +1300
+++ squid-4.5/src/comm/Makefile.in	2019-01-01 13:30:47.000000000 +1300
@@ -557,6 +557,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/src/DiskIO/AIO/Makefile.in squid-4.5/src/DiskIO/AIO/Makefile.in
--- squid-4.4/src/DiskIO/AIO/Makefile.in	2018-10-28 09:45:09.000000000 +1300
+++ squid-4.5/src/DiskIO/AIO/Makefile.in	2019-01-01 13:30:43.000000000 +1300
@@ -559,6 +559,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/src/DiskIO/Blocking/Makefile.in squid-4.5/src/DiskIO/Blocking/Makefile.in
--- squid-4.4/src/DiskIO/Blocking/Makefile.in	2018-10-28 09:45:09.000000000 +1300
+++ squid-4.5/src/DiskIO/Blocking/Makefile.in	2019-01-01 13:30:43.000000000 +1300
@@ -551,6 +551,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/src/DiskIO/DiskDaemon/Makefile.in squid-4.5/src/DiskIO/DiskDaemon/Makefile.in
--- squid-4.4/src/DiskIO/DiskDaemon/Makefile.in	2018-10-28 09:45:09.000000000 +1300
+++ squid-4.5/src/DiskIO/DiskDaemon/Makefile.in	2019-01-01 13:30:43.000000000 +1300
@@ -568,6 +568,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/src/DiskIO/DiskThreads/Makefile.in squid-4.5/src/DiskIO/DiskThreads/Makefile.in
--- squid-4.4/src/DiskIO/DiskThreads/Makefile.in	2018-10-28 09:45:09.000000000 +1300
+++ squid-4.5/src/DiskIO/DiskThreads/Makefile.in	2019-01-01 13:30:43.000000000 +1300
@@ -563,6 +563,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/src/DiskIO/IpcIo/Makefile.in squid-4.5/src/DiskIO/IpcIo/Makefile.in
--- squid-4.4/src/DiskIO/IpcIo/Makefile.in	2018-10-28 09:45:09.000000000 +1300
+++ squid-4.5/src/DiskIO/IpcIo/Makefile.in	2019-01-01 13:30:43.000000000 +1300
@@ -550,6 +550,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/src/DiskIO/Makefile.in squid-4.5/src/DiskIO/Makefile.in
--- squid-4.4/src/DiskIO/Makefile.in	2018-10-28 09:45:09.000000000 +1300
+++ squid-4.5/src/DiskIO/Makefile.in	2019-01-01 13:30:43.000000000 +1300
@@ -612,6 +612,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/src/DiskIO/Mmapped/Makefile.in squid-4.5/src/DiskIO/Mmapped/Makefile.in
--- squid-4.4/src/DiskIO/Mmapped/Makefile.in	2018-10-28 09:45:10.000000000 +1300
+++ squid-4.5/src/DiskIO/Mmapped/Makefile.in	2019-01-01 13:30:43.000000000 +1300
@@ -550,6 +550,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/src/dns/Makefile.in squid-4.5/src/dns/Makefile.in
--- squid-4.4/src/dns/Makefile.in	2018-10-28 09:45:12.000000000 +1300
+++ squid-4.5/src/dns/Makefile.in	2019-01-01 13:30:47.000000000 +1300
@@ -551,6 +551,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/src/esi/Makefile.in squid-4.5/src/esi/Makefile.in
--- squid-4.4/src/esi/Makefile.in	2018-10-28 09:45:12.000000000 +1300
+++ squid-4.5/src/esi/Makefile.in	2019-01-01 13:30:47.000000000 +1300
@@ -572,6 +572,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/src/eui/Makefile.in squid-4.5/src/eui/Makefile.in
--- squid-4.4/src/eui/Makefile.in	2018-10-28 09:45:12.000000000 +1300
+++ squid-4.5/src/eui/Makefile.in	2019-01-01 13:30:47.000000000 +1300
@@ -550,6 +550,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/src/format/ByteCode.h squid-4.5/src/format/ByteCode.h
--- squid-4.4/src/format/ByteCode.h	2018-10-28 09:44:55.000000000 +1300
+++ squid-4.5/src/format/ByteCode.h	2019-01-01 13:02:15.000000000 +1300
@@ -46,6 +46,8 @@
     LFT_CLIENT_LOCAL_TOS,
     LFT_CLIENT_LOCAL_NFMARK,
 
+    LFT_CLIENT_HANDSHAKE,
+
     /* client connection local squid.conf details */
     LFT_LOCAL_LISTENING_IP,
     LFT_LOCAL_LISTENING_PORT,
diff -u -r -N squid-4.4/src/format/Format.cc squid-4.5/src/format/Format.cc
--- squid-4.4/src/format/Format.cc	2018-10-28 09:44:55.000000000 +1300
+++ squid-4.5/src/format/Format.cc	2019-01-01 13:02:15.000000000 +1300
@@ -8,6 +8,7 @@
 
 #include "squid.h"
 #include "AccessLogEntry.h"
+#include "base64.h"
 #include "client_side.h"
 #include "comm/Connection.h"
 #include "err_detail_type.h"
@@ -547,6 +548,24 @@
             }
             break;
 
+        case LFT_CLIENT_HANDSHAKE:
+            if (al->request && al->request->clientConnectionManager.valid()) {
+                const auto &handshake = al->request->clientConnectionManager->preservedClientData;
+                if (const auto rawLength = handshake.length()) {
+                    // add 1 byte to optimize the c_str() conversion below
+                    char *buf = sb.rawAppendStart(base64_encode_len(rawLength) + 1);
+
+                    struct base64_encode_ctx ctx;
+                    base64_encode_init(&ctx);
+                    auto encLength = base64_encode_update(&ctx, buf, rawLength, reinterpret_cast<const uint8_t*>(handshake.rawContent()));
+                    encLength += base64_encode_final(&ctx, buf + encLength);
+
+                    sb.rawAppendFinish(buf, encLength);
+                    out = sb.c_str();
+                }
+            }
+            break;
+
         case LFT_TIME_SECONDS_SINCE_EPOCH:
             // some platforms store time in 32-bit, some 64-bit...
             outoff = static_cast<int64_t>(current_time.tv_sec);
diff -u -r -N squid-4.4/src/format/Makefile.in squid-4.5/src/format/Makefile.in
--- squid-4.4/src/format/Makefile.in	2018-10-28 09:45:12.000000000 +1300
+++ squid-4.5/src/format/Makefile.in	2019-01-01 13:30:47.000000000 +1300
@@ -549,6 +549,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/src/format/Token.cc squid-4.5/src/format/Token.cc
--- squid-4.4/src/format/Token.cc	2018-10-28 09:44:55.000000000 +1300
+++ squid-4.5/src/format/Token.cc	2019-01-01 13:02:15.000000000 +1300
@@ -141,6 +141,7 @@
     TokenTableEntry("<qos", LFT_SERVER_LOCAL_TOS),
     TokenTableEntry(">nfmark", LFT_CLIENT_LOCAL_NFMARK),
     TokenTableEntry("<nfmark", LFT_SERVER_LOCAL_NFMARK),
+    TokenTableEntry(">handshake", LFT_CLIENT_HANDSHAKE),
     TokenTableEntry("err_code", LFT_SQUID_ERROR ),
     TokenTableEntry("err_detail", LFT_SQUID_ERROR_DETAIL ),
     TokenTableEntry("note", LFT_NOTE ),
diff -u -r -N squid-4.4/src/fs/Makefile.in squid-4.5/src/fs/Makefile.in
--- squid-4.4/src/fs/Makefile.in	2018-10-28 09:45:12.000000000 +1300
+++ squid-4.5/src/fs/Makefile.in	2019-01-01 13:30:47.000000000 +1300
@@ -577,6 +577,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/src/ftp/Makefile.in squid-4.5/src/ftp/Makefile.in
--- squid-4.4/src/ftp/Makefile.in	2018-10-28 09:45:12.000000000 +1300
+++ squid-4.5/src/ftp/Makefile.in	2019-01-01 13:30:47.000000000 +1300
@@ -548,6 +548,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/src/FwdState.cc squid-4.5/src/FwdState.cc
--- squid-4.4/src/FwdState.cc	2018-10-28 09:44:55.000000000 +1300
+++ squid-4.5/src/FwdState.cc	2019-01-01 13:02:15.000000000 +1300
@@ -587,7 +587,7 @@
     if (!entry->isEmpty())
         return false;
 
-    if (n_tries > Config.forward_max_tries)
+    if (exhaustedTries())
         return false;
 
     if (!EnoughTimeToReForward(start_t))
@@ -921,6 +921,7 @@
     Comm::ConnOpener *cs = new Comm::ConnOpener(serverDestinations[0], calls.connector, connTimeout);
     if (host)
         cs->setHost(host);
+    ++n_tries;
     AsyncJob::Start(cs);
 }
 
@@ -1072,7 +1073,7 @@
         return 0;
     }
 
-    if (n_tries > Config.forward_max_tries)
+    if (exhaustedTries())
         return 0;
 
     if (request->bodyNibbled())
@@ -1222,6 +1223,12 @@
     ++ FwdReplyCodes[tries][status];
 }
 
+bool
+FwdState::exhaustedTries() const
+{
+    return n_tries >= Config.forward_max_tries;
+}
+
 /**** PRIVATE NON-MEMBER FUNCTIONS ********************************************/
 
 /*
diff -u -r -N squid-4.4/src/FwdState.h squid-4.5/src/FwdState.h
--- squid-4.4/src/FwdState.h	2018-10-28 09:44:55.000000000 +1300
+++ squid-4.5/src/FwdState.h	2019-01-01 13:02:15.000000000 +1300
@@ -127,6 +127,9 @@
     void syncWithServerConn(const char *host);
     void syncHierNote(const Comm::ConnectionPointer &server, const char *host);
 
+    /// whether we have used up all permitted forwarding attempts
+    bool exhaustedTries() const;
+
 public:
     StoreEntry *entry;
     HttpRequest *request;
@@ -139,7 +142,7 @@
     ErrorState *err;
     Comm::ConnectionPointer clientConn;        ///< a possibly open connection to the client.
     time_t start_t;
-    int n_tries;
+    int n_tries; ///< the number of forwarding attempts so far
 
     // AsyncCalls which we set and may need cancelling.
     struct {
diff -u -r -N squid-4.4/src/helper/Makefile.in squid-4.5/src/helper/Makefile.in
--- squid-4.4/src/helper/Makefile.in	2018-10-28 09:45:12.000000000 +1300
+++ squid-4.5/src/helper/Makefile.in	2019-01-01 13:30:47.000000000 +1300
@@ -549,6 +549,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/src/http/Makefile.in squid-4.5/src/http/Makefile.in
--- squid-4.4/src/http/Makefile.in	2018-10-28 09:45:12.000000000 +1300
+++ squid-4.5/src/http/Makefile.in	2019-01-01 13:30:47.000000000 +1300
@@ -593,6 +593,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/src/http/one/Makefile.in squid-4.5/src/http/one/Makefile.in
--- squid-4.4/src/http/one/Makefile.in	2018-10-28 09:45:12.000000000 +1300
+++ squid-4.5/src/http/one/Makefile.in	2019-01-01 13:30:47.000000000 +1300
@@ -551,6 +551,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/src/http/url_rewriters/fake/Makefile.in squid-4.5/src/http/url_rewriters/fake/Makefile.in
--- squid-4.4/src/http/url_rewriters/fake/Makefile.in	2018-10-28 09:45:12.000000000 +1300
+++ squid-4.5/src/http/url_rewriters/fake/Makefile.in	2019-01-01 13:30:47.000000000 +1300
@@ -535,6 +535,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/src/http/url_rewriters/LFS/Makefile.in squid-4.5/src/http/url_rewriters/LFS/Makefile.in
--- squid-4.4/src/http/url_rewriters/LFS/Makefile.in	2018-10-28 09:45:12.000000000 +1300
+++ squid-4.5/src/http/url_rewriters/LFS/Makefile.in	2019-01-01 13:30:47.000000000 +1300
@@ -486,6 +486,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/src/http/url_rewriters/LFS/url_lfs_rewrite.8 squid-4.5/src/http/url_rewriters/LFS/url_lfs_rewrite.8
--- squid-4.4/src/http/url_rewriters/LFS/url_lfs_rewrite.8	2018-10-28 09:56:46.000000000 +1300
+++ squid-4.5/src/http/url_rewriters/LFS/url_lfs_rewrite.8	2019-01-01 13:42:07.000000000 +1300
@@ -1,4 +1,4 @@
-.\" Automatically generated by Pod::Man 4.09 (Pod::Simple 3.35)
+.\" Automatically generated by Pod::Man 4.10 (Pod::Simple 3.35)
 .\"
 .\" Standard preamble:
 .\" ========================================================================
@@ -54,16 +54,20 @@
 .\" Avoid warning from groff about undefined register 'F'.
 .de IX
 ..
-.if !\nF .nr F 0
-.if \nF>0 \{\
-.    de IX
-.    tm Index:\\$1\t\\n%\t"\\$2"
+.nr rF 0
+.if \n(.g .if rF .nr rF 1
+.if (\n(rF:(\n(.g==0)) \{\
+.    if \nF \{\
+.        de IX
+.        tm Index:\\$1\t\\n%\t"\\$2"
 ..
-.    if !\nF==2 \{\
-.        nr % 0
-.        nr F 2
+.        if !\nF==2 \{\
+.            nr % 0
+.            nr F 2
+.        \}
 .    \}
 .\}
+.rr rF
 .\"
 .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
 .\" Fear.  Run.  Save yourself.  No user-serviceable parts.
@@ -129,13 +133,15 @@
 .\" ========================================================================
 .\"
 .IX Title "URL_LFS_REWRITE 8"
-.TH URL_LFS_REWRITE 8 "2018-10-27" "perl v5.26.2" "User Contributed Perl Documentation"
+.TH URL_LFS_REWRITE 8 "2019-01-01" "perl v5.28.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
 .nh
 .SH "NAME"
-url_lfs_rewrite
+.Vb 1
+\& url_lfs_rewrite \- a URL\-rewriter based on local file existence
+.Ve
 .SH "SYNOPSIS"
 .IX Header "SYNOPSIS"
 .Vb 1
diff -u -r -N squid-4.4/src/http/url_rewriters/LFS/url_lfs_rewrite.pl.in squid-4.5/src/http/url_rewriters/LFS/url_lfs_rewrite.pl.in
--- squid-4.4/src/http/url_rewriters/LFS/url_lfs_rewrite.pl.in	2018-10-28 09:44:55.000000000 +1300
+++ squid-4.5/src/http/url_rewriters/LFS/url_lfs_rewrite.pl.in	2019-01-01 13:02:15.000000000 +1300
@@ -8,7 +8,7 @@
 
 =head1 NAME
 
-B<url_lfs_rewrite>
+ url_lfs_rewrite - a URL-rewriter based on local file existence
 
 =head1 SYNOPSIS
 
diff -u -r -N squid-4.4/src/http/url_rewriters/Makefile.in squid-4.5/src/http/url_rewriters/Makefile.in
--- squid-4.4/src/http/url_rewriters/Makefile.in	2018-10-28 09:45:12.000000000 +1300
+++ squid-4.5/src/http/url_rewriters/Makefile.in	2019-01-01 13:30:47.000000000 +1300
@@ -327,6 +327,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/src/icmp/Makefile.in squid-4.5/src/icmp/Makefile.in
--- squid-4.4/src/icmp/Makefile.in	2018-10-28 09:45:12.000000000 +1300
+++ squid-4.5/src/icmp/Makefile.in	2019-01-01 13:30:47.000000000 +1300
@@ -583,6 +583,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/src/icmp/net_db.cc squid-4.5/src/icmp/net_db.cc
--- squid-4.4/src/icmp/net_db.cc	2018-10-28 09:44:55.000000000 +1300
+++ squid-4.5/src/icmp/net_db.cc	2019-01-01 13:02:15.000000000 +1300
@@ -1282,7 +1282,7 @@
 #if USE_ICMP
     CachePeer *p = (CachePeer *)data;
     static const SBuf netDB("netdb");
-    char *uri = internalRemoteUri(p->host, p->http_port, "/squid-internal-dynamic/", netDB);
+    char *uri = internalRemoteUri(p->secure.encryptTransport, p->host, p->http_port, "/squid-internal-dynamic/", netDB);
     debugs(38, 3, "Requesting '" << uri << "'");
     const MasterXaction::Pointer mx = new MasterXaction(XactionInitiator::initIcmp);
     HttpRequest *req = HttpRequest::FromUrl(uri, mx);
diff -u -r -N squid-4.4/src/ident/Makefile.in squid-4.5/src/ident/Makefile.in
--- squid-4.4/src/ident/Makefile.in	2018-10-28 09:45:12.000000000 +1300
+++ squid-4.5/src/ident/Makefile.in	2019-01-01 13:30:47.000000000 +1300
@@ -548,6 +548,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/src/internal.cc squid-4.5/src/internal.cc
--- squid-4.4/src/internal.cc	2018-10-28 09:44:55.000000000 +1300
+++ squid-4.5/src/internal.cc	2019-01-01 13:02:15.000000000 +1300
@@ -82,7 +82,7 @@
  * makes internal url with a given host and port (remote internal url)
  */
 char *
-internalRemoteUri(const char *host, unsigned short port, const char *dir, const SBuf &name)
+internalRemoteUri(bool encrypt, const char *host, unsigned short port, const char *dir, const SBuf &name)
 {
     static char lc_host[SQUIDHOSTNAMELEN];
     assert(host && !name.isEmpty());
@@ -115,7 +115,7 @@
     static MemBuf mb;
 
     mb.reset();
-    mb.appendf("http://" SQUIDSBUFPH, SQUIDSBUFPRINT(tmp.authority()));
+    mb.appendf("%s://" SQUIDSBUFPH, encrypt ? "https" : "http", SQUIDSBUFPRINT(tmp.authority()));
 
     if (dir)
         mb.append(dir, strlen(dir));
@@ -132,7 +132,10 @@
 char *
 internalLocalUri(const char *dir, const SBuf &name)
 {
-    return internalRemoteUri(getMyHostname(),
+    // XXX: getMy*() may return https_port info, but we force http URIs
+    // because we have not checked whether the callers can handle https.
+    const bool secure = false;
+    return internalRemoteUri(secure, getMyHostname(),
                              getMyPort(), dir, name);
 }
 
diff -u -r -N squid-4.4/src/internal.h squid-4.5/src/internal.h
--- squid-4.4/src/internal.h	2018-10-28 09:44:55.000000000 +1300
+++ squid-4.5/src/internal.h	2019-01-01 13:02:15.000000000 +1300
@@ -24,7 +24,7 @@
 bool internalCheck(const SBuf &urlPath);
 bool internalStaticCheck(const SBuf &urlPath);
 char *internalLocalUri(const char *dir, const SBuf &name);
-char *internalRemoteUri(const char *, unsigned short, const char *, const SBuf &);
+char *internalRemoteUri(bool, const char *, unsigned short, const char *, const SBuf &);
 const char *internalHostname(void);
 int internalHostnameIs(const char *);
 
diff -u -r -N squid-4.4/src/ip/Makefile.in squid-4.5/src/ip/Makefile.in
--- squid-4.4/src/ip/Makefile.in	2018-10-28 09:45:12.000000000 +1300
+++ squid-4.5/src/ip/Makefile.in	2019-01-01 13:30:47.000000000 +1300
@@ -550,6 +550,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/src/ipc/Makefile.in squid-4.5/src/ipc/Makefile.in
--- squid-4.4/src/ipc/Makefile.in	2018-10-28 09:45:12.000000000 +1300
+++ squid-4.5/src/ipc/Makefile.in	2019-01-01 13:30:47.000000000 +1300
@@ -566,6 +566,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/src/log/DB/log_db_daemon.8 squid-4.5/src/log/DB/log_db_daemon.8
--- squid-4.4/src/log/DB/log_db_daemon.8	2018-10-28 09:56:46.000000000 +1300
+++ squid-4.5/src/log/DB/log_db_daemon.8	2019-01-01 13:42:07.000000000 +1300
@@ -1,4 +1,4 @@
-.\" Automatically generated by Pod::Man 4.09 (Pod::Simple 3.35)
+.\" Automatically generated by Pod::Man 4.10 (Pod::Simple 3.35)
 .\"
 .\" Standard preamble:
 .\" ========================================================================
@@ -54,16 +54,20 @@
 .\" Avoid warning from groff about undefined register 'F'.
 .de IX
 ..
-.if !\nF .nr F 0
-.if \nF>0 \{\
-.    de IX
-.    tm Index:\\$1\t\\n%\t"\\$2"
+.nr rF 0
+.if \n(.g .if rF .nr rF 1
+.if (\n(rF:(\n(.g==0)) \{\
+.    if \nF \{\
+.        de IX
+.        tm Index:\\$1\t\\n%\t"\\$2"
 ..
-.    if !\nF==2 \{\
-.        nr % 0
-.        nr F 2
+.        if !\nF==2 \{\
+.            nr % 0
+.            nr F 2
+.        \}
 .    \}
 .\}
+.rr rF
 .\"
 .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
 .\" Fear.  Run.  Save yourself.  No user-serviceable parts.
@@ -129,7 +133,7 @@
 .\" ========================================================================
 .\"
 .IX Title "LOG_DB_DAEMON 8"
-.TH LOG_DB_DAEMON 8 "2018-10-27" "perl v5.26.2" "User Contributed Perl Documentation"
+.TH LOG_DB_DAEMON 8 "2019-01-01" "perl v5.28.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-4.4/src/log/DB/Makefile.in squid-4.5/src/log/DB/Makefile.in
--- squid-4.4/src/log/DB/Makefile.in	2018-10-28 09:45:13.000000000 +1300
+++ squid-4.5/src/log/DB/Makefile.in	2019-01-01 13:30:47.000000000 +1300
@@ -486,6 +486,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/src/log/file/Makefile.in squid-4.5/src/log/file/Makefile.in
--- squid-4.4/src/log/file/Makefile.in	2018-10-28 09:45:13.000000000 +1300
+++ squid-4.5/src/log/file/Makefile.in	2019-01-01 13:30:48.000000000 +1300
@@ -535,6 +535,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/src/log/Makefile.in squid-4.5/src/log/Makefile.in
--- squid-4.4/src/log/Makefile.in	2018-10-28 09:45:13.000000000 +1300
+++ squid-4.5/src/log/Makefile.in	2019-01-01 13:30:47.000000000 +1300
@@ -602,6 +602,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/src/Makefile.in squid-4.5/src/Makefile.in
--- squid-4.4/src/Makefile.in	2018-10-28 09:45:10.000000000 +1300
+++ squid-4.5/src/Makefile.in	2019-01-01 13:30:44.000000000 +1300
@@ -2729,6 +2729,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/src/mem/Makefile.in squid-4.5/src/mem/Makefile.in
--- squid-4.4/src/mem/Makefile.in	2018-10-28 09:45:13.000000000 +1300
+++ squid-4.5/src/mem/Makefile.in	2019-01-01 13:30:48.000000000 +1300
@@ -551,6 +551,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/src/mgr/Makefile.in squid-4.5/src/mgr/Makefile.in
--- squid-4.4/src/mgr/Makefile.in	2018-10-28 09:45:13.000000000 +1300
+++ squid-4.5/src/mgr/Makefile.in	2019-01-01 13:30:48.000000000 +1300
@@ -566,6 +566,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/src/parser/Makefile.in squid-4.5/src/parser/Makefile.in
--- squid-4.4/src/parser/Makefile.in	2018-10-28 09:45:13.000000000 +1300
+++ squid-4.5/src/parser/Makefile.in	2019-01-01 13:30:48.000000000 +1300
@@ -549,6 +549,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/src/peer_digest.cc squid-4.5/src/peer_digest.cc
--- squid-4.4/src/peer_digest.cc	2018-10-28 09:44:55.000000000 +1300
+++ squid-4.5/src/peer_digest.cc	2019-01-01 13:02:15.000000000 +1300
@@ -323,7 +323,7 @@
     if (p->digest_url)
         url = xstrdup(p->digest_url);
     else
-        url = xstrdup(internalRemoteUri(p->host, p->http_port, "/squid-internal-periodic/", SBuf(StoreDigestFileName)));
+        url = xstrdup(internalRemoteUri(p->secure.encryptTransport, p->host, p->http_port, "/squid-internal-periodic/", SBuf(StoreDigestFileName)));
     debugs(72, 2, url);
 
     const MasterXaction::Pointer mx = new MasterXaction(XactionInitiator::initCacheDigest);
diff -u -r -N squid-4.4/src/repl/Makefile.in squid-4.5/src/repl/Makefile.in
--- squid-4.4/src/repl/Makefile.in	2018-10-28 09:45:13.000000000 +1300
+++ squid-4.5/src/repl/Makefile.in	2019-01-01 13:30:48.000000000 +1300
@@ -561,6 +561,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/src/sbuf/Makefile.in squid-4.5/src/sbuf/Makefile.in
--- squid-4.4/src/sbuf/Makefile.in	2018-10-28 09:45:13.000000000 +1300
+++ squid-4.5/src/sbuf/Makefile.in	2019-01-01 13:30:48.000000000 +1300
@@ -552,6 +552,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/src/security/cert_generators/file/Makefile.in squid-4.5/src/security/cert_generators/file/Makefile.in
--- squid-4.4/src/security/cert_generators/file/Makefile.in	2018-10-28 09:45:13.000000000 +1300
+++ squid-4.5/src/security/cert_generators/file/Makefile.in	2019-01-01 13:30:48.000000000 +1300
@@ -562,6 +562,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/src/security/cert_generators/Makefile.in squid-4.5/src/security/cert_generators/Makefile.in
--- squid-4.4/src/security/cert_generators/Makefile.in	2018-10-28 09:45:13.000000000 +1300
+++ squid-4.5/src/security/cert_generators/Makefile.in	2019-01-01 13:30:48.000000000 +1300
@@ -327,6 +327,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/src/security/cert_validators/fake/Makefile.in squid-4.5/src/security/cert_validators/fake/Makefile.in
--- squid-4.4/src/security/cert_validators/fake/Makefile.in	2018-10-28 09:45:13.000000000 +1300
+++ squid-4.5/src/security/cert_validators/fake/Makefile.in	2019-01-01 13:30:48.000000000 +1300
@@ -486,6 +486,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/src/security/cert_validators/fake/security_fake_certverify.8 squid-4.5/src/security/cert_validators/fake/security_fake_certverify.8
--- squid-4.4/src/security/cert_validators/fake/security_fake_certverify.8	2018-10-28 09:56:46.000000000 +1300
+++ squid-4.5/src/security/cert_validators/fake/security_fake_certverify.8	2019-01-01 13:42:08.000000000 +1300
@@ -1,4 +1,4 @@
-.\" Automatically generated by Pod::Man 4.09 (Pod::Simple 3.35)
+.\" Automatically generated by Pod::Man 4.10 (Pod::Simple 3.35)
 .\"
 .\" Standard preamble:
 .\" ========================================================================
@@ -54,16 +54,20 @@
 .\" Avoid warning from groff about undefined register 'F'.
 .de IX
 ..
-.if !\nF .nr F 0
-.if \nF>0 \{\
-.    de IX
-.    tm Index:\\$1\t\\n%\t"\\$2"
+.nr rF 0
+.if \n(.g .if rF .nr rF 1
+.if (\n(rF:(\n(.g==0)) \{\
+.    if \nF \{\
+.        de IX
+.        tm Index:\\$1\t\\n%\t"\\$2"
 ..
-.    if !\nF==2 \{\
-.        nr % 0
-.        nr F 2
+.        if !\nF==2 \{\
+.            nr % 0
+.            nr F 2
+.        \}
 .    \}
 .\}
+.rr rF
 .\"
 .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
 .\" Fear.  Run.  Save yourself.  No user-serviceable parts.
@@ -129,7 +133,7 @@
 .\" ========================================================================
 .\"
 .IX Title "SECURITY_FAKE_CERTVERIFY 8"
-.TH SECURITY_FAKE_CERTVERIFY 8 "2018-10-27" "perl v5.26.2" "User Contributed Perl Documentation"
+.TH SECURITY_FAKE_CERTVERIFY 8 "2019-01-01" "perl v5.28.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-4.4/src/security/cert_validators/Makefile.in squid-4.5/src/security/cert_validators/Makefile.in
--- squid-4.4/src/security/cert_validators/Makefile.in	2018-10-28 09:45:13.000000000 +1300
+++ squid-4.5/src/security/cert_validators/Makefile.in	2019-01-01 13:30:48.000000000 +1300
@@ -327,6 +327,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/src/security/Makefile.in squid-4.5/src/security/Makefile.in
--- squid-4.4/src/security/Makefile.in	2018-10-28 09:45:13.000000000 +1300
+++ squid-4.5/src/security/Makefile.in	2019-01-01 13:30:48.000000000 +1300
@@ -595,6 +595,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/src/servers/Makefile.in squid-4.5/src/servers/Makefile.in
--- squid-4.4/src/servers/Makefile.in	2018-10-28 09:45:13.000000000 +1300
+++ squid-4.5/src/servers/Makefile.in	2019-01-01 13:30:48.000000000 +1300
@@ -549,6 +549,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/src/snmp/Makefile.in squid-4.5/src/snmp/Makefile.in
--- squid-4.4/src/snmp/Makefile.in	2018-10-28 09:45:13.000000000 +1300
+++ squid-4.5/src/snmp/Makefile.in	2019-01-01 13:30:48.000000000 +1300
@@ -552,6 +552,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/src/ssl/Makefile.in squid-4.5/src/ssl/Makefile.in
--- squid-4.4/src/ssl/Makefile.in	2018-10-28 09:45:13.000000000 +1300
+++ squid-4.5/src/ssl/Makefile.in	2019-01-01 13:30:48.000000000 +1300
@@ -561,6 +561,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/src/store/id_rewriters/file/Makefile.in squid-4.5/src/store/id_rewriters/file/Makefile.in
--- squid-4.4/src/store/id_rewriters/file/Makefile.in	2018-10-28 09:45:13.000000000 +1300
+++ squid-4.5/src/store/id_rewriters/file/Makefile.in	2019-01-01 13:30:48.000000000 +1300
@@ -486,6 +486,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/src/store/id_rewriters/file/storeid_file_rewrite.8 squid-4.5/src/store/id_rewriters/file/storeid_file_rewrite.8
--- squid-4.4/src/store/id_rewriters/file/storeid_file_rewrite.8	2018-10-28 09:56:44.000000000 +1300
+++ squid-4.5/src/store/id_rewriters/file/storeid_file_rewrite.8	2019-01-01 13:42:05.000000000 +1300
@@ -1,4 +1,4 @@
-.\" Automatically generated by Pod::Man 4.09 (Pod::Simple 3.35)
+.\" Automatically generated by Pod::Man 4.10 (Pod::Simple 3.35)
 .\"
 .\" Standard preamble:
 .\" ========================================================================
@@ -54,16 +54,20 @@
 .\" Avoid warning from groff about undefined register 'F'.
 .de IX
 ..
-.if !\nF .nr F 0
-.if \nF>0 \{\
-.    de IX
-.    tm Index:\\$1\t\\n%\t"\\$2"
+.nr rF 0
+.if \n(.g .if rF .nr rF 1
+.if (\n(rF:(\n(.g==0)) \{\
+.    if \nF \{\
+.        de IX
+.        tm Index:\\$1\t\\n%\t"\\$2"
 ..
-.    if !\nF==2 \{\
-.        nr % 0
-.        nr F 2
+.        if !\nF==2 \{\
+.            nr % 0
+.            nr F 2
+.        \}
 .    \}
 .\}
+.rr rF
 .\"
 .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
 .\" Fear.  Run.  Save yourself.  No user-serviceable parts.
@@ -129,7 +133,7 @@
 .\" ========================================================================
 .\"
 .IX Title "STOREID_FILE_REWRITE 8"
-.TH STOREID_FILE_REWRITE 8 "2018-10-27" "perl v5.26.2" "User Contributed Perl Documentation"
+.TH STOREID_FILE_REWRITE 8 "2019-01-01" "perl v5.28.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-4.4/src/store/id_rewriters/Makefile.in squid-4.5/src/store/id_rewriters/Makefile.in
--- squid-4.4/src/store/id_rewriters/Makefile.in	2018-10-28 09:45:13.000000000 +1300
+++ squid-4.5/src/store/id_rewriters/Makefile.in	2019-01-01 13:30:48.000000000 +1300
@@ -327,6 +327,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/src/store/Makefile.in squid-4.5/src/store/Makefile.in
--- squid-4.4/src/store/Makefile.in	2018-10-28 09:45:13.000000000 +1300
+++ squid-4.5/src/store/Makefile.in	2019-01-01 13:30:48.000000000 +1300
@@ -590,6 +590,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/src/tunnel.cc squid-4.5/src/tunnel.cc
--- squid-4.4/src/tunnel.cc	2018-10-28 09:44:55.000000000 +1300
+++ squid-4.5/src/tunnel.cc	2019-01-01 13:02:15.000000000 +1300
@@ -28,6 +28,7 @@
 #include "http.h"
 #include "http/Stream.h"
 #include "HttpRequest.h"
+#include "icmp/net_db.h"
 #include "ip/QosConfig.h"
 #include "LogTags.h"
 #include "MemBuf.h"
@@ -1037,6 +1038,8 @@
         tunnelState->server.setDelayId(DelayId());
 #endif
 
+    netdbPingSite(tunnelState->request->url.host());
+
     tunnelState->request->hier.resetPeerNotes(conn, tunnelState->getHost());
 
     tunnelState->server.conn = conn;
diff -u -r -N squid-4.4/test-suite/Makefile.in squid-4.5/test-suite/Makefile.in
--- squid-4.4/test-suite/Makefile.in	2018-10-28 09:45:13.000000000 +1300
+++ squid-4.5/test-suite/Makefile.in	2019-01-01 13:30:48.000000000 +1300
@@ -640,6 +640,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/tools/apparmor/Makefile.in squid-4.5/tools/apparmor/Makefile.in
--- squid-4.4/tools/apparmor/Makefile.in	2018-10-28 09:45:13.000000000 +1300
+++ squid-4.5/tools/apparmor/Makefile.in	2019-01-01 13:30:48.000000000 +1300
@@ -268,6 +268,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/tools/helper-mux/helper-mux.8 squid-4.5/tools/helper-mux/helper-mux.8
--- squid-4.4/tools/helper-mux/helper-mux.8	2018-10-28 09:56:47.000000000 +1300
+++ squid-4.5/tools/helper-mux/helper-mux.8	2019-01-01 13:42:08.000000000 +1300
@@ -1,4 +1,4 @@
-.\" Automatically generated by Pod::Man 4.09 (Pod::Simple 3.35)
+.\" Automatically generated by Pod::Man 4.10 (Pod::Simple 3.35)
 .\"
 .\" Standard preamble:
 .\" ========================================================================
@@ -54,16 +54,20 @@
 .\" Avoid warning from groff about undefined register 'F'.
 .de IX
 ..
-.if !\nF .nr F 0
-.if \nF>0 \{\
-.    de IX
-.    tm Index:\\$1\t\\n%\t"\\$2"
+.nr rF 0
+.if \n(.g .if rF .nr rF 1
+.if (\n(rF:(\n(.g==0)) \{\
+.    if \nF \{\
+.        de IX
+.        tm Index:\\$1\t\\n%\t"\\$2"
 ..
-.    if !\nF==2 \{\
-.        nr % 0
-.        nr F 2
+.        if !\nF==2 \{\
+.            nr % 0
+.            nr F 2
+.        \}
 .    \}
 .\}
+.rr rF
 .\"
 .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
 .\" Fear.  Run.  Save yourself.  No user-serviceable parts.
@@ -129,7 +133,7 @@
 .\" ========================================================================
 .\"
 .IX Title "HELPER-MUX 8"
-.TH HELPER-MUX 8 "2018-10-27" "perl v5.26.2" "User Contributed Perl Documentation"
+.TH HELPER-MUX 8 "2019-01-01" "perl v5.28.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-4.4/tools/helper-mux/Makefile.in squid-4.5/tools/helper-mux/Makefile.in
--- squid-4.4/tools/helper-mux/Makefile.in	2018-10-28 09:45:13.000000000 +1300
+++ squid-4.5/tools/helper-mux/Makefile.in	2019-01-01 13:30:48.000000000 +1300
@@ -486,6 +486,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/tools/Makefile.in squid-4.5/tools/Makefile.in
--- squid-4.4/tools/Makefile.in	2018-10-28 09:45:13.000000000 +1300
+++ squid-4.5/tools/Makefile.in	2019-01-01 13:30:48.000000000 +1300
@@ -621,6 +621,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/tools/purge/Makefile.in squid-4.5/tools/purge/Makefile.in
--- squid-4.4/tools/purge/Makefile.in	2018-10-28 09:45:14.000000000 +1300
+++ squid-4.5/tools/purge/Makefile.in	2019-01-01 13:30:48.000000000 +1300
@@ -560,6 +560,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/tools/squidclient/Makefile.in squid-4.5/tools/squidclient/Makefile.in
--- squid-4.4/tools/squidclient/Makefile.in	2018-10-28 09:45:14.000000000 +1300
+++ squid-4.5/tools/squidclient/Makefile.in	2019-01-01 13:30:49.000000000 +1300
@@ -610,6 +610,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/tools/systemd/Makefile.in squid-4.5/tools/systemd/Makefile.in
--- squid-4.4/tools/systemd/Makefile.in	2018-10-28 09:45:14.000000000 +1300
+++ squid-4.5/tools/systemd/Makefile.in	2019-01-01 13:30:49.000000000 +1300
@@ -268,6 +268,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
diff -u -r -N squid-4.4/tools/sysvinit/Makefile.in squid-4.5/tools/sysvinit/Makefile.in
--- squid-4.4/tools/sysvinit/Makefile.in	2018-10-28 09:45:14.000000000 +1300
+++ squid-4.5/tools/sysvinit/Makefile.in	2019-01-01 13:30:49.000000000 +1300
@@ -268,6 +268,8 @@
 LIBS = @LIBS@
 LIBSASL = @LIBSASL@
 LIBTOOL = @LIBTOOL@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
 LIB_KRB5_CFLAGS = @LIB_KRB5_CFLAGS@
 LIB_KRB5_LIBS = @LIB_KRB5_LIBS@
 LINUXDOC = @LINUXDOC@
