diff -u -r -N squid-3.5.0.4/acinclude/ax_cxx_0x_types.m4 squid-3.5.1/acinclude/ax_cxx_0x_types.m4 --- squid-3.5.0.4/acinclude/ax_cxx_0x_types.m4 2014-12-20 21:11:48.000000000 -0800 +++ squid-3.5.1/acinclude/ax_cxx_0x_types.m4 2015-01-13 04:52:01.000000000 -0800 @@ -1,4 +1,4 @@ -## Copyright (C) 1996-2014 The Squid Software Foundation and contributors +## Copyright (C) 1996-2015 The Squid Software Foundation and contributors ## ## Squid software is distributed under GPLv2+ license and includes ## contributions from numerous individuals and organizations. diff -u -r -N squid-3.5.0.4/acinclude/ax_cxx_compile_stdcxx_11.m4 squid-3.5.1/acinclude/ax_cxx_compile_stdcxx_11.m4 --- squid-3.5.0.4/acinclude/ax_cxx_compile_stdcxx_11.m4 2014-12-20 21:11:48.000000000 -0800 +++ squid-3.5.1/acinclude/ax_cxx_compile_stdcxx_11.m4 2015-01-13 04:52:01.000000000 -0800 @@ -1,4 +1,4 @@ -## Copyright (C) 1996-2014 The Squid Software Foundation and contributors +## Copyright (C) 1996-2015 The Squid Software Foundation and contributors ## ## Squid software is distributed under GPLv2+ license and includes ## contributions from numerous individuals and organizations. diff -u -r -N squid-3.5.0.4/acinclude/ax_with_prog.m4 squid-3.5.1/acinclude/ax_with_prog.m4 --- squid-3.5.0.4/acinclude/ax_with_prog.m4 2014-12-20 21:11:48.000000000 -0800 +++ squid-3.5.1/acinclude/ax_with_prog.m4 2015-01-13 04:52:01.000000000 -0800 @@ -1,4 +1,4 @@ -## Copyright (C) 1996-2014 The Squid Software Foundation and contributors +## Copyright (C) 1996-2015 The Squid Software Foundation and contributors ## ## Squid software is distributed under GPLv2+ license and includes ## contributions from numerous individuals and organizations. diff -u -r -N squid-3.5.0.4/acinclude/compiler-flags.m4 squid-3.5.1/acinclude/compiler-flags.m4 --- squid-3.5.0.4/acinclude/compiler-flags.m4 2014-12-20 21:11:48.000000000 -0800 +++ squid-3.5.1/acinclude/compiler-flags.m4 2015-01-13 04:52:01.000000000 -0800 @@ -1,4 +1,4 @@ -## Copyright (C) 1996-2014 The Squid Software Foundation and contributors +## Copyright (C) 1996-2015 The Squid Software Foundation and contributors ## ## Squid software is distributed under GPLv2+ license and includes ## contributions from numerous individuals and organizations. @@ -41,15 +41,14 @@ SAVED_FLAGS="$CFLAGS" SAVED_CXXFLAGS="$CXXFLAGS" AC_COMPILE_IFELSE([AC_LANG_PROGRAM($3,$4)],[$1=no],[],[$1=no]) - if test "$1" != "no" ; then - CFLAGS="$CXXFLAGS $2" + if test "x$1" != "xno" ; then + CFLAGS="$CFLAGS $2" CXXFLAGS="$CXXFLAGS $2" AC_COMPILE_IFELSE([AC_LANG_PROGRAM($3,$4)],[$1=yes],[$1=no],[$1=no]) fi CFLAGS="$SAVED_CFLAGS" CXXFLAGS="$SAVED_CXXFLAGS" }]) - AC_MSG_RESULT([$1]) ]) # detect what kind of compiler we're using, either by using hints from diff -u -r -N squid-3.5.0.4/acinclude/init.m4 squid-3.5.1/acinclude/init.m4 --- squid-3.5.0.4/acinclude/init.m4 2014-12-20 21:11:48.000000000 -0800 +++ squid-3.5.1/acinclude/init.m4 2015-01-13 04:52:01.000000000 -0800 @@ -1,4 +1,4 @@ -## Copyright (C) 1996-2014 The Squid Software Foundation and contributors +## Copyright (C) 1996-2015 The Squid Software Foundation and contributors ## ## Squid software is distributed under GPLv2+ license and includes ## contributions from numerous individuals and organizations. diff -u -r -N squid-3.5.0.4/acinclude/krb5.m4 squid-3.5.1/acinclude/krb5.m4 --- squid-3.5.0.4/acinclude/krb5.m4 2014-12-20 21:11:48.000000000 -0800 +++ squid-3.5.1/acinclude/krb5.m4 2015-01-13 04:52:01.000000000 -0800 @@ -1,4 +1,4 @@ -## Copyright (C) 1996-2014 The Squid Software Foundation and contributors +## Copyright (C) 1996-2015 The Squid Software Foundation and contributors ## ## Squid software is distributed under GPLv2+ license and includes ## contributions from numerous individuals and organizations. diff -u -r -N squid-3.5.0.4/acinclude/lib-checks.m4 squid-3.5.1/acinclude/lib-checks.m4 --- squid-3.5.0.4/acinclude/lib-checks.m4 2014-12-20 21:11:48.000000000 -0800 +++ squid-3.5.1/acinclude/lib-checks.m4 2015-01-13 04:52:01.000000000 -0800 @@ -1,4 +1,4 @@ -## Copyright (C) 1996-2014 The Squid Software Foundation and contributors +## Copyright (C) 1996-2015 The Squid Software Foundation and contributors ## ## Squid software is distributed under GPLv2+ license and includes ## contributions from numerous individuals and organizations. diff -u -r -N squid-3.5.0.4/acinclude/os-deps.m4 squid-3.5.1/acinclude/os-deps.m4 --- squid-3.5.0.4/acinclude/os-deps.m4 2014-12-20 21:11:48.000000000 -0800 +++ squid-3.5.1/acinclude/os-deps.m4 2015-01-13 04:52:01.000000000 -0800 @@ -1,4 +1,4 @@ -## Copyright (C) 1996-2014 The Squid Software Foundation and contributors +## Copyright (C) 1996-2015 The Squid Software Foundation and contributors ## ## Squid software is distributed under GPLv2+ license and includes ## contributions from numerous individuals and organizations. @@ -881,3 +881,86 @@ AC_DEFINE_UNQUOTED(RECV_ARG_TYPE,$squid_cv_recv_second_arg_type, [Base type of the second argument to recv(2)]) ]) + + +dnl check whether Solaris has broken IPFilter headers (Solaris 10 at least does) +AC_DEFUN([SQUID_CHECK_BROKEN_SOLARIS_IPFILTER],[ + if test "x$squid_cv_broken_ipfilter_minor_t" = "x"; then + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ +# include +# include +# include + +# include +# include +# include + ]])],[ + AC_MSG_RESULT(no) + squid_cv_broken_ipfilter_minor_t=0 + ],[ + ## on fail, test the hack + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ +#define minor_t fubaar +# include +# include +# include +#undef minor_t +# include +# include +# include + ]])],[ + AC_MSG_RESULT(yes) + squid_cv_broken_ipfilter_minor_t=1 + ],[ + AC_MSG_RESULT(unable to make IPFilter work with netinet/ headers) + ]) + ]) + fi + + AC_DEFINE_UNQUOTED(USE_SOLARIS_IPFILTER_MINOR_T_HACK,$squid_cv_broken_ipfilter_minor_t, + [Workaround IPFilter minor_t breakage]) + +## check for IPFilter headers that require this hack +## (but first netinet/in.h and sys/ioccom.h which they depend on) + AC_CHECK_HEADERS( \ + netinet/in.h \ + sys/ioccom.h \ + ip_compat.h \ + ip_fil_compat.h \ + ip_fil.h \ + ip_nat.h \ + netinet/ip_compat.h \ + netinet/ip_fil_compat.h \ + netinet/ip_fil.h \ + netinet/ip_nat.h \ + ,,,[ +#if USE_SOLARIS_IPFILTER_MINOR_T_HACK +#define minor_t fubar +#endif +#if HAVE_SYS_TYPES_H +#include +#endif +#if HAVE_NETINET_IN_H +#include +#endif +#if HAVE_SYS_IOCCOM_H +#include +#endif +#if USE_SOLARIS_IPFILTER_MINOR_T_HACK +#undef minor_t +#endif +#if HAVE_IP_COMPAT_H +#include +#elif HAVE_NETINET_IP_COMPAT_H +#include +#endif +#if HAVE_IP_FIL_H +#include +#elif HAVE_NETINET_IP_FIL_H +#include +#endif +#if !defined(IPFILTER_VERSION) +#define IPFILTER_VERSION 5000004 +#endif + ]) +]) diff -u -r -N squid-3.5.0.4/acinclude/pam.m4 squid-3.5.1/acinclude/pam.m4 --- squid-3.5.0.4/acinclude/pam.m4 2014-12-20 21:11:48.000000000 -0800 +++ squid-3.5.1/acinclude/pam.m4 2015-01-13 04:52:01.000000000 -0800 @@ -1,4 +1,4 @@ -## Copyright (C) 1996-2014 The Squid Software Foundation and contributors +## Copyright (C) 1996-2015 The Squid Software Foundation and contributors ## ## Squid software is distributed under GPLv2+ license and includes ## contributions from numerous individuals and organizations. diff -u -r -N squid-3.5.0.4/acinclude/pkg.m4 squid-3.5.1/acinclude/pkg.m4 --- squid-3.5.0.4/acinclude/pkg.m4 2014-12-20 21:11:48.000000000 -0800 +++ squid-3.5.1/acinclude/pkg.m4 2015-01-13 04:52:01.000000000 -0800 @@ -1,4 +1,4 @@ -## Copyright (C) 1996-2014 The Squid Software Foundation and contributors +## Copyright (C) 1996-2015 The Squid Software Foundation and contributors ## ## Squid software is distributed under GPLv2+ license and includes ## contributions from numerous individuals and organizations. diff -u -r -N squid-3.5.0.4/acinclude/squid-util.m4 squid-3.5.1/acinclude/squid-util.m4 --- squid-3.5.0.4/acinclude/squid-util.m4 2014-12-20 21:11:48.000000000 -0800 +++ squid-3.5.1/acinclude/squid-util.m4 2015-01-13 04:52:01.000000000 -0800 @@ -1,4 +1,4 @@ -## Copyright (C) 1996-2014 The Squid Software Foundation and contributors +## Copyright (C) 1996-2015 The Squid Software Foundation and contributors ## ## Squid software is distributed under GPLv2+ license and includes ## contributions from numerous individuals and organizations. diff -u -r -N squid-3.5.0.4/bootstrap.sh squid-3.5.1/bootstrap.sh --- squid-3.5.0.4/bootstrap.sh 2014-12-20 21:11:48.000000000 -0800 +++ squid-3.5.1/bootstrap.sh 2015-01-13 04:52:01.000000000 -0800 @@ -1,6 +1,6 @@ #!/bin/sh # -## Copyright (C) 1996-2014 The Squid Software Foundation and contributors +## Copyright (C) 1996-2015 The Squid Software Foundation and contributors ## ## Squid software is distributed under GPLv2+ license and includes ## contributions from numerous individuals and organizations. diff -u -r -N squid-3.5.0.4/ChangeLog squid-3.5.1/ChangeLog --- squid-3.5.0.4/ChangeLog 2014-12-20 21:11:48.000000000 -0800 +++ squid-3.5.1/ChangeLog 2015-01-13 04:52:01.000000000 -0800 @@ -1,3 +1,12 @@ +Changes to squid-3.5.1 (13 Jan 2015): + + - Fix handling of invalid SSL server certificates when splicing connections + - basic_smb_lm_auth: Simplified MSNT basic auth helper + - squidclient: Fix -A and -P options + - ... and several portability fixes + - ... and all fixes from squid 3.4.11 + - ... and a lot of documentation updates + Changes to squid-3.5.0.4 (21 Dec 2014): - Bug 3826: pt 2: Provide a systemd .service file for Squid @@ -91,6 +100,17 @@ - ... and many error page translation updates - ... and much code cleanup and polishing +Changes to squid-3.4.11 (13 Jan 2015): + + - Bug 4164: SEGFAULT when %W formating code used in errorpages + - Bug 4057: Avoid on-exit crashes when adaptation is enabled. + - Bug 3760: squidclient ignores --disable-ipv6 + - Bug 3754: configure doesnt detect IPFilter 5.1.2 system headers + - Bug 3664: ssl_crtd fails to build on OpenSolaris/OpenIndiana/Solaris 11 + - cachemgr.cgi: memory leak in request parser + - Deleting first fs left psstate->servers pointing to uninitialized memory + - ... and some build issues + Changes to squid-3.4.10 (09 Dec 2014): - Bug 4148: external_acl_type header format does not accept the new libformat syntax diff -u -r -N squid-3.5.0.4/compat/assert.cc squid-3.5.1/compat/assert.cc --- squid-3.5.0.4/compat/assert.cc 2014-12-20 21:11:48.000000000 -0800 +++ squid-3.5.1/compat/assert.cc 2015-01-13 04:52:01.000000000 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (C) 1996-2014 The Squid Software Foundation and contributors + * Copyright (C) 1996-2015 The Squid Software Foundation and contributors * * Squid software is distributed under GPLv2+ license and includes * contributions from numerous individuals and organizations. diff -u -r -N squid-3.5.0.4/compat/assert.h squid-3.5.1/compat/assert.h --- squid-3.5.0.4/compat/assert.h 2014-12-20 21:11:48.000000000 -0800 +++ squid-3.5.1/compat/assert.h 2015-01-13 04:52:01.000000000 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (C) 1996-2014 The Squid Software Foundation and contributors + * Copyright (C) 1996-2015 The Squid Software Foundation and contributors * * Squid software is distributed under GPLv2+ license and includes * contributions from numerous individuals and organizations. diff -u -r -N squid-3.5.0.4/compat/cmsg.h squid-3.5.1/compat/cmsg.h --- squid-3.5.0.4/compat/cmsg.h 2014-12-20 21:11:48.000000000 -0800 +++ squid-3.5.1/compat/cmsg.h 2015-01-13 04:52:01.000000000 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (C) 1996-2014 The Squid Software Foundation and contributors + * Copyright (C) 1996-2015 The Squid Software Foundation and contributors * * Squid software is distributed under GPLv2+ license and includes * contributions from numerous individuals and organizations. diff -u -r -N squid-3.5.0.4/compat/compat.cc squid-3.5.1/compat/compat.cc --- squid-3.5.0.4/compat/compat.cc 2014-12-20 21:11:48.000000000 -0800 +++ squid-3.5.1/compat/compat.cc 2015-01-13 04:52:01.000000000 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (C) 1996-2014 The Squid Software Foundation and contributors + * Copyright (C) 1996-2015 The Squid Software Foundation and contributors * * Squid software is distributed under GPLv2+ license and includes * contributions from numerous individuals and organizations. diff -u -r -N squid-3.5.0.4/compat/compat.h squid-3.5.1/compat/compat.h --- squid-3.5.0.4/compat/compat.h 2014-12-20 21:11:48.000000000 -0800 +++ squid-3.5.1/compat/compat.h 2015-01-13 04:52:01.000000000 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (C) 1996-2014 The Squid Software Foundation and contributors + * Copyright (C) 1996-2015 The Squid Software Foundation and contributors * * Squid software is distributed under GPLv2+ license and includes * contributions from numerous individuals and organizations. @@ -42,6 +42,17 @@ #endif #endif +/* Solaris 10 has a broken definition for minor_t in IPFilter compat. + * We must pre-define before doing anything with OS headers so the OS + * do not. Then un-define it before using the IPFilter *_compat.h headers. + */ +#if IPF_TRANSPARENT && USE_SOLARIS_IPFILTER_MINOR_T_HACK +/* But we only need do this nasty thing for src/ip/Intercept.cc */ +#if BUILDING_SQUID_IP_INTERCEPT_CC +#define minor_t solaris_minor_t_fubar +#endif +#endif + /*****************************************************/ /* FDSETSIZE is messy and needs to be done before */ /* sys/types.h are defined. */ @@ -87,6 +98,10 @@ #include "compat/assert.h" #include "compat/compat_shared.h" +#include "compat/getaddrinfo.h" +#include "compat/getnameinfo.h" +#include "compat/inet_ntop.h" +#include "compat/inet_pton.h" #include "compat/stdvarargs.h" /* cstdio has a bunch of problems with 64-bit definitions */ diff -u -r -N squid-3.5.0.4/compat/compat_shared.h squid-3.5.1/compat/compat_shared.h --- squid-3.5.0.4/compat/compat_shared.h 2014-12-20 21:11:48.000000000 -0800 +++ squid-3.5.1/compat/compat_shared.h 2015-01-13 04:52:01.000000000 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (C) 1996-2014 The Squid Software Foundation and contributors + * Copyright (C) 1996-2015 The Squid Software Foundation and contributors * * Squid software is distributed under GPLv2+ license and includes * contributions from numerous individuals and organizations. diff -u -r -N squid-3.5.0.4/compat/cppunit.h squid-3.5.1/compat/cppunit.h --- squid-3.5.0.4/compat/cppunit.h 2014-12-20 21:11:48.000000000 -0800 +++ squid-3.5.1/compat/cppunit.h 2015-01-13 04:52:01.000000000 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (C) 1996-2014 The Squid Software Foundation and contributors + * Copyright (C) 1996-2015 The Squid Software Foundation and contributors * * Squid software is distributed under GPLv2+ license and includes * contributions from numerous individuals and organizations. diff -u -r -N squid-3.5.0.4/compat/cpu.h squid-3.5.1/compat/cpu.h --- squid-3.5.0.4/compat/cpu.h 2014-12-20 21:11:48.000000000 -0800 +++ squid-3.5.1/compat/cpu.h 2015-01-13 04:52:01.000000000 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (C) 1996-2014 The Squid Software Foundation and contributors + * Copyright (C) 1996-2015 The Squid Software Foundation and contributors * * Squid software is distributed under GPLv2+ license and includes * contributions from numerous individuals and organizations. diff -u -r -N squid-3.5.0.4/compat/debug.cc squid-3.5.1/compat/debug.cc --- squid-3.5.0.4/compat/debug.cc 2014-12-20 21:11:48.000000000 -0800 +++ squid-3.5.1/compat/debug.cc 2015-01-13 04:52:01.000000000 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (C) 1996-2014 The Squid Software Foundation and contributors + * Copyright (C) 1996-2015 The Squid Software Foundation and contributors * * Squid software is distributed under GPLv2+ license and includes * contributions from numerous individuals and organizations. diff -u -r -N squid-3.5.0.4/compat/debug.h squid-3.5.1/compat/debug.h --- squid-3.5.0.4/compat/debug.h 2014-12-20 21:11:48.000000000 -0800 +++ squid-3.5.1/compat/debug.h 2015-01-13 04:52:01.000000000 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (C) 1996-2014 The Squid Software Foundation and contributors + * Copyright (C) 1996-2015 The Squid Software Foundation and contributors * * Squid software is distributed under GPLv2+ license and includes * contributions from numerous individuals and organizations. diff -u -r -N squid-3.5.0.4/compat/drand48.c squid-3.5.1/compat/drand48.c --- squid-3.5.0.4/compat/drand48.c 2014-12-20 21:11:48.000000000 -0800 +++ squid-3.5.1/compat/drand48.c 2015-01-13 04:52:01.000000000 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (C) 1996-2014 The Squid Software Foundation and contributors + * Copyright (C) 1996-2015 The Squid Software Foundation and contributors * * Squid software is distributed under GPLv2+ license and includes * contributions from numerous individuals and organizations. diff -u -r -N squid-3.5.0.4/compat/drand48.h squid-3.5.1/compat/drand48.h --- squid-3.5.0.4/compat/drand48.h 2014-12-20 21:11:48.000000000 -0800 +++ squid-3.5.1/compat/drand48.h 2015-01-13 04:52:01.000000000 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (C) 1996-2014 The Squid Software Foundation and contributors + * Copyright (C) 1996-2015 The Squid Software Foundation and contributors * * Squid software is distributed under GPLv2+ license and includes * contributions from numerous individuals and organizations. diff -u -r -N squid-3.5.0.4/compat/eui64_aton.c squid-3.5.1/compat/eui64_aton.c --- squid-3.5.0.4/compat/eui64_aton.c 2014-12-20 21:11:48.000000000 -0800 +++ squid-3.5.1/compat/eui64_aton.c 2015-01-13 04:52:01.000000000 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (C) 1996-2014 The Squid Software Foundation and contributors + * Copyright (C) 1996-2015 The Squid Software Foundation and contributors * * Squid software is distributed under GPLv2+ license and includes * contributions from numerous individuals and organizations. diff -u -r -N squid-3.5.0.4/compat/eui64_aton.h squid-3.5.1/compat/eui64_aton.h --- squid-3.5.0.4/compat/eui64_aton.h 2014-12-20 21:11:48.000000000 -0800 +++ squid-3.5.1/compat/eui64_aton.h 2015-01-13 04:52:01.000000000 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (C) 1996-2014 The Squid Software Foundation and contributors + * Copyright (C) 1996-2015 The Squid Software Foundation and contributors * * Squid software is distributed under GPLv2+ license and includes * contributions from numerous individuals and organizations. diff -u -r -N squid-3.5.0.4/compat/fdsetsize.h squid-3.5.1/compat/fdsetsize.h --- squid-3.5.0.4/compat/fdsetsize.h 2014-12-20 21:11:48.000000000 -0800 +++ squid-3.5.1/compat/fdsetsize.h 2015-01-13 04:52:01.000000000 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (C) 1996-2014 The Squid Software Foundation and contributors + * Copyright (C) 1996-2015 The Squid Software Foundation and contributors * * Squid software is distributed under GPLv2+ license and includes * contributions from numerous individuals and organizations. diff -u -r -N squid-3.5.0.4/compat/getaddrinfo.c squid-3.5.1/compat/getaddrinfo.c --- squid-3.5.0.4/compat/getaddrinfo.c 2014-12-20 21:11:48.000000000 -0800 +++ squid-3.5.1/compat/getaddrinfo.c 1969-12-31 16:00:00.000000000 -0800 @@ -1,336 +0,0 @@ -/* - * Copyright (C) 1996-2014 The Squid Software Foundation and contributors - * - * Squid software is distributed under GPLv2+ license and includes - * contributions from numerous individuals and organizations. - * Please see the COPYING and CONTRIBUTORS files for details. - */ - -/* - * Shamelessly duplicated from the fetchmail public sources - * for use by the Squid Project under GNU Public License. - * - * Update/Maintenance History: - * - * 15-Aug-2007 : Copied from fetchmail 6.3.8 - * - added protection around libray headers - * - * 16-Aug-2007 : Altered configure checks - * Un-hacked slightly to use system gethostbyname() - * - * 06-Oct-2007 : Various fixes to allow the build on MinGW - * - * Original License and code follows. - */ -#include "squid.h" - -/* - * This file is part of libESMTP, a library for submission of RFC 2822 - * formatted electronic mail messages using the SMTP protocol described - * in RFC 2821. - * - * Copyright (C) 2001,2002 Brian Stafford - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* An emulation of the RFC 2553 / Posix getaddrinfo resolver interface. - */ - -#if !HAVE_GETADDRINFO - -/* Need to turn off Posix features in glibc to build this */ -#undef _POSIX_C_SOURCE -#undef _XOPEN_SOURCE - -#include "compat/getaddrinfo.h" -#include "compat/inet_pton.h" - -#if HAVE_STRING_H -#include -#endif -#if HAVE_CTYPE_H -#include -#endif -#if HAVE_ERRNO_H -#include -#endif -#if HAVE_SYS_SOCKET_H -#include -#endif -#if HAVE_NETINET_IN_H -#include -#endif -#if HAVE_ARPA_INET_H -#include -#endif -#if HAVE_NETDB_H -#include -#endif - -static struct addrinfo * -dup_addrinfo (struct addrinfo *info, void *addr, size_t addrlen) { - struct addrinfo *ret; - - ret = malloc (sizeof (struct addrinfo)); - if (ret == NULL) - return NULL; - memcpy (ret, info, sizeof (struct addrinfo)); - ret->ai_addr = malloc (addrlen); - if (ret->ai_addr == NULL) { - free (ret); - return NULL; - } - memcpy (ret->ai_addr, addr, addrlen); - ret->ai_addrlen = addrlen; - return ret; -} - -int -xgetaddrinfo (const char *nodename, const char *servname, - const struct addrinfo *hints, struct addrinfo **res) -{ - struct hostent *hp; - struct servent *servent; - const char *socktype; - int port; - struct addrinfo hint, result; - struct addrinfo *ai, *sai, *eai; - char **addrs; - - if (servname == NULL && nodename == NULL) - return EAI_NONAME; - - memset (&result, 0, sizeof result); - - /* default for hints */ - if (hints == NULL) { - memset (&hint, 0, sizeof hint); - hint.ai_family = PF_UNSPEC; - hints = &hint; - } - - if (servname == NULL) - port = 0; - else { - /* check for tcp or udp sockets only */ - if (hints->ai_socktype == SOCK_STREAM) - socktype = "tcp"; - else if (hints->ai_socktype == SOCK_DGRAM) - socktype = "udp"; - else - return EAI_SERVICE; - result.ai_socktype = hints->ai_socktype; - - /* Note: maintain port in host byte order to make debugging easier */ - if (isdigit (*servname)) - port = strtol (servname, NULL, 10); - else if ((servent = getservbyname (servname, socktype)) != NULL) - port = ntohs (servent->s_port); - else - return EAI_NONAME; - } - - /* if nodename == NULL refer to the local host for a client or any - for a server */ - if (nodename == NULL) { - struct sockaddr_in sin; - - /* check protocol family is PF_UNSPEC or PF_INET - could try harder - for IPv6 but that's more code than I'm prepared to write */ - if (hints->ai_family == PF_UNSPEC || hints->ai_family == PF_INET) - result.ai_family = AF_INET; - else - return EAI_FAMILY; - - sin.sin_family = result.ai_family; - sin.sin_port = htons (port); - if (hints->ai_flags & AI_PASSIVE) - sin.sin_addr.s_addr = htonl (INADDR_ANY); - else - sin.sin_addr.s_addr = htonl (INADDR_LOOPBACK); - /* Duplicate result and addr and return */ - *res = dup_addrinfo (&result, &sin, sizeof sin); - return (*res == NULL) ? EAI_MEMORY : 0; - } - - /* If AI_NUMERIC is specified, use inet_pton to translate numbers and - dots notation. */ - if (hints->ai_flags & AI_NUMERICHOST) { - struct sockaddr_in sin; - - /* check protocol family is PF_UNSPEC or PF_INET */ - if (hints->ai_family == PF_UNSPEC || hints->ai_family == PF_INET) - result.ai_family = AF_INET; - else - return EAI_FAMILY; - - sin.sin_family = result.ai_family; - sin.sin_port = htons (port); - if (inet_pton(result.ai_family, nodename, &sin.sin_addr)) - return EAI_NONAME; - sin.sin_addr.s_addr = inet_addr (nodename); - /* Duplicate result and addr and return */ - *res = dup_addrinfo (&result, &sin, sizeof sin); - return (*res == NULL) ? EAI_MEMORY : 0; - } - -#if HAVE_H_ERRNO - h_errno = 0; -#endif - errno = 0; - hp = gethostbyname(nodename); - if (hp == NULL) { -#ifdef EAI_SYSTEM - if (errno != 0) { - return EAI_SYSTEM; - } -#endif - switch (h_errno) { - case HOST_NOT_FOUND: - return EAI_NODATA; - case NO_DATA: - return EAI_NODATA; -#if defined(NO_ADDRESS) && NO_ADDRESS != NO_DATA - case NO_ADDRESS: - return EAI_NODATA; -#endif - case NO_RECOVERY: - return EAI_FAIL; - case TRY_AGAIN: - return EAI_AGAIN; - default: - return EAI_FAIL; - } - return EAI_FAIL; - } - - /* Check that the address family is acceptable. - */ - switch (hp->h_addrtype) { - case AF_INET: - if (!(hints->ai_family == PF_UNSPEC || hints->ai_family == PF_INET)) - return EAI_FAMILY; - break; - case AF_INET6: - if (!(hints->ai_family == PF_UNSPEC || hints->ai_family == PF_INET6)) - return EAI_FAMILY; - break; - default: - return EAI_FAMILY; - } - - /* For each element pointed to by hp, create an element in the - result linked list. */ - sai = eai = NULL; - for (addrs = hp->h_addr_list; *addrs != NULL; addrs++) { - struct sockaddr sa; - size_t addrlen; - - if (hp->h_length < 1) - continue; - sa.sa_family = hp->h_addrtype; - switch (hp->h_addrtype) { - case AF_INET: - ((struct sockaddr_in *) &sa)->sin_port = htons (port); - memcpy (&((struct sockaddr_in *) &sa)->sin_addr, - *addrs, hp->h_length); - addrlen = sizeof (struct sockaddr_in); - break; - case AF_INET6: -#if SIN6_LEN - ((struct sockaddr_in6 *) &sa)->sin6_len = hp->h_length; -#endif - ((struct sockaddr_in6 *) &sa)->sin6_port = htons (port); - memcpy (&((struct sockaddr_in6 *) &sa)->sin6_addr, - *addrs, hp->h_length); - addrlen = sizeof (struct sockaddr_in6); - break; - default: - continue; - } - - result.ai_family = hp->h_addrtype; - ai = dup_addrinfo (&result, &sa, addrlen); - if (ai == NULL) { - xfreeaddrinfo (sai); - return EAI_MEMORY; - } - if (sai == NULL) - sai = ai; - else - eai->ai_next = ai; - eai = ai; - } - - if (sai == NULL) { - return EAI_NODATA; - } - - if (hints->ai_flags & AI_CANONNAME) { - sai->ai_canonname = malloc (strlen (hp->h_name) + 1); - if (sai->ai_canonname == NULL) { - xfreeaddrinfo (sai); - return EAI_MEMORY; - } - strcpy (sai->ai_canonname, hp->h_name); - } - - *res = sai; - return 0; -} - -void -xfreeaddrinfo (struct addrinfo *ai) -{ - struct addrinfo *next; - - while (ai != NULL) { - next = ai->ai_next; - if (ai->ai_canonname != NULL) - free (ai->ai_canonname); - if (ai->ai_addr != NULL) - free (ai->ai_addr); - free (ai); - ai = next; - } -} - -const char * -xgai_strerror (int ecode) -{ - static const char *eai_descr[] = { - "no error", - "address family for nodename not supported", /* EAI_ADDRFAMILY */ - "temporary failure in name resolution", /* EAI_AGAIN */ - "invalid value for ai_flags", /* EAI_BADFLAGS */ - "non-recoverable failure in name resolution", /* EAI_FAIL */ - "ai_family not supported", /* EAI_FAMILY */ - "memory allocation failure", /* EAI_MEMORY */ - "no address associated with nodename", /* EAI_NODATA */ - "nodename nor servname provided, or not known", /* EAI_NONAME */ - "servname not supported for ai_socktype", /* EAI_SERVICE */ - "ai_socktype not supported", /* EAI_SOCKTYPE */ - "system error returned in errno", /* EAI_SYSTEM */ - "argument buffer overflow", /* EAI_OVERFLOW */ - }; - - if (ecode < 0 || ecode > (int) (sizeof eai_descr/ sizeof eai_descr[0])) - return "unknown error"; - return eai_descr[ecode]; -} - -#endif /* HAVE_GETADDRINFO */ - diff -u -r -N squid-3.5.0.4/compat/getaddrinfo.cc squid-3.5.1/compat/getaddrinfo.cc --- squid-3.5.0.4/compat/getaddrinfo.cc 1969-12-31 16:00:00.000000000 -0800 +++ squid-3.5.1/compat/getaddrinfo.cc 2015-01-13 04:52:01.000000000 -0800 @@ -0,0 +1,335 @@ +/* + * Copyright (C) 1996-2015 The Squid Software Foundation and contributors + * + * Squid software is distributed under GPLv2+ license and includes + * contributions from numerous individuals and organizations. + * Please see the COPYING and CONTRIBUTORS files for details. + */ + +/* + * Shamelessly duplicated from the fetchmail public sources + * for use by the Squid Project under GNU Public License. + * + * Update/Maintenance History: + * + * 15-Aug-2007 : Copied from fetchmail 6.3.8 + * - added protection around libray headers + * + * 16-Aug-2007 : Altered configure checks + * Un-hacked slightly to use system gethostbyname() + * + * 06-Oct-2007 : Various fixes to allow the build on MinGW + * + * 13-Jan-2015 : Various fixed for C++ and MinGW native build + * + * Original License and code follows. + */ +#include "squid.h" + +/* + * This file is part of libESMTP, a library for submission of RFC 2822 + * formatted electronic mail messages using the SMTP protocol described + * in RFC 2821. + * + * Copyright (C) 2001,2002 Brian Stafford + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +/* An emulation of the RFC 2553 / Posix getaddrinfo resolver interface. + */ + +#if !HAVE_DECL_GETADDRINFO + +/* Need to turn off Posix features in glibc to build this */ +#undef _POSIX_C_SOURCE +#undef _XOPEN_SOURCE + +#if HAVE_STRING_H +#include +#endif +#if HAVE_CTYPE_H +#include +#endif +#if HAVE_ERRNO_H +#include +#endif +#if HAVE_SYS_SOCKET_H +#include +#endif +#if HAVE_NETINET_IN_H +#include +#endif +#if HAVE_ARPA_INET_H +#include +#endif +#if HAVE_NETDB_H +#include +#endif + +static struct addrinfo * +dup_addrinfo (struct addrinfo *info, void *addr, size_t addrlen) { + struct addrinfo *ret; + + ret = (struct addrinfo *)malloc(sizeof (struct addrinfo)); + if (ret == NULL) + return NULL; + memcpy (ret, info, sizeof (struct addrinfo)); + ret->ai_addr = (struct sockaddr*)malloc(addrlen); + if (ret->ai_addr == NULL) { + free (ret); + return NULL; + } + memcpy (ret->ai_addr, addr, addrlen); + ret->ai_addrlen = addrlen; + return ret; +} + +int +xgetaddrinfo (const char *nodename, const char *servname, + const struct addrinfo *hints, struct addrinfo **res) +{ + struct hostent *hp; + struct servent *servent; + const char *socktype; + int port; + struct addrinfo hint, result; + struct addrinfo *ai, *sai, *eai; + char **addrs; + + if (servname == NULL && nodename == NULL) + return EAI_NONAME; + + memset (&result, 0, sizeof result); + + /* default for hints */ + if (hints == NULL) { + memset (&hint, 0, sizeof hint); + hint.ai_family = PF_UNSPEC; + hints = &hint; + } + + if (servname == NULL) + port = 0; + else { + /* check for tcp or udp sockets only */ + if (hints->ai_socktype == SOCK_STREAM) + socktype = "tcp"; + else if (hints->ai_socktype == SOCK_DGRAM) + socktype = "udp"; + else + return EAI_SERVICE; + result.ai_socktype = hints->ai_socktype; + + /* Note: maintain port in host byte order to make debugging easier */ + if (isdigit (*servname)) + port = strtol (servname, NULL, 10); + else if ((servent = getservbyname (servname, socktype)) != NULL) + port = ntohs (servent->s_port); + else + return EAI_NONAME; + } + + /* if nodename == NULL refer to the local host for a client or any + for a server */ + if (nodename == NULL) { + struct sockaddr_in sin; + + /* check protocol family is PF_UNSPEC or PF_INET - could try harder + for IPv6 but that's more code than I'm prepared to write */ + if (hints->ai_family == PF_UNSPEC || hints->ai_family == PF_INET) + result.ai_family = AF_INET; + else + return EAI_FAMILY; + + sin.sin_family = result.ai_family; + sin.sin_port = htons (port); + if (hints->ai_flags & AI_PASSIVE) + sin.sin_addr.s_addr = htonl (INADDR_ANY); + else + sin.sin_addr.s_addr = htonl (INADDR_LOOPBACK); + /* Duplicate result and addr and return */ + *res = dup_addrinfo (&result, &sin, sizeof sin); + return (*res == NULL) ? EAI_MEMORY : 0; + } + + /* If AI_NUMERIC is specified, use inet_pton to translate numbers and + dots notation. */ + if (hints->ai_flags & AI_NUMERICHOST) { + struct sockaddr_in sin; + + /* check protocol family is PF_UNSPEC or PF_INET */ + if (hints->ai_family == PF_UNSPEC || hints->ai_family == PF_INET) + result.ai_family = AF_INET; + else + return EAI_FAMILY; + + sin.sin_family = result.ai_family; + sin.sin_port = htons (port); + if (inet_pton(result.ai_family, nodename, &sin.sin_addr) != 1) + return EAI_NONAME; + sin.sin_addr.s_addr = inet_addr (nodename); + /* Duplicate result and addr and return */ + *res = dup_addrinfo (&result, &sin, sizeof sin); + return (*res == NULL) ? EAI_MEMORY : 0; + } + +#if HAVE_H_ERRNO + h_errno = 0; +#endif + errno = 0; + hp = gethostbyname(nodename); + if (hp == NULL) { +#ifdef EAI_SYSTEM + if (errno != 0) { + return EAI_SYSTEM; + } +#endif + switch (h_errno) { + case HOST_NOT_FOUND: + return EAI_NODATA; + case NO_DATA: + return EAI_NODATA; +#if defined(NO_ADDRESS) && NO_ADDRESS != NO_DATA + case NO_ADDRESS: + return EAI_NODATA; +#endif + case NO_RECOVERY: + return EAI_FAIL; + case TRY_AGAIN: + return EAI_AGAIN; + default: + return EAI_FAIL; + } + return EAI_FAIL; + } + + /* Check that the address family is acceptable. + */ + switch (hp->h_addrtype) { + case AF_INET: + if (!(hints->ai_family == PF_UNSPEC || hints->ai_family == PF_INET)) + return EAI_FAMILY; + break; + case AF_INET6: + if (!(hints->ai_family == PF_UNSPEC || hints->ai_family == PF_INET6)) + return EAI_FAMILY; + break; + default: + return EAI_FAMILY; + } + + /* For each element pointed to by hp, create an element in the + result linked list. */ + sai = eai = NULL; + for (addrs = hp->h_addr_list; *addrs != NULL; addrs++) { + struct sockaddr sa; + size_t addrlen; + + if (hp->h_length < 1) + continue; + sa.sa_family = hp->h_addrtype; + switch (hp->h_addrtype) { + case AF_INET: + ((struct sockaddr_in *) &sa)->sin_port = htons (port); + memcpy (&((struct sockaddr_in *) &sa)->sin_addr, + *addrs, hp->h_length); + addrlen = sizeof (struct sockaddr_in); + break; + case AF_INET6: +#if SIN6_LEN + ((struct sockaddr_in6 *) &sa)->sin6_len = hp->h_length; +#endif + ((struct sockaddr_in6 *) &sa)->sin6_port = htons (port); + memcpy (&((struct sockaddr_in6 *) &sa)->sin6_addr, + *addrs, hp->h_length); + addrlen = sizeof (struct sockaddr_in6); + break; + default: + continue; + } + + result.ai_family = hp->h_addrtype; + ai = dup_addrinfo (&result, &sa, addrlen); + if (ai == NULL) { + xfreeaddrinfo (sai); + return EAI_MEMORY; + } + if (sai == NULL) + sai = ai; + else + eai->ai_next = ai; + eai = ai; + } + + if (sai == NULL) { + return EAI_NODATA; + } + + if (hints->ai_flags & AI_CANONNAME) { + sai->ai_canonname = (char *)malloc(strlen(hp->h_name) + 1); + if (sai->ai_canonname == NULL) { + xfreeaddrinfo (sai); + return EAI_MEMORY; + } + strcpy (sai->ai_canonname, hp->h_name); + } + + *res = sai; + return 0; +} + +void +xfreeaddrinfo (struct addrinfo *ai) +{ + struct addrinfo *next; + + while (ai != NULL) { + next = ai->ai_next; + if (ai->ai_canonname != NULL) + free (ai->ai_canonname); + if (ai->ai_addr != NULL) + free (ai->ai_addr); + free (ai); + ai = next; + } +} + +const char * +xgai_strerror (int ecode) +{ + static const char *eai_descr[] = { + "no error", + "address family for nodename not supported", /* EAI_ADDRFAMILY */ + "temporary failure in name resolution", /* EAI_AGAIN */ + "invalid value for ai_flags", /* EAI_BADFLAGS */ + "non-recoverable failure in name resolution", /* EAI_FAIL */ + "ai_family not supported", /* EAI_FAMILY */ + "memory allocation failure", /* EAI_MEMORY */ + "no address associated with nodename", /* EAI_NODATA */ + "nodename nor servname provided, or not known", /* EAI_NONAME */ + "servname not supported for ai_socktype", /* EAI_SERVICE */ + "ai_socktype not supported", /* EAI_SOCKTYPE */ + "system error returned in errno", /* EAI_SYSTEM */ + "argument buffer overflow", /* EAI_OVERFLOW */ + }; + + if (ecode < 0 || ecode > (int) (sizeof eai_descr/ sizeof eai_descr[0])) + return "unknown error"; + return eai_descr[ecode]; +} + +#endif /* HAVE_DECL_GETADDRINFO */ + diff -u -r -N squid-3.5.0.4/compat/getaddrinfo.h squid-3.5.1/compat/getaddrinfo.h --- squid-3.5.0.4/compat/getaddrinfo.h 2014-12-20 21:11:48.000000000 -0800 +++ squid-3.5.1/compat/getaddrinfo.h 2015-01-13 04:52:01.000000000 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (C) 1996-2014 The Squid Software Foundation and contributors + * Copyright (C) 1996-2015 The Squid Software Foundation and contributors * * Squid software is distributed under GPLv2+ license and includes * contributions from numerous individuals and organizations. @@ -49,7 +49,7 @@ /* Structure and prototypes taken from RFC 2553 */ /* These functions are provided by the OS */ -#if !HAVE_GETADDRINFO +#if !HAVE_DECL_GETADDRINFO /* SG 23/09/2007: On Windows the following definitions are already available, may be that @@ -112,6 +112,6 @@ #define gai_strerror xgai_strerror #endif -#endif /* HAVE_GETADDRINFO */ +#endif /* HAVE_DECL_GETADDRINFO */ #endif /* _getaddrinfo_h */ diff -u -r -N squid-3.5.0.4/compat/getnameinfo.c squid-3.5.1/compat/getnameinfo.c --- squid-3.5.0.4/compat/getnameinfo.c 2014-12-20 21:11:48.000000000 -0800 +++ squid-3.5.1/compat/getnameinfo.c 1969-12-31 16:00:00.000000000 -0800 @@ -1,428 +0,0 @@ -/* - * Copyright (C) 1996-2014 The Squid Software Foundation and contributors - * - * Squid software is distributed under GPLv2+ license and includes - * contributions from numerous individuals and organizations. - * Please see the COPYING and CONTRIBUTORS files for details. - */ - -/* - * Shamelessly duplicated from the fetchmail public sources - * for use by the Squid Project under GNU Public License. - * - * Update/Maintenance History: - * - * 16-Aug-2007 : Copied from fetchmail 6.3.8 - * - added protection around libray headers - * - added use of alternative name xgetnameinfo - * to split from any OS-provided. - * - * 06-Oct-2007 : Various fixes to allow the build on MinGW - * - use srtncpy instead of strlcpy - * - use xinet_ntop instead of inet_ntop - * - use SQUIDHOSTNAMELEN instead of MAXHOSTNAMELEN - * - * Original License and code follows. - */ -#include "squid.h" - -/* KAME: getnameinfo.c,v 1.72 2005/01/13 04:12:03 itojun Exp */ - -/* - * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the project nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -/* - * Issues to be discussed: - * - RFC2553 says that we should raise error on short buffer. X/Open says - * we need to truncate the result. We obey RFC2553 (and X/Open should be - * modified). ipngwg rough consensus seems to follow RFC2553. RFC3493 says - * nothing about it, but defines a new error code EAI_OVERFLOW which seems - * to be intended the code for this case. - * - What is "local" in NI_NOFQDN? (see comments in the code) - * - NI_NAMEREQD and NI_NUMERICHOST conflict with each other. - * - (KAME extension) always attach textual scopeid (fe80::1%lo0), if - * sin6_scope_id is filled - standardization status? - * - what should we do if we should do getservbyport("sctp")? - */ - -/* - * Considerations about thread-safeness - * The code in this file is thread-safe, and so the thread-safeness of - * getnameinfo() depends on the property of backend functions. - * - getservbyport() is not thread safe for most systems we are targeting. - * - getipnodebyaddr() is thread safe. However, many resolver libraries - * used in the function are not thread safe. - * - gethostbyaddr() is usually not thread safe. - */ - -#if !HAVE_GETNAMEINFO - -#include "compat/getaddrinfo.h" -#include "compat/inet_ntop.h" - -#if HAVE_SYS_SOCKET_H -#include -#endif -#if HAVE_NET_IF_H -#include -#endif -#if HAVE_NETINET_IN_H -#include -#endif -#if HAVE_ARPA_INET_H -#include -#endif -#if HAVE_ARPA_NAMESER_H -#include -#endif -#if HAVE_NETDB_H -#include -#endif -#if HAVE_RESOLV_H -#include -#endif -#if HAVE_STRING_H -#include -#endif -#if HAVE_STDDEF_H -#include -#endif -#if HAVE_ERRNO_H -#include -#endif -#if HAVE_INTTYPES_H -#include -#endif - -#if _SQUID_WINDOWS_ -#undef IN_ADDR -#include -#endif - -static const struct afd { - int a_af; - int a_addrlen; - int a_socklen; - int a_off; - int a_portoff; -} afdl [] = { -#if INET6 - { PF_INET6, sizeof(struct in6_addr), sizeof(struct sockaddr_in6), - offsetof(struct sockaddr_in6, sin6_addr), - offsetof(struct sockaddr_in6, sin6_port) - }, -#endif - { PF_INET, sizeof(struct in_addr), sizeof(struct sockaddr_in), - offsetof(struct sockaddr_in, sin_addr), - offsetof(struct sockaddr_in, sin_port) - }, - {0, 0, 0, 0, 0}, -}; - -#if INET6 -static int ip6_parsenumeric __P((const struct sockaddr *, const char *, char *, - size_t, int)); -static int ip6_sa2str __P((const struct sockaddr_in6 *, char *, size_t, int)); -#endif - -int -xgetnameinfo(sa, salen, host, hostlen, serv, servlen, flags) -const struct sockaddr *sa; -socklen_t salen; -char *host; -size_t hostlen; -char *serv; -size_t servlen; -int flags; -{ - const struct afd *afd; - struct servent *sp; - struct hostent *hp; - unsigned short port; - int family, i; - const char *addr; - uint32_t v4a; - char numserv[512]; - - if (sa == NULL) - return EAI_FAIL; - -#if HAVE_SA_LEN /*XXX*/ - if (sa->sa_len != salen) - return EAI_FAIL; -#endif - - family = sa->sa_family; - for (i = 0; afdl[i].a_af; i++) - if (afdl[i].a_af == family) { - afd = &afdl[i]; - goto found; - } - return EAI_FAMILY; - -found: - if (salen != afd->a_socklen) - return EAI_FAIL; - - /* network byte order */ - memcpy(&port, (const char *)sa + afd->a_portoff, sizeof(port)); - addr = (const char *)sa + afd->a_off; - - if (serv == NULL || servlen == 0) { - /* - * do nothing in this case. - * in case you are wondering if "&&" is more correct than - * "||" here: RFC3493 says that serv == NULL OR servlen == 0 - * means that the caller does not want the result. - */ - } else { - if (flags & NI_NUMERICSERV) - sp = NULL; - else { - sp = getservbyport(port, - (flags & NI_DGRAM) ? "udp" : "tcp"); - } - if (sp) { - if (strlen(sp->s_name) + 1 > servlen) - return EAI_OVERFLOW; - strncpy(serv, sp->s_name, servlen); - } else { - snprintf(numserv, sizeof(numserv), "%u", ntohs(port)); - if (strlen(numserv) + 1 > servlen) - return EAI_OVERFLOW; - strncpy(serv, numserv, servlen); - } - } - - switch (sa->sa_family) { - case AF_INET: - v4a = (uint32_t) - ntohl(((const struct sockaddr_in *)sa)->sin_addr.s_addr); - if (IN_MULTICAST(v4a) || IN_EXPERIMENTAL(v4a)) - flags |= NI_NUMERICHOST; - v4a >>= IN_CLASSA_NSHIFT; - if (v4a == 0) - flags |= NI_NUMERICHOST; - break; -#if INET6 - case AF_INET6: { - const struct sockaddr_in6 *sin6; - sin6 = (const struct sockaddr_in6 *)sa; - switch (sin6->sin6_addr.s6_addr[0]) { - case 0x00: - if (IN6_IS_ADDR_V4MAPPED(&sin6->sin6_addr)) - ; - else if (IN6_IS_ADDR_LOOPBACK(&sin6->sin6_addr)) - ; - else - flags |= NI_NUMERICHOST; - break; - default: - if (IN6_IS_ADDR_LINKLOCAL(&sin6->sin6_addr)) - flags |= NI_NUMERICHOST; - else if (IN6_IS_ADDR_MULTICAST(&sin6->sin6_addr)) - flags |= NI_NUMERICHOST; - break; - } - } - break; -#endif - } - if (host == NULL || hostlen == 0) { - /* - * do nothing in this case. - * in case you are wondering if "&&" is more correct than - * "||" here: RFC3493 says that host == NULL or hostlen == 0 - * means that the caller does not want the result. - */ - } else if (flags & NI_NUMERICHOST) { - /* NUMERICHOST and NAMEREQD conflicts with each other */ - if (flags & NI_NAMEREQD) - return EAI_NONAME; - - goto numeric; - } else { -#if USE_GETIPNODEBY - int h_error = 0; - hp = getipnodebyaddr(addr, afd->a_addrlen, afd->a_af, &h_error); -#else - hp = gethostbyaddr(addr, afd->a_addrlen, afd->a_af); -#if 0 // getnameinfo.c:161:9: error: variable 'h_error' set but not used -#if HAVE_H_ERRNO - h_error = h_errno; -#else - h_error = EINVAL; -#endif -#endif /* 0 */ -#endif - - if (hp) { -#if 0 - if (flags & NI_NOFQDN) { - /* - * According to RFC3493 section 6.2, NI_NOFQDN - * means "node name portion of the FQDN shall - * be returned for local hosts." The following - * code tries to implement it by returning the - * first label (the part before the first - * period) of the FQDN. However, it is not - * clear if this always makes sense, since the - * given address may be outside of "local - * hosts." Due to the unclear description, we - * disable the code in this implementation. - */ - char *p; - p = strchr(hp->h_name, '.'); - if (p) - *p = '\0'; - } -#endif - if (strlen(hp->h_name) + 1 > hostlen) { -#if USE_GETIPNODEBY - freehostent(hp); -#endif - return EAI_OVERFLOW; - } - strncpy(host, hp->h_name, hostlen); -#if USE_GETIPNODEBY - freehostent(hp); -#endif - } else { - if (flags & NI_NAMEREQD) - return EAI_NONAME; - -numeric: - switch (afd->a_af) { -#if INET6 - case AF_INET6: { - int error; - - if ((error = ip6_parsenumeric(sa, addr, host, - hostlen, - flags)) != 0) - return(error); - break; - } -#endif - default: - if (inet_ntop(afd->a_af, addr, host, - hostlen) == NULL) - return EAI_SYSTEM; - break; - } - } - } - return(0); -} - -#if INET6 -static int -ip6_parsenumeric(sa, addr, host, hostlen, flags) -const struct sockaddr *sa; -const char *addr; -char *host; -size_t hostlen; -int flags; -{ - int numaddrlen; - char numaddr[512]; - - if (inet_ntop(AF_INET6, addr, numaddr, sizeof(numaddr)) == NULL) - return EAI_SYSTEM; - - numaddrlen = strlen(numaddr); - if (numaddrlen + 1 > hostlen) /* don't forget terminator */ - return EAI_OVERFLOW; - strncpy(host, numaddr, hostlen); - - if (((const struct sockaddr_in6 *)sa)->sin6_scope_id) { - char zonebuf[SQUIDHOSTNAMELEN]; - int zonelen; - - zonelen = ip6_sa2str( - (const struct sockaddr_in6 *)(const void *)sa, - zonebuf, sizeof(zonebuf), flags); - if (zonelen < 0) - return EAI_OVERFLOW; - if (zonelen + 1 + numaddrlen + 1 > hostlen) - return EAI_OVERFLOW; - - /* construct */ - memcpy(host + numaddrlen + 1, zonebuf, - (size_t)zonelen); - host[numaddrlen] = SCOPE_DELIMITER; - host[numaddrlen + 1 + zonelen] = '\0'; - } - - return 0; -} - -/* ARGSUSED */ -static int -ip6_sa2str(sa6, buf, bufsiz, flags) -const struct sockaddr_in6 *sa6; -char *buf; -size_t bufsiz; -int flags; -{ - unsigned int ifindex; - const struct in6_addr *a6; - int n; - - ifindex = (unsigned int)sa6->sin6_scope_id; - a6 = &sa6->sin6_addr; - -#if NI_NUMERICSCOPE - if ((flags & NI_NUMERICSCOPE) != 0) { - n = snprintf(buf, bufsiz, "%u", sa6->sin6_scope_id); - if (n < 0 || n >= bufsiz) - return -1; - else - return n; - } -#endif - - /* if_indextoname() does not take buffer size. not a good api... */ - if ((IN6_IS_ADDR_LINKLOCAL(a6) || IN6_IS_ADDR_MC_LINKLOCAL(a6) || - IN6_IS_ADDR_MC_NODELOCAL(a6)) && bufsiz >= IF_NAMESIZE) { - char *p = if_indextoname(ifindex, buf); - if (p) - return (strlen(p)); - } - - /* last resort */ - n = snprintf(buf, bufsiz, "%u", sa6->sin6_scope_id); - if (n < 0 || n >= bufsiz) - return -1; - else - return n; -} -#endif /* INET6 */ -#endif - diff -u -r -N squid-3.5.0.4/compat/getnameinfo.cc squid-3.5.1/compat/getnameinfo.cc --- squid-3.5.0.4/compat/getnameinfo.cc 1969-12-31 16:00:00.000000000 -0800 +++ squid-3.5.1/compat/getnameinfo.cc 2015-01-13 04:52:01.000000000 -0800 @@ -0,0 +1,420 @@ +/* + * Copyright (C) 1996-2015 The Squid Software Foundation and contributors + * + * Squid software is distributed under GPLv2+ license and includes + * contributions from numerous individuals and organizations. + * Please see the COPYING and CONTRIBUTORS files for details. + */ + +/* + * Shamelessly duplicated from the fetchmail public sources + * for use by the Squid Project under GNU Public License. + * + * Update/Maintenance History: + * + * 16-Aug-2007 : Copied from fetchmail 6.3.8 + * - added protection around libray headers + * - added use of alternative name xgetnameinfo + * to split from any OS-provided. + * + * 06-Oct-2007 : Various fixes to allow the build on MinGW + * - use srtncpy instead of strlcpy + * - use xinet_ntop instead of inet_ntop + * - use SQUIDHOSTNAMELEN instead of MAXHOSTNAMELEN + * + * 13-Jan-2015 : Various fixed for C++ and MinGW native build + * + * Original License and code follows. + */ +#include "squid.h" + +/* KAME: getnameinfo.c,v 1.72 2005/01/13 04:12:03 itojun Exp */ + +/* + * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the project nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +/* + * Issues to be discussed: + * - RFC2553 says that we should raise error on short buffer. X/Open says + * we need to truncate the result. We obey RFC2553 (and X/Open should be + * modified). ipngwg rough consensus seems to follow RFC2553. RFC3493 says + * nothing about it, but defines a new error code EAI_OVERFLOW which seems + * to be intended the code for this case. + * - What is "local" in NI_NOFQDN? (see comments in the code) + * - NI_NAMEREQD and NI_NUMERICHOST conflict with each other. + * - (KAME extension) always attach textual scopeid (fe80::1%lo0), if + * sin6_scope_id is filled - standardization status? + * - what should we do if we should do getservbyport("sctp")? + */ + +/* + * Considerations about thread-safeness + * The code in this file is thread-safe, and so the thread-safeness of + * getnameinfo() depends on the property of backend functions. + * - getservbyport() is not thread safe for most systems we are targeting. + * - getipnodebyaddr() is thread safe. However, many resolver libraries + * used in the function are not thread safe. + * - gethostbyaddr() is usually not thread safe. + */ + +#if !HAVE_DECL_GETNAMEINFO + +#if HAVE_SYS_SOCKET_H +#include +#endif +#if HAVE_NET_IF_H +#include +#endif +#if HAVE_NETINET_IN_H +#include +#endif +#if HAVE_ARPA_INET_H +#include +#endif +#if HAVE_ARPA_NAMESER_H +#include +#endif +#if HAVE_NETDB_H +#include +#endif +#if HAVE_RESOLV_H +#include +#endif +#if HAVE_STRING_H +#include +#endif +#if HAVE_STDDEF_H +#include +#endif +#if HAVE_ERRNO_H +#include +#endif +#if HAVE_INTTYPES_H +#include +#endif + +#if _SQUID_WINDOWS_ +#undef IN_ADDR +#include +#endif + +static const struct afd { + int a_af; + int a_addrlen; + int a_socklen; + int a_off; + int a_portoff; +} afdl [] = { +#if INET6 + { PF_INET6, sizeof(struct in6_addr), sizeof(struct sockaddr_in6), + offsetof(struct sockaddr_in6, sin6_addr), + offsetof(struct sockaddr_in6, sin6_port) + }, +#endif + { PF_INET, sizeof(struct in_addr), sizeof(struct sockaddr_in), + offsetof(struct sockaddr_in, sin_addr), + offsetof(struct sockaddr_in, sin_port) + }, + {0, 0, 0, 0, 0}, +}; + +#if INET6 +static int ip6_parsenumeric __P((const struct sockaddr *, const char *, char *, + size_t, int)); +static int ip6_sa2str __P((const struct sockaddr_in6 *, char *, size_t, int)); +#endif + +int +xgetnameinfo(const struct sockaddr *sa, socklen_t salen, char *host, size_t hostlen, char *serv, size_t servlen, int flags) +{ + const struct afd *afd; + struct servent *sp; + struct hostent *hp; + unsigned short port; + int family, i; + const char *addr; + uint32_t v4a; + char numserv[512]; + + if (sa == NULL) + return EAI_FAIL; + +#if HAVE_SA_LEN /*XXX*/ + if (sa->sa_len != salen) + return EAI_FAIL; +#endif + + family = sa->sa_family; + for (i = 0; afdl[i].a_af; i++) + if (afdl[i].a_af == family) { + afd = &afdl[i]; + goto found; + } + return EAI_FAMILY; + +found: + if (salen != afd->a_socklen) + return EAI_FAIL; + + /* network byte order */ + memcpy(&port, (const char *)sa + afd->a_portoff, sizeof(port)); + addr = (const char *)sa + afd->a_off; + + if (serv == NULL || servlen == 0) { + /* + * do nothing in this case. + * in case you are wondering if "&&" is more correct than + * "||" here: RFC3493 says that serv == NULL OR servlen == 0 + * means that the caller does not want the result. + */ + } else { + if (flags & NI_NUMERICSERV) + sp = NULL; + else { + sp = getservbyport(port, + (flags & NI_DGRAM) ? "udp" : "tcp"); + } + if (sp) { + if (strlen(sp->s_name) + 1 > servlen) + return EAI_OVERFLOW; + strncpy(serv, sp->s_name, servlen); + } else { + snprintf(numserv, sizeof(numserv), "%u", ntohs(port)); + if (strlen(numserv) + 1 > servlen) + return EAI_OVERFLOW; + strncpy(serv, numserv, servlen); + } + } + + switch (sa->sa_family) { + case AF_INET: + v4a = (uint32_t) + ntohl(((const struct sockaddr_in *)sa)->sin_addr.s_addr); + if (IN_MULTICAST(v4a) || IN_EXPERIMENTAL(v4a)) + flags |= NI_NUMERICHOST; + v4a >>= IN_CLASSA_NSHIFT; + if (v4a == 0) + flags |= NI_NUMERICHOST; + break; +#if INET6 + case AF_INET6: { + const struct sockaddr_in6 *sin6; + sin6 = (const struct sockaddr_in6 *)sa; + switch (sin6->sin6_addr.s6_addr[0]) { + case 0x00: + if (IN6_IS_ADDR_V4MAPPED(&sin6->sin6_addr)) + ; + else if (IN6_IS_ADDR_LOOPBACK(&sin6->sin6_addr)) + ; + else + flags |= NI_NUMERICHOST; + break; + default: + if (IN6_IS_ADDR_LINKLOCAL(&sin6->sin6_addr)) + flags |= NI_NUMERICHOST; + else if (IN6_IS_ADDR_MULTICAST(&sin6->sin6_addr)) + flags |= NI_NUMERICHOST; + break; + } + } + break; +#endif + } + if (host == NULL || hostlen == 0) { + /* + * do nothing in this case. + * in case you are wondering if "&&" is more correct than + * "||" here: RFC3493 says that host == NULL or hostlen == 0 + * means that the caller does not want the result. + */ + } else if (flags & NI_NUMERICHOST) { + /* NUMERICHOST and NAMEREQD conflicts with each other */ + if (flags & NI_NAMEREQD) + return EAI_NONAME; + + goto numeric; + } else { +#if USE_GETIPNODEBY + int h_error = 0; + hp = getipnodebyaddr(addr, afd->a_addrlen, afd->a_af, &h_error); +#else + hp = gethostbyaddr(addr, afd->a_addrlen, afd->a_af); +#if 0 // getnameinfo.c:161:9: error: variable 'h_error' set but not used +#if HAVE_H_ERRNO + h_error = h_errno; +#else + h_error = EINVAL; +#endif +#endif /* 0 */ +#endif + + if (hp) { +#if 0 + if (flags & NI_NOFQDN) { + /* + * According to RFC3493 section 6.2, NI_NOFQDN + * means "node name portion of the FQDN shall + * be returned for local hosts." The following + * code tries to implement it by returning the + * first label (the part before the first + * period) of the FQDN. However, it is not + * clear if this always makes sense, since the + * given address may be outside of "local + * hosts." Due to the unclear description, we + * disable the code in this implementation. + */ + char *p; + p = strchr(hp->h_name, '.'); + if (p) + *p = '\0'; + } +#endif + if (strlen(hp->h_name) + 1 > hostlen) { +#if USE_GETIPNODEBY + freehostent(hp); +#endif + return EAI_OVERFLOW; + } + strncpy(host, hp->h_name, hostlen); +#if USE_GETIPNODEBY + freehostent(hp); +#endif + } else { + if (flags & NI_NAMEREQD) + return EAI_NONAME; + +numeric: + switch (afd->a_af) { +#if INET6 + case AF_INET6: { + int error; + + if ((error = ip6_parsenumeric(sa, addr, host, + hostlen, + flags)) != 0) + return(error); + break; + } +#endif + default: + if (inet_ntop(afd->a_af, addr, host, + hostlen) == NULL) + return EAI_SYSTEM; + break; + } + } + } + return(0); +} + +#if INET6 +static int +ip6_parsenumeric(sa, addr, host, hostlen, flags) +const struct sockaddr *sa; +const char *addr; +char *host; +size_t hostlen; +int flags; +{ + int numaddrlen; + char numaddr[512]; + + if (inet_ntop(AF_INET6, addr, numaddr, sizeof(numaddr)) == NULL) + return EAI_SYSTEM; + + numaddrlen = strlen(numaddr); + if (numaddrlen + 1 > hostlen) /* don't forget terminator */ + return EAI_OVERFLOW; + strncpy(host, numaddr, hostlen); + + if (((const struct sockaddr_in6 *)sa)->sin6_scope_id) { + char zonebuf[SQUIDHOSTNAMELEN]; + int zonelen; + + zonelen = ip6_sa2str( + (const struct sockaddr_in6 *)(const void *)sa, + zonebuf, sizeof(zonebuf), flags); + if (zonelen < 0) + return EAI_OVERFLOW; + if (zonelen + 1 + numaddrlen + 1 > hostlen) + return EAI_OVERFLOW; + + /* construct */ + memcpy(host + numaddrlen + 1, zonebuf, + (size_t)zonelen); + host[numaddrlen] = SCOPE_DELIMITER; + host[numaddrlen + 1 + zonelen] = '\0'; + } + + return 0; +} + +/* ARGSUSED */ +static int +ip6_sa2str(sa6, buf, bufsiz, flags) +const struct sockaddr_in6 *sa6; +char *buf; +size_t bufsiz; +int flags; +{ + unsigned int ifindex; + const struct in6_addr *a6; + int n; + + ifindex = (unsigned int)sa6->sin6_scope_id; + a6 = &sa6->sin6_addr; + +#if NI_NUMERICSCOPE + if ((flags & NI_NUMERICSCOPE) != 0) { + n = snprintf(buf, bufsiz, "%u", sa6->sin6_scope_id); + if (n < 0 || n >= bufsiz) + return -1; + else + return n; + } +#endif + + /* if_indextoname() does not take buffer size. not a good api... */ + if ((IN6_IS_ADDR_LINKLOCAL(a6) || IN6_IS_ADDR_MC_LINKLOCAL(a6) || + IN6_IS_ADDR_MC_NODELOCAL(a6)) && bufsiz >= IF_NAMESIZE) { + char *p = if_indextoname(ifindex, buf); + if (p) + return (strlen(p)); + } + + /* last resort */ + n = snprintf(buf, bufsiz, "%u", sa6->sin6_scope_id); + if (n < 0 || n >= bufsiz) + return -1; + else + return n; +} +#endif /* INET6 */ +#endif /* HAVE_DECL_GETNAMEINFO */ + diff -u -r -N squid-3.5.0.4/compat/getnameinfo.h squid-3.5.1/compat/getnameinfo.h --- squid-3.5.0.4/compat/getnameinfo.h 2014-12-20 21:11:48.000000000 -0800 +++ squid-3.5.1/compat/getnameinfo.h 2015-01-13 04:52:01.000000000 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (C) 1996-2014 The Squid Software Foundation and contributors + * Copyright (C) 1996-2015 The Squid Software Foundation and contributors * * Squid software is distributed under GPLv2+ license and includes * contributions from numerous individuals and organizations. @@ -9,7 +9,7 @@ #ifndef _getnameinfo_h #define _getnameinfo_h -#if !HAVE_GETNAMEINFO +#if !HAVE_DECL_GETNAMEINFO // RFC 2553 / Posix resolver // Reconstructed from KAME getnameinfo.c @@ -22,6 +22,6 @@ int flags ); #define getnameinfo xgetnameinfo -#endif /* HAVE_GETNAMEINFO */ +#endif /* HAVE_DECL_GETNAMEINFO */ #endif /* _getnameinfo_h */ diff -u -r -N squid-3.5.0.4/compat/GnuRegex.c squid-3.5.1/compat/GnuRegex.c --- squid-3.5.0.4/compat/GnuRegex.c 2014-12-20 21:11:48.000000000 -0800 +++ squid-3.5.1/compat/GnuRegex.c 2015-01-13 04:52:01.000000000 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (C) 1996-2014 The Squid Software Foundation and contributors + * Copyright (C) 1996-2015 The Squid Software Foundation and contributors * * Squid software is distributed under GPLv2+ license and includes * contributions from numerous individuals and organizations. diff -u -r -N squid-3.5.0.4/compat/GnuRegex.h squid-3.5.1/compat/GnuRegex.h --- squid-3.5.0.4/compat/GnuRegex.h 2014-12-20 21:11:48.000000000 -0800 +++ squid-3.5.1/compat/GnuRegex.h 2015-01-13 04:52:01.000000000 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (C) 1996-2014 The Squid Software Foundation and contributors + * Copyright (C) 1996-2015 The Squid Software Foundation and contributors * * Squid software is distributed under GPLv2+ license and includes * contributions from numerous individuals and organizations. diff -u -r -N squid-3.5.0.4/compat/inet_ntop.c squid-3.5.1/compat/inet_ntop.c --- squid-3.5.0.4/compat/inet_ntop.c 2014-12-20 21:11:48.000000000 -0800 +++ squid-3.5.1/compat/inet_ntop.c 1969-12-31 16:00:00.000000000 -0800 @@ -1,257 +0,0 @@ -/* - * Copyright (C) 1996-2014 The Squid Software Foundation and contributors - * - * Squid software is distributed under GPLv2+ license and includes - * contributions from numerous individuals and organizations. - * Please see the COPYING and CONTRIBUTORS files for details. - */ - -/* - * Shamelessly duplicated from the bind9 public sources - * for use by the Squid Project under ISC written permission - * included "as found" below. - * - * Update/Maintenance History: - * - * 24-Sep-2007 : Copied from bind 9.3.3 - * - Added protection around libray headers - * - Altered configure checks - * - Un-hacked slightly to use system gethostbyname() - * - * 06-Oct-2007 : Various fixes to allow the build on MinGW - * - * 28-Oct-2007: drop some dead code. now tested working without. - * - * 04-Nov-2010: drop SPRINTF casting macro - * - * Original License and code follows. - */ - -#include "squid.h" - -#if !HAVE_INET_NTOP -#include "inet_ntop.h" - -/* - * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC") - * Copyright (c) 1996-1999 by Internet Software Consortium. - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT - * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -#if defined(LIBC_SCCS) && !defined(lint) -static const char rcsid[] = "inet_ntop.c,v 1.1.2.1.8.2 2005/11/03 23:08:40 marka Exp"; -#endif /* LIBC_SCCS and not lint */ - -#if HAVE_SYS_PARAM_H -#include -#endif -#if HAVE_SYS_TYPES_H -#include -#endif -#if HAVE_SYS_SOCKET_H -#include -#endif - -#if HAVE_NETINET_IN_H -#include -#endif -#if HAVE_ARPA_INET_H -#include -#endif -#if HAVE_ARPA_NAMESER_H -#include -#endif - -#if HAVE_ERRNO_H -#include -#endif -#if HAVE_STRING_H -#include -#endif - -#if ! defined(NS_INADDRSZ) -#define NS_INADDRSZ 4 -#endif -#if ! defined(NS_IN6ADDRSZ) -#define NS_IN6ADDRSZ 16 -#endif -#if ! defined(NS_INT16SZ) -#define NS_INT16SZ 2 -#endif - -/* - * WARNING: Don't even consider trying to compile this on a system where - * sizeof(int) < 4. sizeof(int) > 4 is fine; all the world's not a VAX. - */ - -static const char *inet_ntop4 (const u_char *src, char *dst, size_t size); -static const char *inet_ntop6 (const u_char *src, char *dst, size_t size); - -/* char * - * inet_ntop(af, src, dst, size) - * convert a network format address to presentation format. - * return: - * pointer to presentation format address (`dst'), or NULL (see errno). - * author: - * Paul Vixie, 1996. - */ -const char * -xinet_ntop(af, src, dst, size) -int af; -const void *src; -char *dst; -size_t size; -{ - switch (af) { - case AF_INET: - return (inet_ntop4(src, dst, size)); - case AF_INET6: - return (inet_ntop6(src, dst, size)); - default: - errno = EAFNOSUPPORT; - return (NULL); - } - /* NOTREACHED */ -} - -/* const char * - * inet_ntop4(src, dst, size) - * format an IPv4 address - * return: - * `dst' (as a const) - * notes: - * (1) uses no statics - * (2) takes a u_char* not an in_addr as input - * author: - * Paul Vixie, 1996. - */ -static const char * -inet_ntop4(src, dst, size) -const u_char *src; -char *dst; -size_t size; -{ - static const char fmt[] = "%u.%u.%u.%u"; - char tmp[sizeof "255.255.255.255"]; - - if (snprintf(tmp, min(sizeof("255.255.255.255"),size), fmt, src[0], src[1], src[2], src[3]) >= size) { - errno = ENOSPC; - return (NULL); - } - strcpy(dst, tmp); - return (dst); -} - -/* const char * - * inet_ntop6(src, dst, size) - * convert IPv6 binary address into presentation (printable) format - * author: - * Paul Vixie, 1996. - */ -static const char * -inet_ntop6(src, dst, size) -const u_char *src; -char *dst; -size_t size; -{ - /* - * Note that int32_t and int16_t need only be "at least" large enough - * to contain a value of the specified size. On some systems, like - * Crays, there is no such thing as an integer variable with 16 bits. - * Keep this in mind if you think this function should have been coded - * to use pointer overlays. All the world's not a VAX. - */ - char tmp[sizeof "ffff:ffff:ffff:ffff:ffff:ffff:255.255.255.255"], *tp; - struct { int base, len; } best, cur; - u_int words[NS_IN6ADDRSZ / NS_INT16SZ]; - int i; - - /* - * Preprocess: - * Copy the input (bytewise) array into a wordwise array. - * Find the longest run of 0x00's in src[] for :: shorthanding. - */ - memset(words, '\0', sizeof words); - for (i = 0; i < NS_IN6ADDRSZ; i++) - words[i / 2] |= (src[i] << ((1 - (i % 2)) << 3)); - best.base = -1; - best.len = 0; - cur.base = -1; - cur.len = 0; - for (i = 0; i < (NS_IN6ADDRSZ / NS_INT16SZ); i++) { - if (words[i] == 0) { - if (cur.base == -1) - cur.base = i, cur.len = 1; - else - cur.len++; - } else { - if (cur.base != -1) { - if (best.base == -1 || cur.len > best.len) - best = cur; - cur.base = -1; - } - } - } - if (cur.base != -1) { - if (best.base == -1 || cur.len > best.len) - best = cur; - } - if (best.base != -1 && best.len < 2) - best.base = -1; - - /* - * Format the result. - */ - tp = tmp; - for (i = 0; i < (NS_IN6ADDRSZ / NS_INT16SZ); i++) { - /* Are we inside the best run of 0x00's? */ - if (best.base != -1 && i >= best.base && - i < (best.base + best.len)) { - if (i == best.base) - *tp++ = ':'; - continue; - } - /* Are we following an initial run of 0x00s or any real hex? */ - if (i != 0) - *tp++ = ':'; - /* Is this address an encapsulated IPv4? */ - if (i == 6 && best.base == 0 && (best.len == 6 || - (best.len == 7 && words[7] != 0x0001) || - (best.len == 5 && words[5] == 0xffff))) { - if (!inet_ntop4(src+12, tp, sizeof tmp - (tp - tmp))) - return (NULL); - tp += strlen(tp); - break; - } - tp += snprintf(tp, (tmp + sizeof("ffff:ffff:ffff:ffff:ffff:ffff:255.255.255.255") - tp), "%x", words[i]); - } - /* Was it a trailing run of 0x00's? */ - if (best.base != -1 && (best.base + best.len) == - (NS_IN6ADDRSZ / NS_INT16SZ)) - *tp++ = ':'; - *tp++ = '\0'; - - /* - * Check for overflow, copy, and we're done. - */ - if ((size_t)(tp - tmp) > size) { - errno = ENOSPC; - return (NULL); - } - strcpy(dst, tmp); - return (dst); -} - -#endif /* HAVE_INET_NTOP */ - diff -u -r -N squid-3.5.0.4/compat/inet_ntop.cc squid-3.5.1/compat/inet_ntop.cc --- squid-3.5.0.4/compat/inet_ntop.cc 1969-12-31 16:00:00.000000000 -0800 +++ squid-3.5.1/compat/inet_ntop.cc 2015-01-13 04:52:01.000000000 -0800 @@ -0,0 +1,248 @@ +/* + * Copyright (C) 1996-2015 The Squid Software Foundation and contributors + * + * Squid software is distributed under GPLv2+ license and includes + * contributions from numerous individuals and organizations. + * Please see the COPYING and CONTRIBUTORS files for details. + */ + +/* + * Shamelessly duplicated from the bind9 public sources + * for use by the Squid Project under ISC written permission + * included "as found" below. + * + * Update/Maintenance History: + * + * 24-Sep-2007 : Copied from bind 9.3.3 + * - Added protection around libray headers + * - Altered configure checks + * - Un-hacked slightly to use system gethostbyname() + * + * 06-Oct-2007 : Various fixes to allow the build on MinGW + * + * 28-Oct-2007: drop some dead code. now tested working without. + * + * 04-Nov-2010: drop SPRINTF casting macro + * + * 13-Jan-2015 : Various fixed for C++ and MinGW native build + * + * Original License and code follows. + */ + +#include "squid.h" + +#if !HAVE_DECL_INET_NTOP + +/* + * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC") + * Copyright (c) 1996-1999 by Internet Software Consortium. + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT + * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +#if defined(LIBC_SCCS) && !defined(lint) +static const char rcsid[] = "inet_ntop.c,v 1.1.2.1.8.2 2005/11/03 23:08:40 marka Exp"; +#endif /* LIBC_SCCS and not lint */ + +#if HAVE_SYS_PARAM_H +#include +#endif +#if HAVE_SYS_TYPES_H +#include +#endif +#if HAVE_SYS_SOCKET_H +#include +#endif + +#if HAVE_NETINET_IN_H +#include +#endif +#if HAVE_ARPA_INET_H +#include +#endif +#if HAVE_ARPA_NAMESER_H +#include +#endif + +#if HAVE_ERRNO_H +#include +#endif +#if HAVE_STRING_H +#include +#endif + +#if ! defined(NS_INADDRSZ) +#define NS_INADDRSZ 4 +#endif +#if ! defined(NS_IN6ADDRSZ) +#define NS_IN6ADDRSZ 16 +#endif +#if ! defined(NS_INT16SZ) +#define NS_INT16SZ 2 +#endif + +/* + * WARNING: Don't even consider trying to compile this on a system where + * sizeof(int) < 4. sizeof(int) > 4 is fine; all the world's not a VAX. + */ + +static const char *inet_ntop4 (const u_char *src, char *dst, size_t size); +static const char *inet_ntop6 (const u_char *src, char *dst, size_t size); + +/* char * + * inet_ntop(af, src, dst, size) + * convert a network format address to presentation format. + * return: + * pointer to presentation format address (`dst'), or NULL (see errno). + * author: + * Paul Vixie, 1996. + */ +const char * +xinet_ntop(int af, const void *src, char *dst, size_t size) +{ + switch (af) { + case AF_INET: + return (inet_ntop4((const u_char*)src, dst, size)); + case AF_INET6: + return (inet_ntop6((const u_char*)src, dst, size)); + default: + errno = EAFNOSUPPORT; + return (NULL); + } + /* NOTREACHED */ +} + +/* const char * + * inet_ntop4(src, dst, size) + * format an IPv4 address + * return: + * `dst' (as a const) + * notes: + * (1) uses no statics + * (2) takes a u_char* not an in_addr as input + * author: + * Paul Vixie, 1996. + */ +static const char * +inet_ntop4(const u_char *src, char *dst, size_t size) +{ + static const char fmt[] = "%u.%u.%u.%u"; + char tmp[sizeof("255.255.255.255")+1]; + + if ((size_t)snprintf(tmp, min(sizeof(tmp),size), fmt, src[0], src[1], src[2], src[3]) >= size) { + errno = ENOSPC; + return (NULL); + } + strcpy(dst, tmp); + return (dst); +} + +/* const char * + * inet_ntop6(src, dst, size) + * convert IPv6 binary address into presentation (printable) format + * author: + * Paul Vixie, 1996. + */ +static const char * +inet_ntop6(const u_char *src, char *dst, size_t size) +{ + /* + * Note that int32_t and int16_t need only be "at least" large enough + * to contain a value of the specified size. On some systems, like + * Crays, there is no such thing as an integer variable with 16 bits. + * Keep this in mind if you think this function should have been coded + * to use pointer overlays. All the world's not a VAX. + */ + char tmp[sizeof "ffff:ffff:ffff:ffff:ffff:ffff:255.255.255.255"], *tp; + struct { int base, len; } best, cur; + u_int words[NS_IN6ADDRSZ / NS_INT16SZ]; + int i; + + /* + * Preprocess: + * Copy the input (bytewise) array into a wordwise array. + * Find the longest run of 0x00's in src[] for :: shorthanding. + */ + memset(words, '\0', sizeof words); + for (i = 0; i < NS_IN6ADDRSZ; i++) + words[i / 2] |= (src[i] << ((1 - (i % 2)) << 3)); + best.base = -1; + best.len = 0; + cur.base = -1; + cur.len = 0; + for (i = 0; i < (NS_IN6ADDRSZ / NS_INT16SZ); i++) { + if (words[i] == 0) { + if (cur.base == -1) + cur.base = i, cur.len = 1; + else + cur.len++; + } else { + if (cur.base != -1) { + if (best.base == -1 || cur.len > best.len) + best = cur; + cur.base = -1; + } + } + } + if (cur.base != -1) { + if (best.base == -1 || cur.len > best.len) + best = cur; + } + if (best.base != -1 && best.len < 2) + best.base = -1; + + /* + * Format the result. + */ + tp = tmp; + for (i = 0; i < (NS_IN6ADDRSZ / NS_INT16SZ); i++) { + /* Are we inside the best run of 0x00's? */ + if (best.base != -1 && i >= best.base && + i < (best.base + best.len)) { + if (i == best.base) + *tp++ = ':'; + continue; + } + /* Are we following an initial run of 0x00s or any real hex? */ + if (i != 0) + *tp++ = ':'; + /* Is this address an encapsulated IPv4? */ + if (i == 6 && best.base == 0 && (best.len == 6 || + (best.len == 7 && words[7] != 0x0001) || + (best.len == 5 && words[5] == 0xffff))) { + if (!inet_ntop4(src+12, tp, sizeof tmp - (tp - tmp))) + return (NULL); + tp += strlen(tp); + break; + } + tp += snprintf(tp, (tmp + sizeof("ffff:ffff:ffff:ffff:ffff:ffff:255.255.255.255") - tp), "%x", words[i]); + } + /* Was it a trailing run of 0x00's? */ + if (best.base != -1 && (best.base + best.len) == + (NS_IN6ADDRSZ / NS_INT16SZ)) + *tp++ = ':'; + *tp++ = '\0'; + + /* + * Check for overflow, copy, and we're done. + */ + if ((size_t)(tp - tmp) > size) { + errno = ENOSPC; + return (NULL); + } + strcpy(dst, tmp); + return (dst); +} + +#endif /* HAVE_DECL_INET_NTOP */ + diff -u -r -N squid-3.5.0.4/compat/inet_ntop.h squid-3.5.1/compat/inet_ntop.h --- squid-3.5.0.4/compat/inet_ntop.h 2014-12-20 21:11:48.000000000 -0800 +++ squid-3.5.1/compat/inet_ntop.h 2015-01-13 04:52:01.000000000 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (C) 1996-2014 The Squid Software Foundation and contributors + * Copyright (C) 1996-2015 The Squid Software Foundation and contributors * * Squid software is distributed under GPLv2+ license and includes * contributions from numerous individuals and organizations. @@ -10,7 +10,7 @@ #define _INC_INET_NTOP_H /* Use the system provided version where possible */ -#if !HAVE_INET_NTOP +#if !HAVE_DECL_INET_NTOP /* char * * inet_ntop(af, src, dst, size) @@ -23,6 +23,6 @@ SQUIDCEXTERN const char * xinet_ntop(int af, const void *src, char *dst, size_t size); #define inet_ntop xinet_ntop -#endif +#endif /* HAVE_DECL_INET_NTOP */ #endif /* _INC_INET_NTOP_H */ diff -u -r -N squid-3.5.0.4/compat/inet_pton.c squid-3.5.1/compat/inet_pton.c --- squid-3.5.0.4/compat/inet_pton.c 2014-12-20 21:11:48.000000000 -0800 +++ squid-3.5.1/compat/inet_pton.c 1969-12-31 16:00:00.000000000 -0800 @@ -1,278 +0,0 @@ -/* - * Copyright (C) 1996-2014 The Squid Software Foundation and contributors - * - * Squid software is distributed under GPLv2+ license and includes - * contributions from numerous individuals and organizations. - * Please see the COPYING and CONTRIBUTORS files for details. - */ - -/* - * Shamelessly duplicated from the bind9 public sources - * for use by the Squid Project under ISC written permission - * included "as found" below. - * - * Update/Maintenance History: - * - * 24-Sep-2007 : Copied from bind 9.3.3 - * - Added protection around libray headers - * - Altered configure checks to import - * - * 06-Oct-2007 : Various fixes to allow the build on MinGW - * - * 28-Oct-2007: drop some dead code. now tested working without. - * - * Original License and code follows. - */ - -#include "squid.h" - -#if !HAVE_INET_PTON - -/* - * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC") - * Copyright (c) 1996,1999 by Internet Software Consortium. - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT - * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -#if defined(LIBC_SCCS) && !defined(lint) -static const char rcsid[] = "inet_pton.c,v 1.2.206.2 2005/07/28 07:43:18 marka Exp"; -#endif /* LIBC_SCCS and not lint */ - -#if HAVE_SYS_PARAM_H -#include -#endif -#if HAVE_SYS_TYPES_H -#include -#endif -#if HAVE_SYS_SOCKET_H -#include -#endif -#if HAVE_NETINET_IN_H -#include -#endif -#if ARPA_INET_H -#include -#endif -#if HAVE_ARPA_NAMESER_H -#include -#endif -#if HAVE_STRING_H -#include -#endif -#if HAVE_ERRNO_H -#include -#endif - -#if ! defined(NS_INADDRSZ) -#define NS_INADDRSZ 4 -#endif -#if ! defined(NS_IN6ADDRSZ) -#define NS_IN6ADDRSZ 16 -#endif -#if ! defined(NS_INT16SZ) -#define NS_INT16SZ 2 -#endif - -/* - * WARNING: Don't even consider trying to compile this on a system where - * sizeof(int) < 4. sizeof(int) > 4 is fine; all the world's not a VAX. - */ - -static int inet_pton4 (const char *src, u_char *dst); -static int inet_pton6 (const char *src, u_char *dst); - -/* int - * inet_pton(af, src, dst) - * convert from presentation format (which usually means ASCII printable) - * to network format (which is usually some kind of binary format). - * return: - * 1 if the address was valid for the specified address family - * 0 if the address wasn't valid (`dst' is untouched in this case) - * -1 if some other error occurred (`dst' is untouched in this case, too) - * author: - * Paul Vixie, 1996. - */ -int -xinet_pton(af, src, dst) -int af; -const char *src; -void *dst; -{ - switch (af) { - case AF_INET: - return (inet_pton4(src, dst)); - case AF_INET6: - return (inet_pton6(src, dst)); - default: - errno = EAFNOSUPPORT; - return (-1); - } - /* NOTREACHED */ -} - -/* int - * inet_pton4(src, dst) - * like inet_aton() but without all the hexadecimal and shorthand. - * return: - * 1 if `src' is a valid dotted quad, else 0. - * notice: - * does not touch `dst' unless it's returning 1. - * author: - * Paul Vixie, 1996. - */ -static int -inet_pton4(src, dst) -const char *src; -u_char *dst; -{ - static const char digits[] = "0123456789"; - int saw_digit, octets, ch; - u_char tmp[NS_INADDRSZ], *tp; - - saw_digit = 0; - octets = 0; - *(tp = tmp) = 0; - while ((ch = *src++) != '\0') { - const char *pch; - - if ((pch = strchr(digits, ch)) != NULL) { - u_int new = *tp * 10 + (pch - digits); - - if (saw_digit && *tp == 0) - return (0); - if (new > 255) - return (0); - *tp = new; - if (!saw_digit) { - if (++octets > 4) - return (0); - saw_digit = 1; - } - } else if (ch == '.' && saw_digit) { - if (octets == 4) - return (0); - *++tp = 0; - saw_digit = 0; - } else - return (0); - } - if (octets < 4) - return (0); - memcpy(dst, tmp, NS_INADDRSZ); - return (1); -} - -/* int - * inet_pton6(src, dst) - * convert presentation level address to network order binary form. - * return: - * 1 if `src' is a valid [RFC1884 2.2] address, else 0. - * notice: - * (1) does not touch `dst' unless it's returning 1. - * (2) :: in a full address is silently ignored. - * credit: - * inspired by Mark Andrews. - * author: - * Paul Vixie, 1996. - */ -static int -inet_pton6(src, dst) -const char *src; -u_char *dst; -{ - static const char xdigits_l[] = "0123456789abcdef", - xdigits_u[] = "0123456789ABCDEF"; - u_char tmp[NS_IN6ADDRSZ], *tp, *endp, *colonp; - const char *xdigits, *curtok; - int ch, seen_xdigits; - u_int val; - - memset((tp = tmp), '\0', NS_IN6ADDRSZ); - endp = tp + NS_IN6ADDRSZ; - colonp = NULL; - /* Leading :: requires some special handling. */ - if (*src == ':') - if (*++src != ':') - return (0); - curtok = src; - seen_xdigits = 0; - val = 0; - while ((ch = *src++) != '\0') { - const char *pch; - - if ((pch = strchr((xdigits = xdigits_l), ch)) == NULL) - pch = strchr((xdigits = xdigits_u), ch); - if (pch != NULL) { - val <<= 4; - val |= (pch - xdigits); - if (++seen_xdigits > 4) - return (0); - continue; - } - if (ch == ':') { - curtok = src; - if (!seen_xdigits) { - if (colonp) - return (0); - colonp = tp; - continue; - } else if (*src == '\0') { - return (0); - } - if (tp + NS_INT16SZ > endp) - return (0); - *tp++ = (u_char) (val >> 8) & 0xff; - *tp++ = (u_char) val & 0xff; - seen_xdigits = 0; - val = 0; - continue; - } - if (ch == '.' && ((tp + NS_INADDRSZ) <= endp) && - inet_pton4(curtok, tp) > 0) { - tp += NS_INADDRSZ; - seen_xdigits = 0; - break; /* '\0' was seen by inet_pton4(). */ - } - return (0); - } - if (seen_xdigits) { - if (tp + NS_INT16SZ > endp) - return (0); - *tp++ = (u_char) (val >> 8) & 0xff; - *tp++ = (u_char) val & 0xff; - } - if (colonp != NULL) { - /* - * Since some memmove()'s erroneously fail to handle - * overlapping regions, we'll do the shift by hand. - */ - const int n = tp - colonp; - int i; - - if (tp == endp) - return (0); - for (i = 1; i <= n; i++) { - endp[- i] = colonp[n - i]; - colonp[n - i] = 0; - } - tp = endp; - } - if (tp != endp) - return (0); - memcpy(dst, tmp, NS_IN6ADDRSZ); - return (1); -} - -#endif /* HAVE_INET_PTON */ - diff -u -r -N squid-3.5.0.4/compat/inet_pton.cc squid-3.5.1/compat/inet_pton.cc --- squid-3.5.0.4/compat/inet_pton.cc 1969-12-31 16:00:00.000000000 -0800 +++ squid-3.5.1/compat/inet_pton.cc 2015-01-13 04:52:01.000000000 -0800 @@ -0,0 +1,273 @@ +/* + * Copyright (C) 1996-2015 The Squid Software Foundation and contributors + * + * Squid software is distributed under GPLv2+ license and includes + * contributions from numerous individuals and organizations. + * Please see the COPYING and CONTRIBUTORS files for details. + */ + +/* + * Shamelessly duplicated from the bind9 public sources + * for use by the Squid Project under ISC written permission + * included "as found" below. + * + * Update/Maintenance History: + * + * 24-Sep-2007 : Copied from bind 9.3.3 + * - Added protection around libray headers + * - Altered configure checks to import + * + * 06-Oct-2007 : Various fixes to allow the build on MinGW + * + * 28-Oct-2007: drop some dead code. now tested working without. + * + * 13-Jan-2015 : Various fixed for C++ and MinGW native build + * + * Original License and code follows. + */ + +#include "squid.h" + +#if !HAVE_DECL_INET_PTON + +/* + * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC") + * Copyright (c) 1996,1999 by Internet Software Consortium. + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT + * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +#if defined(LIBC_SCCS) && !defined(lint) +static const char rcsid[] = "inet_pton.c,v 1.2.206.2 2005/07/28 07:43:18 marka Exp"; +#endif /* LIBC_SCCS and not lint */ + +#if HAVE_SYS_PARAM_H +#include +#endif +#if HAVE_SYS_TYPES_H +#include +#endif +#if HAVE_SYS_SOCKET_H +#include +#endif +#if HAVE_NETINET_IN_H +#include +#endif +#if ARPA_INET_H +#include +#endif +#if HAVE_ARPA_NAMESER_H +#include +#endif +#if HAVE_STRING_H +#include +#endif +#if HAVE_ERRNO_H +#include +#endif + +#if ! defined(NS_INADDRSZ) +#define NS_INADDRSZ 4 +#endif +#if ! defined(NS_IN6ADDRSZ) +#define NS_IN6ADDRSZ 16 +#endif +#if ! defined(NS_INT16SZ) +#define NS_INT16SZ 2 +#endif + +/* + * WARNING: Don't even consider trying to compile this on a system where + * sizeof(int) < 4. sizeof(int) > 4 is fine; all the world's not a VAX. + */ + +static int inet_pton4 (const char *src, u_char *dst); +static int inet_pton6 (const char *src, u_char *dst); + +/* int + * inet_pton(af, src, dst) + * convert from presentation format (which usually means ASCII printable) + * to network format (which is usually some kind of binary format). + * return: + * 1 if the address was valid for the specified address family + * 0 if the address wasn't valid (`dst' is untouched in this case) + * -1 if some other error occurred (`dst' is untouched in this case, too) + * author: + * Paul Vixie, 1996. + */ +int +xinet_pton(int af, const char *src, void *dst) +{ + switch (af) { + case AF_INET: + return (inet_pton4(src, (u_char*)dst)); + case AF_INET6: + return (inet_pton6(src, (u_char*)dst)); + default: + errno = EAFNOSUPPORT; + return (-1); + } + /* NOTREACHED */ +} + +/* int + * inet_pton4(src, dst) + * like inet_aton() but without all the hexadecimal and shorthand. + * return: + * 1 if `src' is a valid dotted quad, else 0. + * notice: + * does not touch `dst' unless it's returning 1. + * author: + * Paul Vixie, 1996. + */ +static int +inet_pton4(const char *src, u_char *dst) +{ + static const char digits[] = "0123456789"; + int saw_digit, octets, ch; + u_char tmp[NS_INADDRSZ], *tp; + + saw_digit = 0; + octets = 0; + *(tp = tmp) = 0; + while ((ch = *src++) != '\0') { + const char *pch; + + if ((pch = strchr(digits, ch)) != NULL) { + u_int nw = *tp * 10 + (pch - digits); + + if (saw_digit && *tp == 0) + return (0); + if (nw > 255) + return (0); + *tp = nw; + if (!saw_digit) { + if (++octets > 4) + return (0); + saw_digit = 1; + } + } else if (ch == '.' && saw_digit) { + if (octets == 4) + return (0); + *++tp = 0; + saw_digit = 0; + } else + return (0); + } + if (octets < 4) + return (0); + memcpy(dst, tmp, NS_INADDRSZ); + return (1); +} + +/* int + * inet_pton6(src, dst) + * convert presentation level address to network order binary form. + * return: + * 1 if `src' is a valid [RFC1884 2.2] address, else 0. + * notice: + * (1) does not touch `dst' unless it's returning 1. + * (2) :: in a full address is silently ignored. + * credit: + * inspired by Mark Andrews. + * author: + * Paul Vixie, 1996. + */ +static int +inet_pton6(const char *src, u_char *dst) +{ + static const char xdigits_l[] = "0123456789abcdef", + xdigits_u[] = "0123456789ABCDEF"; + u_char tmp[NS_IN6ADDRSZ], *tp, *endp, *colonp; + const char *xdigits, *curtok; + int ch, seen_xdigits; + u_int val; + + memset((tp = tmp), '\0', NS_IN6ADDRSZ); + endp = tp + NS_IN6ADDRSZ; + colonp = NULL; + /* Leading :: requires some special handling. */ + if (*src == ':') + if (*++src != ':') + return (0); + curtok = src; + seen_xdigits = 0; + val = 0; + while ((ch = *src++) != '\0') { + const char *pch; + + if ((pch = strchr((xdigits = xdigits_l), ch)) == NULL) + pch = strchr((xdigits = xdigits_u), ch); + if (pch != NULL) { + val <<= 4; + val |= (pch - xdigits); + if (++seen_xdigits > 4) + return (0); + continue; + } + if (ch == ':') { + curtok = src; + if (!seen_xdigits) { + if (colonp) + return (0); + colonp = tp; + continue; + } else if (*src == '\0') { + return (0); + } + if (tp + NS_INT16SZ > endp) + return (0); + *tp++ = (u_char) (val >> 8) & 0xff; + *tp++ = (u_char) val & 0xff; + seen_xdigits = 0; + val = 0; + continue; + } + if (ch == '.' && ((tp + NS_INADDRSZ) <= endp) && + inet_pton4(curtok, tp) > 0) { + tp += NS_INADDRSZ; + seen_xdigits = 0; + break; /* '\0' was seen by inet_pton4(). */ + } + return (0); + } + if (seen_xdigits) { + if (tp + NS_INT16SZ > endp) + return (0); + *tp++ = (u_char) (val >> 8) & 0xff; + *tp++ = (u_char) val & 0xff; + } + if (colonp != NULL) { + /* + * Since some memmove()'s erroneously fail to handle + * overlapping regions, we'll do the shift by hand. + */ + const int n = tp - colonp; + int i; + + if (tp == endp) + return (0); + for (i = 1; i <= n; i++) { + endp[- i] = colonp[n - i]; + colonp[n - i] = 0; + } + tp = endp; + } + if (tp != endp) + return (0); + memcpy(dst, tmp, NS_IN6ADDRSZ); + return (1); +} + +#endif /* HAVE_DECL_INET_PTON */ + diff -u -r -N squid-3.5.0.4/compat/inet_pton.h squid-3.5.1/compat/inet_pton.h --- squid-3.5.0.4/compat/inet_pton.h 2014-12-20 21:11:48.000000000 -0800 +++ squid-3.5.1/compat/inet_pton.h 2015-01-13 04:52:01.000000000 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (C) 1996-2014 The Squid Software Foundation and contributors + * Copyright (C) 1996-2015 The Squid Software Foundation and contributors * * Squid software is distributed under GPLv2+ license and includes * contributions from numerous individuals and organizations. @@ -10,7 +10,7 @@ #define _INC_INET_PTON_H /* Use the system provided version where possible */ -#if !HAVE_INET_PTON +#if !HAVE_DECL_INET_PTON /* int * inet_pton(af, src, dst) @@ -26,6 +26,6 @@ SQUIDCEXTERN int xinet_pton(int af, const char *src, void *dst); #define inet_pton xinet_pton -#endif +#endif /* HAVE_DECL_INET_PTON */ #endif /* _INC_INET_NTOP_H */ diff -u -r -N squid-3.5.0.4/compat/initgroups.c squid-3.5.1/compat/initgroups.c --- squid-3.5.0.4/compat/initgroups.c 2014-12-20 21:11:48.000000000 -0800 +++ squid-3.5.1/compat/initgroups.c 2015-01-13 04:52:01.000000000 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (C) 1996-2014 The Squid Software Foundation and contributors + * Copyright (C) 1996-2015 The Squid Software Foundation and contributors * * Squid software is distributed under GPLv2+ license and includes * contributions from numerous individuals and organizations. diff -u -r -N squid-3.5.0.4/compat/initgroups.h squid-3.5.1/compat/initgroups.h --- squid-3.5.0.4/compat/initgroups.h 2014-12-20 21:11:48.000000000 -0800 +++ squid-3.5.1/compat/initgroups.h 2015-01-13 04:52:01.000000000 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (C) 1996-2014 The Squid Software Foundation and contributors + * Copyright (C) 1996-2015 The Squid Software Foundation and contributors * * Squid software is distributed under GPLv2+ license and includes * contributions from numerous individuals and organizations. diff -u -r -N squid-3.5.0.4/compat/Makefile.am squid-3.5.1/compat/Makefile.am --- squid-3.5.0.4/compat/Makefile.am 2014-12-20 21:11:48.000000000 -0800 +++ squid-3.5.1/compat/Makefile.am 2015-01-13 04:52:01.000000000 -0800 @@ -1,4 +1,4 @@ -## Copyright (C) 1996-2014 The Squid Software Foundation and contributors +## Copyright (C) 1996-2015 The Squid Software Foundation and contributors ## ## Squid software is distributed under GPLv2+ license and includes ## contributions from numerous individuals and organizations. @@ -10,6 +10,7 @@ include $(top_srcdir)/src/Common.am +AUTOMAKE_OPTIONS = subdir-objects # Ideally this would be 100% inline functions and macro wrappers. @@ -31,11 +32,15 @@ eui64_aton.h \ eui64_aton.c \ fdsetsize.h \ + getaddrinfo.cc \ getaddrinfo.h \ + getnameinfo.cc \ getnameinfo.h \ GnuRegex.c \ GnuRegex.h \ + inet_ntop.cc \ inet_ntop.h \ + inet_pton.cc \ inet_pton.h \ initgroups.h \ memrchr.cc \ @@ -91,8 +96,7 @@ testPreCompiler_SOURCES= \ testPreCompiler.h \ - testPreCompiler.cc \ - $(top_srcdir)/src/tests/testMain.cc + testPreCompiler.cc testPreCompiler_LDADD= $(SQUID_CPPUNIT_LA) $(SQUID_CPPUNIT_LIBS) testPreCompiler_LDFLAGS= diff -u -r -N squid-3.5.0.4/compat/Makefile.in squid-3.5.1/compat/Makefile.in --- squid-3.5.0.4/compat/Makefile.in 2014-12-20 21:13:33.000000000 -0800 +++ squid-3.5.1/compat/Makefile.in 2015-01-13 04:53:10.000000000 -0800 @@ -83,9 +83,8 @@ build_triplet = @build@ host_triplet = @host@ DIST_COMMON = $(top_srcdir)/src/Common.am $(srcdir)/Makefile.in \ - $(srcdir)/Makefile.am getnameinfo.c getaddrinfo.c drand48.c \ - inet_ntop.c initgroups.c inet_pton.c strtoll.c strerror.c \ - tempnam.c psignal.c $(top_srcdir)/cfgaux/depcomp \ + $(srcdir)/Makefile.am tempnam.c initgroups.c drand48.c \ + psignal.c strtoll.c strerror.c $(top_srcdir)/cfgaux/depcomp \ $(top_srcdir)/cfgaux/test-driver check_PROGRAMS = testPreCompiler$(EXEEXT) TESTS = testPreCompiler$(EXEEXT) testHeaders @@ -106,7 +105,6 @@ $(top_srcdir)/helpers/basic_auth/DB/required.m4 \ $(top_srcdir)/helpers/basic_auth/LDAP/required.m4 \ $(top_srcdir)/helpers/basic_auth/MSNT-multi-domain/required.m4 \ - $(top_srcdir)/helpers/basic_auth/MSNT/required.m4 \ $(top_srcdir)/helpers/basic_auth/NCSA/required.m4 \ $(top_srcdir)/helpers/basic_auth/NIS/required.m4 \ $(top_srcdir)/helpers/basic_auth/PAM/required.m4 \ @@ -114,6 +112,7 @@ $(top_srcdir)/helpers/basic_auth/RADIUS/required.m4 \ $(top_srcdir)/helpers/basic_auth/SASL/required.m4 \ $(top_srcdir)/helpers/basic_auth/SMB/required.m4 \ + $(top_srcdir)/helpers/basic_auth/SMB_LM/required.m4 \ $(top_srcdir)/helpers/basic_auth/SSPI/required.m4 \ $(top_srcdir)/helpers/basic_auth/fake/required.m4 \ $(top_srcdir)/helpers/basic_auth/getpwnam/required.m4 \ @@ -159,7 +158,8 @@ LTLIBRARIES = $(noinst_LTLIBRARIES) libcompat_squid_la_DEPENDENCIES = $(LTLIBOBJS) am_libcompat_squid_la_OBJECTS = assert.lo compat.lo debug.lo \ - eui64_aton.lo GnuRegex.lo memrchr.lo shm.lo statvfs.lo \ + eui64_aton.lo getaddrinfo.lo getnameinfo.lo GnuRegex.lo \ + inet_ntop.lo inet_pton.lo memrchr.lo shm.lo statvfs.lo \ strnstr.lo strnrchr.lo xalloc.lo xstrerror.lo xstring.lo \ xstrto.lo mswindows.lo libcompat_squid_la_OBJECTS = $(am_libcompat_squid_la_OBJECTS) @@ -167,8 +167,7 @@ am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent am__v_lt_1 = -am_testPreCompiler_OBJECTS = testPreCompiler.$(OBJEXT) \ - testMain.$(OBJEXT) +am_testPreCompiler_OBJECTS = testPreCompiler.$(OBJEXT) testPreCompiler_OBJECTS = $(am_testPreCompiler_OBJECTS) am__DEPENDENCIES_1 = testPreCompiler_DEPENDENCIES = $(am__DEPENDENCIES_1) \ @@ -697,6 +696,7 @@ @ENABLE_XPROF_STATS_TRUE@LIBPROFILER = $(top_builddir)/lib/profiler/libprofiler.la COMPAT_LIB = $(top_builddir)/compat/libcompat-squid.la $(LIBPROFILER) subst_perlshell = sed -e 's,[@]PERL[@],$(PERL),g' <$(srcdir)/$@.pl.in >$@ || ($(RM) -f $@ ; exit 1) +AUTOMAKE_OPTIONS = subdir-objects # Ideally this would be 100% inline functions and macro wrappers. @@ -717,11 +717,15 @@ eui64_aton.h \ eui64_aton.c \ fdsetsize.h \ + getaddrinfo.cc \ getaddrinfo.h \ + getnameinfo.cc \ getnameinfo.h \ GnuRegex.c \ GnuRegex.h \ + inet_ntop.cc \ inet_ntop.h \ + inet_pton.cc \ inet_pton.h \ initgroups.h \ memrchr.cc \ @@ -773,8 +777,7 @@ libcompat_squid_la_LIBADD = $(LTLIBOBJS) testPreCompiler_SOURCES = \ testPreCompiler.h \ - testPreCompiler.cc \ - $(top_srcdir)/src/tests/testMain.cc + testPreCompiler.cc testPreCompiler_LDADD = $(SQUID_CPPUNIT_LA) $(SQUID_CPPUNIT_LIBS) testPreCompiler_LDFLAGS = @@ -848,10 +851,6 @@ -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/drand48.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/getaddrinfo.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/getnameinfo.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/inet_ntop.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/inet_pton.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/initgroups.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/psignal.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/strerror.Plo@am__quote@ @@ -862,13 +861,16 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/compat.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/debug.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eui64_aton.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getaddrinfo.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getnameinfo.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/inet_ntop.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/inet_pton.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/memrchr.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mswindows.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/shm.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/statvfs.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strnrchr.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strnstr.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testMain.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testPreCompiler.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xalloc.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xstrerror.Plo@am__quote@ @@ -876,61 +878,53 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xstrto.Plo@am__quote@ .c.o: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< .c.obj: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .c.lo: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ +@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< .cc.o: -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $< .cc.obj: -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cc.lo: -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ +@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LTCXXCOMPILE) -c -o $@ $< -testMain.o: $(top_srcdir)/src/tests/testMain.cc -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT testMain.o -MD -MP -MF $(DEPDIR)/testMain.Tpo -c -o testMain.o `test -f '$(top_srcdir)/src/tests/testMain.cc' || echo '$(srcdir)/'`$(top_srcdir)/src/tests/testMain.cc -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/testMain.Tpo $(DEPDIR)/testMain.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$(top_srcdir)/src/tests/testMain.cc' object='testMain.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o testMain.o `test -f '$(top_srcdir)/src/tests/testMain.cc' || echo '$(srcdir)/'`$(top_srcdir)/src/tests/testMain.cc - -testMain.obj: $(top_srcdir)/src/tests/testMain.cc -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT testMain.obj -MD -MP -MF $(DEPDIR)/testMain.Tpo -c -o testMain.obj `if test -f '$(top_srcdir)/src/tests/testMain.cc'; then $(CYGPATH_W) '$(top_srcdir)/src/tests/testMain.cc'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/src/tests/testMain.cc'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/testMain.Tpo $(DEPDIR)/testMain.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$(top_srcdir)/src/tests/testMain.cc' object='testMain.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o testMain.obj `if test -f '$(top_srcdir)/src/tests/testMain.cc'; then $(CYGPATH_W) '$(top_srcdir)/src/tests/testMain.cc'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/src/tests/testMain.cc'; fi` - mostlyclean-libtool: -rm -f *.lo diff -u -r -N squid-3.5.0.4/compat/memrchr.cc squid-3.5.1/compat/memrchr.cc --- squid-3.5.0.4/compat/memrchr.cc 2014-12-20 21:11:48.000000000 -0800 +++ squid-3.5.1/compat/memrchr.cc 2015-01-13 04:52:01.000000000 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (C) 1996-2014 The Squid Software Foundation and contributors + * Copyright (C) 1996-2015 The Squid Software Foundation and contributors * * Squid software is distributed under GPLv2+ license and includes * contributions from numerous individuals and organizations. diff -u -r -N squid-3.5.0.4/compat/memrchr.h squid-3.5.1/compat/memrchr.h --- squid-3.5.0.4/compat/memrchr.h 2014-12-20 21:11:48.000000000 -0800 +++ squid-3.5.1/compat/memrchr.h 2015-01-13 04:52:01.000000000 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (C) 1996-2014 The Squid Software Foundation and contributors + * Copyright (C) 1996-2015 The Squid Software Foundation and contributors * * Squid software is distributed under GPLv2+ license and includes * contributions from numerous individuals and organizations. diff -u -r -N squid-3.5.0.4/compat/mswindows.cc squid-3.5.1/compat/mswindows.cc --- squid-3.5.0.4/compat/mswindows.cc 2014-12-20 21:11:48.000000000 -0800 +++ squid-3.5.1/compat/mswindows.cc 2015-01-13 04:52:01.000000000 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (C) 1996-2014 The Squid Software Foundation and contributors + * Copyright (C) 1996-2015 The Squid Software Foundation and contributors * * Squid software is distributed under GPLv2+ license and includes * contributions from numerous individuals and organizations. diff -u -r -N squid-3.5.0.4/compat/os/aix.h squid-3.5.1/compat/os/aix.h --- squid-3.5.0.4/compat/os/aix.h 2014-12-20 21:11:48.000000000 -0800 +++ squid-3.5.1/compat/os/aix.h 2015-01-13 04:52:01.000000000 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (C) 1996-2014 The Squid Software Foundation and contributors + * Copyright (C) 1996-2015 The Squid Software Foundation and contributors * * Squid software is distributed under GPLv2+ license and includes * contributions from numerous individuals and organizations. diff -u -r -N squid-3.5.0.4/compat/os/android.h squid-3.5.1/compat/os/android.h --- squid-3.5.0.4/compat/os/android.h 2014-12-20 21:11:48.000000000 -0800 +++ squid-3.5.1/compat/os/android.h 2015-01-13 04:52:01.000000000 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (C) 1996-2014 The Squid Software Foundation and contributors + * Copyright (C) 1996-2015 The Squid Software Foundation and contributors * * Squid software is distributed under GPLv2+ license and includes * contributions from numerous individuals and organizations. diff -u -r -N squid-3.5.0.4/compat/os/dragonfly.h squid-3.5.1/compat/os/dragonfly.h --- squid-3.5.0.4/compat/os/dragonfly.h 2014-12-20 21:11:48.000000000 -0800 +++ squid-3.5.1/compat/os/dragonfly.h 2015-01-13 04:52:01.000000000 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (C) 1996-2014 The Squid Software Foundation and contributors + * Copyright (C) 1996-2015 The Squid Software Foundation and contributors * * Squid software is distributed under GPLv2+ license and includes * contributions from numerous individuals and organizations. diff -u -r -N squid-3.5.0.4/compat/os/freebsd.h squid-3.5.1/compat/os/freebsd.h --- squid-3.5.0.4/compat/os/freebsd.h 2014-12-20 21:11:48.000000000 -0800 +++ squid-3.5.1/compat/os/freebsd.h 2015-01-13 04:52:01.000000000 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (C) 1996-2014 The Squid Software Foundation and contributors + * Copyright (C) 1996-2015 The Squid Software Foundation and contributors * * Squid software is distributed under GPLv2+ license and includes * contributions from numerous individuals and organizations. diff -u -r -N squid-3.5.0.4/compat/os/hpux.h squid-3.5.1/compat/os/hpux.h --- squid-3.5.0.4/compat/os/hpux.h 2014-12-20 21:11:48.000000000 -0800 +++ squid-3.5.1/compat/os/hpux.h 2015-01-13 04:52:01.000000000 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (C) 1996-2014 The Squid Software Foundation and contributors + * Copyright (C) 1996-2015 The Squid Software Foundation and contributors * * Squid software is distributed under GPLv2+ license and includes * contributions from numerous individuals and organizations. diff -u -r -N squid-3.5.0.4/compat/os/linux.h squid-3.5.1/compat/os/linux.h --- squid-3.5.0.4/compat/os/linux.h 2014-12-20 21:11:48.000000000 -0800 +++ squid-3.5.1/compat/os/linux.h 2015-01-13 04:52:01.000000000 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (C) 1996-2014 The Squid Software Foundation and contributors + * Copyright (C) 1996-2015 The Squid Software Foundation and contributors * * Squid software is distributed under GPLv2+ license and includes * contributions from numerous individuals and organizations. diff -u -r -N squid-3.5.0.4/compat/os/macosx.h squid-3.5.1/compat/os/macosx.h --- squid-3.5.0.4/compat/os/macosx.h 2014-12-20 21:11:48.000000000 -0800 +++ squid-3.5.1/compat/os/macosx.h 2015-01-13 04:52:01.000000000 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (C) 1996-2014 The Squid Software Foundation and contributors + * Copyright (C) 1996-2015 The Squid Software Foundation and contributors * * Squid software is distributed under GPLv2+ license and includes * contributions from numerous individuals and organizations. diff -u -r -N squid-3.5.0.4/compat/os/mswindows.h squid-3.5.1/compat/os/mswindows.h --- squid-3.5.0.4/compat/os/mswindows.h 2014-12-20 21:11:48.000000000 -0800 +++ squid-3.5.1/compat/os/mswindows.h 2015-01-13 04:52:01.000000000 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (C) 1996-2014 The Squid Software Foundation and contributors + * Copyright (C) 1996-2015 The Squid Software Foundation and contributors * * Squid software is distributed under GPLv2+ license and includes * contributions from numerous individuals and organizations. @@ -621,6 +621,13 @@ } #define getsockopt(s,l,o,v,n) Squid::getsockopt(s,l,o,v,n) +inline char * +inet_ntop(int af, const void *src, char *dst, size_t size) +{ + return (char*)InetNtopA(af, const_cast(src), dst, size); +} +#define inet_ntop(a,s,d,l) Squid::inet_ntop(a,s,d,l) + /* Simple ioctl() emulation */ inline int ioctl(int s, int c, void * a) diff -u -r -N squid-3.5.0.4/compat/os/netbsd.h squid-3.5.1/compat/os/netbsd.h --- squid-3.5.0.4/compat/os/netbsd.h 2014-12-20 21:11:48.000000000 -0800 +++ squid-3.5.1/compat/os/netbsd.h 2015-01-13 04:52:01.000000000 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (C) 1996-2014 The Squid Software Foundation and contributors + * Copyright (C) 1996-2015 The Squid Software Foundation and contributors * * Squid software is distributed under GPLv2+ license and includes * contributions from numerous individuals and organizations. diff -u -r -N squid-3.5.0.4/compat/os/next.h squid-3.5.1/compat/os/next.h --- squid-3.5.0.4/compat/os/next.h 2014-12-20 21:11:48.000000000 -0800 +++ squid-3.5.1/compat/os/next.h 2015-01-13 04:52:01.000000000 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (C) 1996-2014 The Squid Software Foundation and contributors + * Copyright (C) 1996-2015 The Squid Software Foundation and contributors * * Squid software is distributed under GPLv2+ license and includes * contributions from numerous individuals and organizations. diff -u -r -N squid-3.5.0.4/compat/os/openbsd.h squid-3.5.1/compat/os/openbsd.h --- squid-3.5.0.4/compat/os/openbsd.h 2014-12-20 21:11:48.000000000 -0800 +++ squid-3.5.1/compat/os/openbsd.h 2015-01-13 04:52:01.000000000 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (C) 1996-2014 The Squid Software Foundation and contributors + * Copyright (C) 1996-2015 The Squid Software Foundation and contributors * * Squid software is distributed under GPLv2+ license and includes * contributions from numerous individuals and organizations. diff -u -r -N squid-3.5.0.4/compat/os/opensolaris_10_netdb.h squid-3.5.1/compat/os/opensolaris_10_netdb.h --- squid-3.5.0.4/compat/os/opensolaris_10_netdb.h 2014-12-20 21:11:48.000000000 -0800 +++ squid-3.5.1/compat/os/opensolaris_10_netdb.h 2015-01-13 04:52:01.000000000 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (C) 1996-2014 The Squid Software Foundation and contributors + * Copyright (C) 1996-2015 The Squid Software Foundation and contributors * * Squid software is distributed under GPLv2+ license and includes * contributions from numerous individuals and organizations. diff -u -r -N squid-3.5.0.4/compat/os/os2.h squid-3.5.1/compat/os/os2.h --- squid-3.5.0.4/compat/os/os2.h 2014-12-20 21:11:48.000000000 -0800 +++ squid-3.5.1/compat/os/os2.h 2015-01-13 04:52:01.000000000 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (C) 1996-2014 The Squid Software Foundation and contributors + * Copyright (C) 1996-2015 The Squid Software Foundation and contributors * * Squid software is distributed under GPLv2+ license and includes * contributions from numerous individuals and organizations. diff -u -r -N squid-3.5.0.4/compat/os/qnx.h squid-3.5.1/compat/os/qnx.h --- squid-3.5.0.4/compat/os/qnx.h 2014-12-20 21:11:48.000000000 -0800 +++ squid-3.5.1/compat/os/qnx.h 2015-01-13 04:52:01.000000000 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (C) 1996-2014 The Squid Software Foundation and contributors + * Copyright (C) 1996-2015 The Squid Software Foundation and contributors * * Squid software is distributed under GPLv2+ license and includes * contributions from numerous individuals and organizations. diff -u -r -N squid-3.5.0.4/compat/os/sgi.h squid-3.5.1/compat/os/sgi.h --- squid-3.5.0.4/compat/os/sgi.h 2014-12-20 21:11:48.000000000 -0800 +++ squid-3.5.1/compat/os/sgi.h 2015-01-13 04:52:01.000000000 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (C) 1996-2014 The Squid Software Foundation and contributors + * Copyright (C) 1996-2015 The Squid Software Foundation and contributors * * Squid software is distributed under GPLv2+ license and includes * contributions from numerous individuals and organizations. diff -u -r -N squid-3.5.0.4/compat/os/solaris.h squid-3.5.1/compat/os/solaris.h --- squid-3.5.0.4/compat/os/solaris.h 2014-12-20 21:11:48.000000000 -0800 +++ squid-3.5.1/compat/os/solaris.h 2015-01-13 04:52:01.000000000 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (C) 1996-2014 The Squid Software Foundation and contributors + * Copyright (C) 1996-2015 The Squid Software Foundation and contributors * * Squid software is distributed under GPLv2+ license and includes * contributions from numerous individuals and organizations. diff -u -r -N squid-3.5.0.4/compat/os/sunos.h squid-3.5.1/compat/os/sunos.h --- squid-3.5.0.4/compat/os/sunos.h 2014-12-20 21:11:48.000000000 -0800 +++ squid-3.5.1/compat/os/sunos.h 2015-01-13 04:52:01.000000000 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (C) 1996-2014 The Squid Software Foundation and contributors + * Copyright (C) 1996-2015 The Squid Software Foundation and contributors * * Squid software is distributed under GPLv2+ license and includes * contributions from numerous individuals and organizations. diff -u -r -N squid-3.5.0.4/compat/osdetect.h squid-3.5.1/compat/osdetect.h --- squid-3.5.0.4/compat/osdetect.h 2014-12-20 21:11:48.000000000 -0800 +++ squid-3.5.1/compat/osdetect.h 2015-01-13 04:52:01.000000000 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (C) 1996-2014 The Squid Software Foundation and contributors + * Copyright (C) 1996-2015 The Squid Software Foundation and contributors * * Squid software is distributed under GPLv2+ license and includes * contributions from numerous individuals and organizations. diff -u -r -N squid-3.5.0.4/compat/psignal.c squid-3.5.1/compat/psignal.c --- squid-3.5.0.4/compat/psignal.c 2014-12-20 21:11:48.000000000 -0800 +++ squid-3.5.1/compat/psignal.c 2015-01-13 04:52:01.000000000 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (C) 1996-2014 The Squid Software Foundation and contributors + * Copyright (C) 1996-2015 The Squid Software Foundation and contributors * * Squid software is distributed under GPLv2+ license and includes * contributions from numerous individuals and organizations. diff -u -r -N squid-3.5.0.4/compat/psignal.h squid-3.5.1/compat/psignal.h --- squid-3.5.0.4/compat/psignal.h 2014-12-20 21:11:48.000000000 -0800 +++ squid-3.5.1/compat/psignal.h 2015-01-13 04:52:01.000000000 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (C) 1996-2014 The Squid Software Foundation and contributors + * Copyright (C) 1996-2015 The Squid Software Foundation and contributors * * Squid software is distributed under GPLv2+ license and includes * contributions from numerous individuals and organizations. diff -u -r -N squid-3.5.0.4/compat/shm.cc squid-3.5.1/compat/shm.cc --- squid-3.5.0.4/compat/shm.cc 2014-12-20 21:11:48.000000000 -0800 +++ squid-3.5.1/compat/shm.cc 2015-01-13 04:52:01.000000000 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (C) 1996-2014 The Squid Software Foundation and contributors + * Copyright (C) 1996-2015 The Squid Software Foundation and contributors * * Squid software is distributed under GPLv2+ license and includes * contributions from numerous individuals and organizations. diff -u -r -N squid-3.5.0.4/compat/shm.h squid-3.5.1/compat/shm.h --- squid-3.5.0.4/compat/shm.h 2014-12-20 21:11:48.000000000 -0800 +++ squid-3.5.1/compat/shm.h 2015-01-13 04:52:01.000000000 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (C) 1996-2014 The Squid Software Foundation and contributors + * Copyright (C) 1996-2015 The Squid Software Foundation and contributors * * Squid software is distributed under GPLv2+ license and includes * contributions from numerous individuals and organizations. diff -u -r -N squid-3.5.0.4/compat/statvfs.cc squid-3.5.1/compat/statvfs.cc --- squid-3.5.0.4/compat/statvfs.cc 2014-12-20 21:11:48.000000000 -0800 +++ squid-3.5.1/compat/statvfs.cc 2015-01-13 04:52:01.000000000 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (C) 1996-2014 The Squid Software Foundation and contributors + * Copyright (C) 1996-2015 The Squid Software Foundation and contributors * * Squid software is distributed under GPLv2+ license and includes * contributions from numerous individuals and organizations. diff -u -r -N squid-3.5.0.4/compat/statvfs.h squid-3.5.1/compat/statvfs.h --- squid-3.5.0.4/compat/statvfs.h 2014-12-20 21:11:48.000000000 -0800 +++ squid-3.5.1/compat/statvfs.h 2015-01-13 04:52:01.000000000 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (C) 1996-2014 The Squid Software Foundation and contributors + * Copyright (C) 1996-2015 The Squid Software Foundation and contributors * * Squid software is distributed under GPLv2+ license and includes * contributions from numerous individuals and organizations. diff -u -r -N squid-3.5.0.4/compat/stdio.h squid-3.5.1/compat/stdio.h --- squid-3.5.0.4/compat/stdio.h 2014-12-20 21:11:48.000000000 -0800 +++ squid-3.5.1/compat/stdio.h 2015-01-13 04:52:01.000000000 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (C) 1996-2014 The Squid Software Foundation and contributors + * Copyright (C) 1996-2015 The Squid Software Foundation and contributors * * Squid software is distributed under GPLv2+ license and includes * contributions from numerous individuals and organizations. diff -u -r -N squid-3.5.0.4/compat/stdvarargs.h squid-3.5.1/compat/stdvarargs.h --- squid-3.5.0.4/compat/stdvarargs.h 2014-12-20 21:11:48.000000000 -0800 +++ squid-3.5.1/compat/stdvarargs.h 2015-01-13 04:52:01.000000000 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (C) 1996-2014 The Squid Software Foundation and contributors + * Copyright (C) 1996-2015 The Squid Software Foundation and contributors * * Squid software is distributed under GPLv2+ license and includes * contributions from numerous individuals and organizations. diff -u -r -N squid-3.5.0.4/compat/strerror.c squid-3.5.1/compat/strerror.c --- squid-3.5.0.4/compat/strerror.c 2014-12-20 21:11:48.000000000 -0800 +++ squid-3.5.1/compat/strerror.c 2015-01-13 04:52:01.000000000 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (C) 1996-2014 The Squid Software Foundation and contributors + * Copyright (C) 1996-2015 The Squid Software Foundation and contributors * * Squid software is distributed under GPLv2+ license and includes * contributions from numerous individuals and organizations. diff -u -r -N squid-3.5.0.4/compat/strnrchr.c squid-3.5.1/compat/strnrchr.c --- squid-3.5.0.4/compat/strnrchr.c 2014-12-20 21:11:48.000000000 -0800 +++ squid-3.5.1/compat/strnrchr.c 2015-01-13 04:52:01.000000000 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (C) 1996-2014 The Squid Software Foundation and contributors + * Copyright (C) 1996-2015 The Squid Software Foundation and contributors * * Squid software is distributed under GPLv2+ license and includes * contributions from numerous individuals and organizations. diff -u -r -N squid-3.5.0.4/compat/strnrchr.h squid-3.5.1/compat/strnrchr.h --- squid-3.5.0.4/compat/strnrchr.h 2014-12-20 21:11:48.000000000 -0800 +++ squid-3.5.1/compat/strnrchr.h 2015-01-13 04:52:01.000000000 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (C) 1996-2014 The Squid Software Foundation and contributors + * Copyright (C) 1996-2015 The Squid Software Foundation and contributors * * Squid software is distributed under GPLv2+ license and includes * contributions from numerous individuals and organizations. diff -u -r -N squid-3.5.0.4/compat/strnstr.cc squid-3.5.1/compat/strnstr.cc --- squid-3.5.0.4/compat/strnstr.cc 2014-12-20 21:11:48.000000000 -0800 +++ squid-3.5.1/compat/strnstr.cc 2015-01-13 04:52:01.000000000 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (C) 1996-2014 The Squid Software Foundation and contributors + * Copyright (C) 1996-2015 The Squid Software Foundation and contributors * * Squid software is distributed under GPLv2+ license and includes * contributions from numerous individuals and organizations. diff -u -r -N squid-3.5.0.4/compat/strtoll.c squid-3.5.1/compat/strtoll.c --- squid-3.5.0.4/compat/strtoll.c 2014-12-20 21:11:48.000000000 -0800 +++ squid-3.5.1/compat/strtoll.c 2015-01-13 04:52:01.000000000 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (C) 1996-2014 The Squid Software Foundation and contributors + * Copyright (C) 1996-2015 The Squid Software Foundation and contributors * * Squid software is distributed under GPLv2+ license and includes * contributions from numerous individuals and organizations. diff -u -r -N squid-3.5.0.4/compat/strtoll.h squid-3.5.1/compat/strtoll.h --- squid-3.5.0.4/compat/strtoll.h 2014-12-20 21:11:48.000000000 -0800 +++ squid-3.5.1/compat/strtoll.h 2015-01-13 04:52:01.000000000 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (C) 1996-2014 The Squid Software Foundation and contributors + * Copyright (C) 1996-2015 The Squid Software Foundation and contributors * * Squid software is distributed under GPLv2+ license and includes * contributions from numerous individuals and organizations. diff -u -r -N squid-3.5.0.4/compat/tempnam.c squid-3.5.1/compat/tempnam.c --- squid-3.5.0.4/compat/tempnam.c 2014-12-20 21:11:48.000000000 -0800 +++ squid-3.5.1/compat/tempnam.c 2015-01-13 04:52:01.000000000 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (C) 1996-2014 The Squid Software Foundation and contributors + * Copyright (C) 1996-2015 The Squid Software Foundation and contributors * * Squid software is distributed under GPLv2+ license and includes * contributions from numerous individuals and organizations. diff -u -r -N squid-3.5.0.4/compat/tempnam.h squid-3.5.1/compat/tempnam.h --- squid-3.5.0.4/compat/tempnam.h 2014-12-20 21:11:48.000000000 -0800 +++ squid-3.5.1/compat/tempnam.h 2015-01-13 04:52:01.000000000 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (C) 1996-2014 The Squid Software Foundation and contributors + * Copyright (C) 1996-2015 The Squid Software Foundation and contributors * * Squid software is distributed under GPLv2+ license and includes * contributions from numerous individuals and organizations. diff -u -r -N squid-3.5.0.4/compat/testPreCompiler.cc squid-3.5.1/compat/testPreCompiler.cc --- squid-3.5.0.4/compat/testPreCompiler.cc 2014-12-20 21:11:48.000000000 -0800 +++ squid-3.5.1/compat/testPreCompiler.cc 2015-01-13 04:52:01.000000000 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (C) 1996-2014 The Squid Software Foundation and contributors + * Copyright (C) 1996-2015 The Squid Software Foundation and contributors * * Squid software is distributed under GPLv2+ license and includes * contributions from numerous individuals and organizations. @@ -8,6 +8,7 @@ #include "squid.h" #include "testPreCompiler.h" +#include "unitTestMain.h" #include diff -u -r -N squid-3.5.0.4/compat/testPreCompiler.h squid-3.5.1/compat/testPreCompiler.h --- squid-3.5.0.4/compat/testPreCompiler.h 2014-12-20 21:11:48.000000000 -0800 +++ squid-3.5.1/compat/testPreCompiler.h 2015-01-13 04:52:01.000000000 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (C) 1996-2014 The Squid Software Foundation and contributors + * Copyright (C) 1996-2015 The Squid Software Foundation and contributors * * Squid software is distributed under GPLv2+ license and includes * contributions from numerous individuals and organizations. diff -u -r -N squid-3.5.0.4/compat/types.h squid-3.5.1/compat/types.h --- squid-3.5.0.4/compat/types.h 2014-12-20 21:11:48.000000000 -0800 +++ squid-3.5.1/compat/types.h 2015-01-13 04:52:01.000000000 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (C) 1996-2014 The Squid Software Foundation and contributors + * Copyright (C) 1996-2015 The Squid Software Foundation and contributors * * Squid software is distributed under GPLv2+ license and includes * contributions from numerous individuals and organizations. diff -u -r -N squid-3.5.0.4/compat/valgrind.h squid-3.5.1/compat/valgrind.h --- squid-3.5.0.4/compat/valgrind.h 2014-12-20 21:11:48.000000000 -0800 +++ squid-3.5.1/compat/valgrind.h 2015-01-13 04:52:01.000000000 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (C) 1996-2014 The Squid Software Foundation and contributors + * Copyright (C) 1996-2015 The Squid Software Foundation and contributors * * Squid software is distributed under GPLv2+ license and includes * contributions from numerous individuals and organizations. diff -u -r -N squid-3.5.0.4/compat/xalloc.cc squid-3.5.1/compat/xalloc.cc --- squid-3.5.0.4/compat/xalloc.cc 2014-12-20 21:11:48.000000000 -0800 +++ squid-3.5.1/compat/xalloc.cc 2015-01-13 04:52:01.000000000 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (C) 1996-2014 The Squid Software Foundation and contributors + * Copyright (C) 1996-2015 The Squid Software Foundation and contributors * * Squid software is distributed under GPLv2+ license and includes * contributions from numerous individuals and organizations. diff -u -r -N squid-3.5.0.4/compat/xalloc.h squid-3.5.1/compat/xalloc.h --- squid-3.5.0.4/compat/xalloc.h 2014-12-20 21:11:48.000000000 -0800 +++ squid-3.5.1/compat/xalloc.h 2015-01-13 04:52:01.000000000 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (C) 1996-2014 The Squid Software Foundation and contributors + * Copyright (C) 1996-2015 The Squid Software Foundation and contributors * * Squid software is distributed under GPLv2+ license and includes * contributions from numerous individuals and organizations. diff -u -r -N squid-3.5.0.4/compat/xis.h squid-3.5.1/compat/xis.h --- squid-3.5.0.4/compat/xis.h 2014-12-20 21:11:48.000000000 -0800 +++ squid-3.5.1/compat/xis.h 2015-01-13 04:52:01.000000000 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (C) 1996-2014 The Squid Software Foundation and contributors + * Copyright (C) 1996-2015 The Squid Software Foundation and contributors * * Squid software is distributed under GPLv2+ license and includes * contributions from numerous individuals and organizations. diff -u -r -N squid-3.5.0.4/compat/xstrerror.cc squid-3.5.1/compat/xstrerror.cc --- squid-3.5.0.4/compat/xstrerror.cc 2014-12-20 21:11:48.000000000 -0800 +++ squid-3.5.1/compat/xstrerror.cc 2015-01-13 04:52:01.000000000 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (C) 1996-2014 The Squid Software Foundation and contributors + * Copyright (C) 1996-2015 The Squid Software Foundation and contributors * * Squid software is distributed under GPLv2+ license and includes * contributions from numerous individuals and organizations. diff -u -r -N squid-3.5.0.4/compat/xstrerror.h squid-3.5.1/compat/xstrerror.h --- squid-3.5.0.4/compat/xstrerror.h 2014-12-20 21:11:48.000000000 -0800 +++ squid-3.5.1/compat/xstrerror.h 2015-01-13 04:52:01.000000000 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (C) 1996-2014 The Squid Software Foundation and contributors + * Copyright (C) 1996-2015 The Squid Software Foundation and contributors * * Squid software is distributed under GPLv2+ license and includes * contributions from numerous individuals and organizations. diff -u -r -N squid-3.5.0.4/compat/xstring.cc squid-3.5.1/compat/xstring.cc --- squid-3.5.0.4/compat/xstring.cc 2014-12-20 21:11:48.000000000 -0800 +++ squid-3.5.1/compat/xstring.cc 2015-01-13 04:52:01.000000000 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (C) 1996-2014 The Squid Software Foundation and contributors + * Copyright (C) 1996-2015 The Squid Software Foundation and contributors * * Squid software is distributed under GPLv2+ license and includes * contributions from numerous individuals and organizations. diff -u -r -N squid-3.5.0.4/compat/xstring.h squid-3.5.1/compat/xstring.h --- squid-3.5.0.4/compat/xstring.h 2014-12-20 21:11:48.000000000 -0800 +++ squid-3.5.1/compat/xstring.h 2015-01-13 04:52:01.000000000 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (C) 1996-2014 The Squid Software Foundation and contributors + * Copyright (C) 1996-2015 The Squid Software Foundation and contributors * * Squid software is distributed under GPLv2+ license and includes * contributions from numerous individuals and organizations. diff -u -r -N squid-3.5.0.4/compat/xstrto.cc squid-3.5.1/compat/xstrto.cc --- squid-3.5.0.4/compat/xstrto.cc 2014-12-20 21:11:48.000000000 -0800 +++ squid-3.5.1/compat/xstrto.cc 2015-01-13 04:52:01.000000000 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (C) 1996-2014 The Squid Software Foundation and contributors + * Copyright (C) 1996-2015 The Squid Software Foundation and contributors * * Squid software is distributed under GPLv2+ license and includes * contributions from numerous individuals and organizations. diff -u -r -N squid-3.5.0.4/compat/xstrto.h squid-3.5.1/compat/xstrto.h --- squid-3.5.0.4/compat/xstrto.h 2014-12-20 21:11:48.000000000 -0800 +++ squid-3.5.1/compat/xstrto.h 2015-01-13 04:52:01.000000000 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (C) 1996-2014 The Squid Software Foundation and contributors + * Copyright (C) 1996-2015 The Squid Software Foundation and contributors * * Squid software is distributed under GPLv2+ license and includes * contributions from numerous individuals and organizations. diff -u -r -N squid-3.5.0.4/configure squid-3.5.1/configure --- squid-3.5.0.4/configure 2014-12-20 21:15:32.000000000 -0800 +++ squid-3.5.1/configure 2015-01-13 04:54:26.000000000 -0800 @@ -1,7 +1,7 @@ #! /bin/sh # From configure.ac Revision. # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for Squid Web Proxy 3.5.0.4. +# Generated by GNU Autoconf 2.69 for Squid Web Proxy 3.5.1. # # Report bugs to . # @@ -595,8 +595,8 @@ # Identity of this package. PACKAGE_NAME='Squid Web Proxy' PACKAGE_TARNAME='squid' -PACKAGE_VERSION='3.5.0.4' -PACKAGE_STRING='Squid Web Proxy 3.5.0.4' +PACKAGE_VERSION='3.5.1' +PACKAGE_STRING='Squid Web Proxy 3.5.1' PACKAGE_BUGREPORT='http://bugs.squid-cache.org/' PACKAGE_URL='' @@ -1617,7 +1617,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Squid Web Proxy 3.5.0.4 to adapt to many kinds of systems. +\`configure' configures Squid Web Proxy 3.5.1 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1687,7 +1687,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Squid Web Proxy 3.5.0.4:";; + short | recursive ) echo "Configuration of Squid Web Proxy 3.5.1:";; esac cat <<\_ACEOF @@ -2094,7 +2094,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Squid Web Proxy configure 3.5.0.4 +Squid Web Proxy configure 3.5.1 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -3198,7 +3198,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Squid Web Proxy $as_me 3.5.0.4, which was +It was created by Squid Web Proxy $as_me 3.5.1, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -4065,7 +4065,7 @@ # Define the identity of the package. PACKAGE='squid' - VERSION='3.5.0.4' + VERSION='3.5.1' cat >>confdefs.h <<_ACEOF @@ -4299,7 +4299,7 @@ -## Copyright (C) 1996-2014 The Squid Software Foundation and contributors +## Copyright (C) 1996-2015 The Squid Software Foundation and contributors ## ## Squid software is distributed under GPLv2+ license and includes ## contributions from numerous individuals and organizations. @@ -4308,7 +4308,7 @@ -## Copyright (C) 1996-2014 The Squid Software Foundation and contributors +## Copyright (C) 1996-2015 The Squid Software Foundation and contributors ## ## Squid software is distributed under GPLv2+ license and includes ## contributions from numerous individuals and organizations. @@ -4319,7 +4319,7 @@ -## Copyright (C) 1996-2014 The Squid Software Foundation and contributors +## Copyright (C) 1996-2015 The Squid Software Foundation and contributors ## ## Squid software is distributed under GPLv2+ license and includes ## contributions from numerous individuals and organizations. @@ -4353,7 +4353,7 @@ -## Copyright (C) 1996-2014 The Squid Software Foundation and contributors +## Copyright (C) 1996-2015 The Squid Software Foundation and contributors ## ## Squid software is distributed under GPLv2+ license and includes ## contributions from numerous individuals and organizations. @@ -4399,7 +4399,7 @@ # -## Copyright (C) 1996-2014 The Squid Software Foundation and contributors +## Copyright (C) 1996-2015 The Squid Software Foundation and contributors ## ## Squid software is distributed under GPLv2+ license and includes ## contributions from numerous individuals and organizations. @@ -4489,7 +4489,10 @@ -## Copyright (C) 1996-2014 The Squid Software Foundation and contributors + + + +## Copyright (C) 1996-2015 The Squid Software Foundation and contributors ## ## Squid software is distributed under GPLv2+ license and includes ## contributions from numerous individuals and organizations. @@ -4517,7 +4520,7 @@ -## Copyright (C) 1996-2014 The Squid Software Foundation and contributors +## Copyright (C) 1996-2015 The Squid Software Foundation and contributors ## ## Squid software is distributed under GPLv2+ license and includes ## contributions from numerous individuals and organizations. @@ -4528,7 +4531,7 @@ -## Copyright (C) 1996-2014 The Squid Software Foundation and contributors +## Copyright (C) 1996-2015 The Squid Software Foundation and contributors ## ## Squid software is distributed under GPLv2+ license and includes ## contributions from numerous individuals and organizations. @@ -4596,7 +4599,7 @@ # -------------------------------------------------------------- # PKG_CHECK_MODULES -## Copyright (C) 1996-2014 The Squid Software Foundation and contributors +## Copyright (C) 1996-2015 The Squid Software Foundation and contributors ## ## Squid software is distributed under GPLv2+ license and includes ## contributions from numerous individuals and organizations. @@ -4622,7 +4625,7 @@ -## Copyright (C) 1996-2014 The Squid Software Foundation and contributors +## Copyright (C) 1996-2015 The Squid Software Foundation and contributors ## ## Squid software is distributed under GPLv2+ license and includes ## contributions from numerous individuals and organizations. @@ -4671,7 +4674,7 @@ -## Copyright (C) 1996-2014 The Squid Software Foundation and contributors +## Copyright (C) 1996-2015 The Squid Software Foundation and contributors ## ## Squid software is distributed under GPLv2+ license and includes ## contributions from numerous individuals and organizations. @@ -31659,7 +31662,7 @@ fi -## Copyright (C) 1996-2014 The Squid Software Foundation and contributors +## Copyright (C) 1996-2015 The Squid Software Foundation and contributors ## ## Squid software is distributed under GPLv2+ license and includes ## contributions from numerous individuals and organizations. @@ -31710,7 +31713,7 @@ # modules converted to autoconf macros already # NP: we only need this list because m4_include() does not accept variables if test "x$helper" = "xDB" ; then - ## Copyright (C) 1996-2014 The Squid Software Foundation and contributors + ## Copyright (C) 1996-2015 The Squid Software Foundation and contributors ## ## Squid software is distributed under GPLv2+ license and includes ## contributions from numerous individuals and organizations. @@ -31723,7 +31726,7 @@ elif test "x$helper" = "xLDAP" ; then - ## Copyright (C) 1996-2014 The Squid Software Foundation and contributors + ## Copyright (C) 1996-2015 The Squid Software Foundation and contributors ## ## Squid software is distributed under GPLv2+ license and includes ## contributions from numerous individuals and organizations. @@ -31746,7 +31749,7 @@ elif test "x$helper" = "xMSNT-multi-domain" ; then - ## Copyright (C) 1996-2014 The Squid Software Foundation and contributors + ## Copyright (C) 1996-2015 The Squid Software Foundation and contributors ## ## Squid software is distributed under GPLv2+ license and includes ## contributions from numerous individuals and organizations. @@ -31758,34 +31761,8 @@ fi - elif test "x$helper" = "xMSNT" ; then - ## Copyright (C) 1996-2014 The Squid Software Foundation and contributors -## -## Squid software is distributed under GPLv2+ license and includes -## contributions from numerous individuals and organizations. -## Please see the COPYING and CONTRIBUTORS files for details. -## - -BUILD_HELPER="MSNT" - -# DONT build this helper on Windows -for ac_header in w32api/windows.h windows.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_cxx_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - BUILD_HELPER="" -fi - -done - - - elif test "x$helper" = "xNCSA" ; then - ## Copyright (C) 1996-2014 The Squid Software Foundation and contributors + ## Copyright (C) 1996-2015 The Squid Software Foundation and contributors ## ## Squid software is distributed under GPLv2+ license and includes ## contributions from numerous individuals and organizations. @@ -31852,7 +31829,7 @@ elif test "x$helper" = "xNIS" ; then - ## Copyright (C) 1996-2014 The Squid Software Foundation and contributors + ## Copyright (C) 1996-2015 The Squid Software Foundation and contributors ## ## Squid software is distributed under GPLv2+ license and includes ## contributions from numerous individuals and organizations. @@ -31884,7 +31861,7 @@ elif test "x$helper" = "xPAM" ; then - ## Copyright (C) 1996-2014 The Squid Software Foundation and contributors + ## Copyright (C) 1996-2015 The Squid Software Foundation and contributors ## ## Squid software is distributed under GPLv2+ license and includes ## contributions from numerous individuals and organizations. @@ -31980,7 +31957,7 @@ elif test "x$helper" = "xPOP3" ; then - ## Copyright (C) 1996-2014 The Squid Software Foundation and contributors + ## Copyright (C) 1996-2015 The Squid Software Foundation and contributors ## ## Squid software is distributed under GPLv2+ license and includes ## contributions from numerous individuals and organizations. @@ -31993,7 +31970,7 @@ elif test "x$helper" = "xRADIUS" ; then - ## Copyright (C) 1996-2014 The Squid Software Foundation and contributors + ## Copyright (C) 1996-2015 The Squid Software Foundation and contributors ## ## Squid software is distributed under GPLv2+ license and includes ## contributions from numerous individuals and organizations. @@ -32004,7 +31981,7 @@ elif test "x$helper" = "xSASL" ; then - ## Copyright (C) 1996-2014 The Squid Software Foundation and contributors + ## Copyright (C) 1996-2015 The Squid Software Foundation and contributors ## ## Squid software is distributed under GPLv2+ license and includes ## contributions from numerous individuals and organizations. @@ -32143,7 +32120,7 @@ elif test "x$helper" = "xSMB" ; then - ## Copyright (C) 1996-2014 The Squid Software Foundation and contributors + ## Copyright (C) 1996-2015 The Squid Software Foundation and contributors ## ## Squid software is distributed under GPLv2+ license and includes ## contributions from numerous individuals and organizations. @@ -32201,8 +32178,34 @@ BUILD_HELPER="SMB" + elif test "x$helper" = "xSMB_LM" ; then + ## Copyright (C) 1996-2015 The Squid Software Foundation and contributors +## +## Squid software is distributed under GPLv2+ license and includes +## contributions from numerous individuals and organizations. +## Please see the COPYING and CONTRIBUTORS files for details. +## + +BUILD_HELPER="SMB_LM" + +# DONT build this helper on Windows +for ac_header in w32api/windows.h windows.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_cxx_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + BUILD_HELPER="" +fi + +done + + + elif test "x$helper" = "xSSPI" ; then - ## Copyright (C) 1996-2014 The Squid Software Foundation and contributors + ## Copyright (C) 1996-2015 The Squid Software Foundation and contributors ## ## Squid software is distributed under GPLv2+ license and includes ## contributions from numerous individuals and organizations. @@ -32226,7 +32229,7 @@ elif test "x$helper" = "xfake" ; then - ## Copyright (C) 1996-2014 The Squid Software Foundation and contributors + ## Copyright (C) 1996-2015 The Squid Software Foundation and contributors ## ## Squid software is distributed under GPLv2+ license and includes ## contributions from numerous individuals and organizations. @@ -32237,7 +32240,7 @@ elif test "x$helper" = "xgetpwnam" ; then - ## Copyright (C) 1996-2014 The Squid Software Foundation and contributors + ## Copyright (C) 1996-2015 The Squid Software Foundation and contributors ## ## Squid software is distributed under GPLv2+ license and includes ## contributions from numerous individuals and organizations. @@ -32371,7 +32374,7 @@ fi -## Copyright (C) 1996-2014 The Squid Software Foundation and contributors +## Copyright (C) 1996-2015 The Squid Software Foundation and contributors ## ## Squid software is distributed under GPLv2+ license and includes ## contributions from numerous individuals and organizations. @@ -32421,7 +32424,7 @@ # modules converted to autoconf macros already # NP: we only need this list because m4_include() does not accept variables if test "x$helper" = "xLDAP" ; then - ## Copyright (C) 1996-2014 The Squid Software Foundation and contributors + ## Copyright (C) 1996-2015 The Squid Software Foundation and contributors ## ## Squid software is distributed under GPLv2+ license and includes ## contributions from numerous individuals and organizations. @@ -32444,7 +32447,7 @@ elif test "x$helper" = "xeDirectory" ; then - ## Copyright (C) 1996-2014 The Squid Software Foundation and contributors + ## Copyright (C) 1996-2015 The Squid Software Foundation and contributors ## ## Squid software is distributed under GPLv2+ license and includes ## contributions from numerous individuals and organizations. @@ -32467,7 +32470,7 @@ elif test "x$helper" = "xfile" ; then - ## Copyright (C) 1996-2014 The Squid Software Foundation and contributors + ## Copyright (C) 1996-2015 The Squid Software Foundation and contributors ## ## Squid software is distributed under GPLv2+ license and includes ## contributions from numerous individuals and organizations. @@ -32514,7 +32517,7 @@ fi -## Copyright (C) 1996-2014 The Squid Software Foundation and contributors +## Copyright (C) 1996-2015 The Squid Software Foundation and contributors ## ## Squid software is distributed under GPLv2+ license and includes ## contributions from numerous individuals and organizations. @@ -32564,7 +32567,7 @@ # modules converted to autoconf macros already # NP: we only need this list because m4_include() does not accept variables if test "x$helper" = "xSSPI" ; then - ## Copyright (C) 1996-2014 The Squid Software Foundation and contributors + ## Copyright (C) 1996-2015 The Squid Software Foundation and contributors ## ## Squid software is distributed under GPLv2+ license and includes ## contributions from numerous individuals and organizations. @@ -32590,7 +32593,7 @@ elif test "x$helper" = "xkerberos" ; then - ## Copyright (C) 1996-2014 The Squid Software Foundation and contributors + ## Copyright (C) 1996-2015 The Squid Software Foundation and contributors ## ## Squid software is distributed under GPLv2+ license and includes ## contributions from numerous individuals and organizations. @@ -32603,7 +32606,7 @@ elif test "x$helper" = "xwrapper" ; then - ## Copyright (C) 1996-2014 The Squid Software Foundation and contributors + ## Copyright (C) 1996-2015 The Squid Software Foundation and contributors ## ## Squid software is distributed under GPLv2+ license and includes ## contributions from numerous individuals and organizations. @@ -32660,7 +32663,7 @@ fi -## Copyright (C) 1996-2014 The Squid Software Foundation and contributors +## Copyright (C) 1996-2015 The Squid Software Foundation and contributors ## ## Squid software is distributed under GPLv2+ license and includes ## contributions from numerous individuals and organizations. @@ -32711,7 +32714,7 @@ # modules converted to autoconf macros already # NP: we only need this list because m4_include() does not accept variables if test "x$helper" = "xfake" ; then - ## Copyright (C) 1996-2014 The Squid Software Foundation and contributors + ## Copyright (C) 1996-2015 The Squid Software Foundation and contributors ## ## Squid software is distributed under GPLv2+ license and includes ## contributions from numerous individuals and organizations. @@ -32722,7 +32725,7 @@ elif test "x$helper" = "xSSPI" ; then - ## Copyright (C) 1996-2014 The Squid Software Foundation and contributors + ## Copyright (C) 1996-2015 The Squid Software Foundation and contributors ## ## Squid software is distributed under GPLv2+ license and includes ## contributions from numerous individuals and organizations. @@ -32748,7 +32751,7 @@ elif test "x$helper" = "xsmb_lm" ; then - ## Copyright (C) 1996-2014 The Squid Software Foundation and contributors + ## Copyright (C) 1996-2015 The Squid Software Foundation and contributors ## ## Squid software is distributed under GPLv2+ license and includes ## contributions from numerous individuals and organizations. @@ -32856,7 +32859,7 @@ fi -## Copyright (C) 1996-2014 The Squid Software Foundation and contributors +## Copyright (C) 1996-2015 The Squid Software Foundation and contributors ## ## Squid software is distributed under GPLv2+ license and includes ## contributions from numerous individuals and organizations. @@ -32894,7 +32897,7 @@ # modules converted to autoconf macros already # NP: we only need this list because m4_include() does not accept variables if test "x$helper" = "xDB" ; then - ## Copyright (C) 1996-2014 The Squid Software Foundation and contributors + ## Copyright (C) 1996-2015 The Squid Software Foundation and contributors ## ## Squid software is distributed under GPLv2+ license and includes ## contributions from numerous individuals and organizations. @@ -32907,7 +32910,7 @@ elif test "x$helper" = "xfile" ; then - ## Copyright (C) 1996-2014 The Squid Software Foundation and contributors + ## Copyright (C) 1996-2015 The Squid Software Foundation and contributors ## ## Squid software is distributed under GPLv2+ license and includes ## contributions from numerous individuals and organizations. @@ -32946,7 +32949,7 @@ fi -## Copyright (C) 1996-2014 The Squid Software Foundation and contributors +## Copyright (C) 1996-2015 The Squid Software Foundation and contributors ## ## Squid software is distributed under GPLv2+ license and includes ## contributions from numerous individuals and organizations. @@ -32982,7 +32985,7 @@ # modules converted to autoconf macros already # NP: we only need this list because m4_include() does not accept variables if test "x$helper" = "xAD_group" ; then - ## Copyright (C) 1996-2014 The Squid Software Foundation and contributors + ## Copyright (C) 1996-2015 The Squid Software Foundation and contributors ## ## Squid software is distributed under GPLv2+ license and includes ## contributions from numerous individuals and organizations. @@ -33014,7 +33017,7 @@ elif test "x$helper" = "xLDAP_group" ; then - ## Copyright (C) 1996-2014 The Squid Software Foundation and contributors + ## Copyright (C) 1996-2015 The Squid Software Foundation and contributors ## ## Squid software is distributed under GPLv2+ license and includes ## contributions from numerous individuals and organizations. @@ -33037,7 +33040,7 @@ elif test "x$helper" = "xLM_group" ; then - ## Copyright (C) 1996-2014 The Squid Software Foundation and contributors + ## Copyright (C) 1996-2015 The Squid Software Foundation and contributors ## ## Squid software is distributed under GPLv2+ license and includes ## contributions from numerous individuals and organizations. @@ -33060,7 +33063,7 @@ elif test "x$helper" = "xdelayer" ; then - ## Copyright (C) 1996-2014 The Squid Software Foundation and contributors + ## Copyright (C) 1996-2015 The Squid Software Foundation and contributors ## ## Squid software is distributed under GPLv2+ license and includes ## contributions from numerous individuals and organizations. @@ -33073,7 +33076,7 @@ elif test "x$helper" = "xSQL_session" ; then - ## Copyright (C) 1996-2014 The Squid Software Foundation and contributors + ## Copyright (C) 1996-2015 The Squid Software Foundation and contributors ## ## Squid software is distributed under GPLv2+ license and includes ## contributions from numerous individuals and organizations. @@ -33086,7 +33089,7 @@ elif test "x$helper" = "xeDirectory_userip" ; then - ## Copyright (C) 1996-2014 The Squid Software Foundation and contributors + ## Copyright (C) 1996-2015 The Squid Software Foundation and contributors ## ## Squid software is distributed under GPLv2+ license and includes ## contributions from numerous individuals and organizations. @@ -33109,7 +33112,7 @@ elif test "x$helper" = "xfile_userip" ; then - ## Copyright (C) 1996-2014 The Squid Software Foundation and contributors + ## Copyright (C) 1996-2015 The Squid Software Foundation and contributors ## ## Squid software is distributed under GPLv2+ license and includes ## contributions from numerous individuals and organizations. @@ -33131,7 +33134,7 @@ elif test "x$helper" = "xkerberos_ldap_group" ; then - ## Copyright (C) 1996-2014 The Squid Software Foundation and contributors + ## Copyright (C) 1996-2015 The Squid Software Foundation and contributors ## ## Squid software is distributed under GPLv2+ license and includes ## contributions from numerous individuals and organizations. @@ -33268,7 +33271,7 @@ elif test "x$helper" = "xsession" ; then - ## Copyright (C) 1996-2014 The Squid Software Foundation and contributors + ## Copyright (C) 1996-2015 The Squid Software Foundation and contributors ## ## Squid software is distributed under GPLv2+ license and includes ## contributions from numerous individuals and organizations. @@ -33293,7 +33296,7 @@ elif test "x$helper" = "xtime_quota" ; then - ## Copyright (C) 1996-2014 The Squid Software Foundation and contributors + ## Copyright (C) 1996-2015 The Squid Software Foundation and contributors ## ## Squid software is distributed under GPLv2+ license and includes ## contributions from numerous individuals and organizations. @@ -33326,7 +33329,7 @@ elif test "x$helper" = "xunix_group" ; then - ## Copyright (C) 1996-2014 The Squid Software Foundation and contributors + ## Copyright (C) 1996-2015 The Squid Software Foundation and contributors ## ## Squid software is distributed under GPLv2+ license and includes ## contributions from numerous individuals and organizations. @@ -33348,7 +33351,7 @@ elif test "x$helper" = "xwbinfo_group" ; then - ## Copyright (C) 1996-2014 The Squid Software Foundation and contributors + ## Copyright (C) 1996-2015 The Squid Software Foundation and contributors ## ## Squid software is distributed under GPLv2+ license and includes ## contributions from numerous individuals and organizations. @@ -33438,7 +33441,7 @@ fi -## Copyright (C) 1996-2014 The Squid Software Foundation and contributors +## Copyright (C) 1996-2015 The Squid Software Foundation and contributors ## ## Squid software is distributed under GPLv2+ license and includes ## contributions from numerous individuals and organizations. @@ -33474,7 +33477,7 @@ # modules converted to autoconf macros already # NP: we only need this list because m4_include() does not accept variables if test "x$helper" = "xfake" ; then - ## Copyright (C) 1996-2014 The Squid Software Foundation and contributors + ## Copyright (C) 1996-2015 The Squid Software Foundation and contributors ## ## Squid software is distributed under GPLv2+ license and includes ## contributions from numerous individuals and organizations. @@ -33512,7 +33515,7 @@ fi -## Copyright (C) 1996-2014 The Squid Software Foundation and contributors +## Copyright (C) 1996-2015 The Squid Software Foundation and contributors ## ## Squid software is distributed under GPLv2+ license and includes ## contributions from numerous individuals and organizations. @@ -33548,7 +33551,7 @@ # modules converted to autoconf macros already # NP: we only need this list because m4_include() does not accept variables if test "x$helper" = "xfile" ; then - ## Copyright (C) 1996-2014 The Squid Software Foundation and contributors + ## Copyright (C) 1996-2015 The Squid Software Foundation and contributors ## ## Squid software is distributed under GPLv2+ license and includes ## contributions from numerous individuals and organizations. @@ -34265,10 +34268,6 @@ glob.h \ gnumalloc.h \ grp.h \ - ip_compat.h \ - ip_fil_compat.h \ - ip_fil.h \ - ip_nat.h \ ipl.h \ lber.h \ ldap.h \ @@ -34283,7 +34282,6 @@ netdb.h \ netinet/in.h \ netinet/in_systm.h \ - netinet/ip_fil_compat.h \ netinet/tcp.h \ paths.h \ poll.h \ @@ -34410,12 +34408,8 @@ netinet/in.h \ netinet/ip.h \ netinet/ip6.h \ - netinet/ip_compat.h\ - netinet/ip_fil_compat.h\ - netinet/ip_fil.h\ netinet/ip_icmp.h \ netinet/ipl.h \ - netinet/ip_nat.h\ net/pf/pfvar.h \ net/pfvar.h \ sys/mount.h\ @@ -37537,8 +37531,8 @@ ac_cv_require_rtti=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - if test "ac_cv_require_rtti" != "no" ; then - CFLAGS="$CXXFLAGS -rtti" + if test "xac_cv_require_rtti" != "xno" ; then + CFLAGS="$CFLAGS -rtti" CXXFLAGS="$CXXFLAGS -rtti" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -37579,8 +37573,6 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_require_rtti" >&5 $as_echo "$ac_cv_require_rtti" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: ac_cv_require_rtti" >&5 -$as_echo "ac_cv_require_rtti" >&6; } if test "$ac_cv_require_rtti" = "yes"; then SQUID_CFLAGS="-rtti $SQUID_CFLAGS" @@ -37618,8 +37610,8 @@ ac_cv_require_qcpluscmt=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - if test "ac_cv_require_qcpluscmt" != "no" ; then - CFLAGS="$CXXFLAGS -qcpluscmt" + if test "xac_cv_require_qcpluscmt" != "xno" ; then + CFLAGS="$CFLAGS -qcpluscmt" CXXFLAGS="$CXXFLAGS -qcpluscmt" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -37645,8 +37637,6 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_require_qcpluscmt" >&5 $as_echo "$ac_cv_require_qcpluscmt" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: ac_cv_require_qcpluscmt" >&5 -$as_echo "ac_cv_require_qcpluscmt" >&6; } ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' @@ -37804,32 +37794,6 @@ fi -ac_fn_cxx_check_func "$LINENO" "inet_ntop" "ac_cv_func_inet_ntop" -if test "x$ac_cv_func_inet_ntop" = xyes; then : - $as_echo "#define HAVE_INET_NTOP 1" >>confdefs.h - -else - case " $LIBOBJS " in - *" inet_ntop.$ac_objext "* ) ;; - *) LIBOBJS="$LIBOBJS inet_ntop.$ac_objext" - ;; -esac - -fi - -ac_fn_cxx_check_func "$LINENO" "inet_pton" "ac_cv_func_inet_pton" -if test "x$ac_cv_func_inet_pton" = xyes; then : - $as_echo "#define HAVE_INET_PTON 1" >>confdefs.h - -else - case " $LIBOBJS " in - *" inet_pton.$ac_objext "* ) ;; - *) LIBOBJS="$LIBOBJS inet_pton.$ac_objext" - ;; -esac - -fi - ac_fn_cxx_check_func "$LINENO" "initgroups" "ac_cv_func_initgroups" if test "x$ac_cv_func_initgroups" = xyes; then : $as_echo "#define HAVE_INITGROUPS 1" >>confdefs.h @@ -37843,32 +37807,6 @@ fi -ac_fn_cxx_check_func "$LINENO" "getaddrinfo" "ac_cv_func_getaddrinfo" -if test "x$ac_cv_func_getaddrinfo" = xyes; then : - $as_echo "#define HAVE_GETADDRINFO 1" >>confdefs.h - -else - case " $LIBOBJS " in - *" getaddrinfo.$ac_objext "* ) ;; - *) LIBOBJS="$LIBOBJS getaddrinfo.$ac_objext" - ;; -esac - -fi - -ac_fn_cxx_check_func "$LINENO" "getnameinfo" "ac_cv_func_getnameinfo" -if test "x$ac_cv_func_getnameinfo" = xyes; then : - $as_echo "#define HAVE_GETNAMEINFO 1" >>confdefs.h - -else - case " $LIBOBJS " in - *" getnameinfo.$ac_objext "* ) ;; - *) LIBOBJS="$LIBOBJS getnameinfo.$ac_objext" - ;; -esac - -fi - ac_fn_cxx_check_func "$LINENO" "psignal" "ac_cv_func_psignal" if test "x$ac_cv_func_psignal" = xyes; then : $as_echo "#define HAVE_PSIGNAL 1" >>confdefs.h @@ -37923,6 +37861,160 @@ +ac_fn_cxx_check_decl "$LINENO" "getaddrinfo" "ac_cv_have_decl_getaddrinfo" " +/* + * BSD requires sys/types.h, sys/socket.h, netinet/in.h, netdb.h, arpa/inet.h + * Linux requires sys/types.h, sys/socket.h, arpa/inet.h + * Windows requires sys/socket.h, winsock2.h, ws2tcpip.h + */ +#if HAVE_SYS_TYPES_H +#include +#endif +#if HAVE_NETINET_IN_H +#include +#endif +#if HAVE_SYS_SOCKET_H +#include +#endif +#if HAVE_NETDB_H +#include +#endif +#if HAVE_ARPA_INET_H +#include +#endif +#if HAVE_WINSOCK2_H +#include +#endif +#if HAVE_WS2TCPIP_H +#include +#endif + +" +if test "x$ac_cv_have_decl_getaddrinfo" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_GETADDRINFO $ac_have_decl +_ACEOF +ac_fn_cxx_check_decl "$LINENO" "getnameinfo" "ac_cv_have_decl_getnameinfo" " +/* + * BSD requires sys/types.h, sys/socket.h, netinet/in.h, netdb.h, arpa/inet.h + * Linux requires sys/types.h, sys/socket.h, arpa/inet.h + * Windows requires sys/socket.h, winsock2.h, ws2tcpip.h + */ +#if HAVE_SYS_TYPES_H +#include +#endif +#if HAVE_NETINET_IN_H +#include +#endif +#if HAVE_SYS_SOCKET_H +#include +#endif +#if HAVE_NETDB_H +#include +#endif +#if HAVE_ARPA_INET_H +#include +#endif +#if HAVE_WINSOCK2_H +#include +#endif +#if HAVE_WS2TCPIP_H +#include +#endif + +" +if test "x$ac_cv_have_decl_getnameinfo" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_GETNAMEINFO $ac_have_decl +_ACEOF +ac_fn_cxx_check_decl "$LINENO" "inet_ntop" "ac_cv_have_decl_inet_ntop" " +/* + * BSD requires sys/types.h, sys/socket.h, netinet/in.h, netdb.h, arpa/inet.h + * Linux requires sys/types.h, sys/socket.h, arpa/inet.h + * Windows requires sys/socket.h, winsock2.h, ws2tcpip.h + */ +#if HAVE_SYS_TYPES_H +#include +#endif +#if HAVE_NETINET_IN_H +#include +#endif +#if HAVE_SYS_SOCKET_H +#include +#endif +#if HAVE_NETDB_H +#include +#endif +#if HAVE_ARPA_INET_H +#include +#endif +#if HAVE_WINSOCK2_H +#include +#endif +#if HAVE_WS2TCPIP_H +#include +#endif + +" +if test "x$ac_cv_have_decl_inet_ntop" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_INET_NTOP $ac_have_decl +_ACEOF +ac_fn_cxx_check_decl "$LINENO" "inet_pton" "ac_cv_have_decl_inet_pton" " +/* + * BSD requires sys/types.h, sys/socket.h, netinet/in.h, netdb.h, arpa/inet.h + * Linux requires sys/types.h, sys/socket.h, arpa/inet.h + * Windows requires sys/socket.h, winsock2.h, ws2tcpip.h + */ +#if HAVE_SYS_TYPES_H +#include +#endif +#if HAVE_NETINET_IN_H +#include +#endif +#if HAVE_SYS_SOCKET_H +#include +#endif +#if HAVE_NETDB_H +#include +#endif +#if HAVE_ARPA_INET_H +#include +#endif +#if HAVE_WINSOCK2_H +#include +#endif +#if HAVE_WS2TCPIP_H +#include +#endif + +" +if test "x$ac_cv_have_decl_inet_pton" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_INET_PTON $ac_have_decl +_ACEOF + + # Magic which checks whether we are forcing a type of comm loop we # are actually going to (ab)use. # Mostly ripped from squid-commloops, thanks to adrian and benno @@ -38348,8 +38440,138 @@ fi - if test "x$enable_ipf_transparent" != "xno" ; then + + if test "x$squid_cv_broken_ipfilter_minor_t" = "x"; then + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +# include +# include +# include + +# include +# include +# include + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + squid_cv_broken_ipfilter_minor_t=0 + +else + + ## on fail, test the hack + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#define minor_t fubaar +# include +# include +# include +#undef minor_t +# include +# include +# include + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + squid_cv_broken_ipfilter_minor_t=1 + +else + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: unable to make IPFilter work with netinet/ headers" >&5 +$as_echo "unable to make IPFilter work with netinet/ headers" >&6; } + +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + fi + + +cat >>confdefs.h <<_ACEOF +#define USE_SOLARIS_IPFILTER_MINOR_T_HACK $squid_cv_broken_ipfilter_minor_t +_ACEOF + + +## check for IPFilter headers that require this hack +## (but first netinet/in.h and sys/ioccom.h which they depend on) + for ac_header in \ + netinet/in.h \ + sys/ioccom.h \ + ip_compat.h \ + ip_fil_compat.h \ + ip_fil.h \ + ip_nat.h \ + netinet/ip_compat.h \ + netinet/ip_fil_compat.h \ + netinet/ip_fil.h \ + netinet/ip_nat.h \ + +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_cxx_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" " +#if USE_SOLARIS_IPFILTER_MINOR_T_HACK +#define minor_t fubar +#endif +#if HAVE_SYS_TYPES_H +#include +#endif +#if HAVE_NETINET_IN_H +#include +#endif +#if HAVE_SYS_IOCCOM_H +#include +#endif +#if USE_SOLARIS_IPFILTER_MINOR_T_HACK +#undef minor_t +#endif +#if HAVE_IP_COMPAT_H +#include +#elif HAVE_NETINET_IP_COMPAT_H +#include +#endif +#if HAVE_IP_FIL_H +#include +#elif HAVE_NETINET_IP_FIL_H +#include +#endif +#if !defined(IPFILTER_VERSION) +#define IPFILTER_VERSION 5000004 +#endif + +" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for availability of IP-Filter header files" >&5 $as_echo_n "checking for availability of IP-Filter header files... " >&6; } # hold on to your hats... @@ -38358,8 +38580,8 @@ "x$ac_cv_header_netinet_ip_compat_h" = "xyes" -o \ "x$ac_cv_header_netinet_ip_fil_compat_h" = "xyes" ; then have_ipfilter_compat_header="yes" - fi - if test "x$have_ipfilter_compat_header" = "xyes" -a \ + fi + if test "x$have_ipfilter_compat_header" = "xyes" -a \ "x$ac_cv_header_ip_fil_h" = "xyes" -a \ "x$ac_cv_header_ip_nat_h" = "xyes" ; then enable_ipf_transparent="yes" @@ -38372,6 +38594,15 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $IPF_TRANSPARENT" >&5 $as_echo "$IPF_TRANSPARENT" >&6; } + +## On Solaris Ipfilter includes expect that SOLARIS2 is defined with the +## Solaris minor version (8, 9, 10, ...) + if test "x$enable_ipf_transparent" = "xyes" -a "x$squid_host_os" = "xsolaris" ; then + solrev=`uname -r | sh -c 'IFS=. read j n x; echo $n'` + CFLAGS="-DSOLARIS2=$solrev $CFLAGS" + CXXFLAGS="-DSOLARIS2=$solrev $CXXFLAGS" + fi + fi { $as_echo "$as_me:${as_lineno-$LINENO}: IPF-based transparent proxying enabled: $enable_ipf_transparent" >&5 $as_echo "$as_me: IPF-based transparent proxying enabled: $enable_ipf_transparent" >&6;} @@ -38390,12 +38621,6 @@ unset squid_tmp_define -if test "x$enable_ipf_transparent" = "xyes" -a "x$squid_host_os" = "xsolaris" ; then - solrev=`uname -r | sh -c 'IFS=. read j n x; echo $n'` - CFLAGS="-DSOLARIS2=$solrev $CFLAGS" - CXXFLAGS="-DSOLARIS2=$solrev $CXXFLAGS" -fi - if test "x$with_nat_devpf" != "xno" ; then if test "x$ac_cv_header_net_pfvar_h" = "xyes" -o \ "x$ac_cv_header_net_pf_pfvar_h" = "xyes"; then @@ -39760,7 +39985,7 @@ rm -f core -ac_config_files="$ac_config_files Makefile compat/Makefile lib/Makefile lib/ntlmauth/Makefile lib/libTrie/Makefile lib/libTrie/test/Makefile lib/profiler/Makefile lib/rfcnb/Makefile lib/smblib/Makefile lib/snmplib/Makefile scripts/Makefile src/Makefile src/anyp/Makefile src/ftp/Makefile src/base/Makefile src/acl/Makefile src/clients/Makefile src/servers/Makefile src/fs/Makefile src/repl/Makefile src/auth/Makefile src/auth/basic/Makefile src/auth/digest/Makefile src/auth/negotiate/Makefile src/auth/ntlm/Makefile src/adaptation/Makefile src/adaptation/icap/Makefile src/adaptation/ecap/Makefile src/comm/Makefile src/esi/Makefile src/eui/Makefile src/format/Makefile src/helper/Makefile src/http/Makefile src/icmp/Makefile src/ident/Makefile src/ip/Makefile src/log/Makefile src/ipc/Makefile src/ssl/Makefile src/mgr/Makefile src/parser/Makefile src/snmp/Makefile contrib/Makefile icons/Makefile errors/Makefile test-suite/Makefile doc/Makefile doc/manuals/Makefile helpers/Makefile helpers/basic_auth/Makefile helpers/basic_auth/DB/Makefile helpers/basic_auth/fake/Makefile helpers/basic_auth/getpwnam/Makefile helpers/basic_auth/LDAP/Makefile helpers/basic_auth/MSNT/Makefile helpers/basic_auth/MSNT-multi-domain/Makefile helpers/basic_auth/NCSA/Makefile helpers/basic_auth/NIS/Makefile helpers/basic_auth/PAM/Makefile helpers/basic_auth/POP3/Makefile helpers/basic_auth/RADIUS/Makefile helpers/basic_auth/SASL/Makefile helpers/basic_auth/SMB/Makefile helpers/basic_auth/SSPI/Makefile helpers/digest_auth/Makefile helpers/digest_auth/eDirectory/Makefile helpers/digest_auth/file/Makefile helpers/digest_auth/LDAP/Makefile helpers/ntlm_auth/Makefile helpers/ntlm_auth/fake/Makefile helpers/ntlm_auth/smb_lm/Makefile helpers/ntlm_auth/SSPI/Makefile helpers/negotiate_auth/Makefile helpers/negotiate_auth/kerberos/Makefile helpers/negotiate_auth/SSPI/Makefile helpers/negotiate_auth/wrapper/Makefile helpers/external_acl/Makefile helpers/external_acl/AD_group/Makefile helpers/external_acl/delayer/Makefile helpers/external_acl/eDirectory_userip/Makefile helpers/external_acl/file_userip/Makefile helpers/external_acl/kerberos_ldap_group/Makefile helpers/external_acl/LDAP_group/Makefile helpers/external_acl/LM_group/Makefile helpers/external_acl/session/Makefile helpers/external_acl/SQL_session/Makefile helpers/external_acl/unix_group/Makefile helpers/external_acl/wbinfo_group/Makefile helpers/external_acl/time_quota/Makefile helpers/log_daemon/Makefile helpers/log_daemon/DB/Makefile helpers/log_daemon/file/Makefile helpers/url_rewrite/Makefile helpers/url_rewrite/fake/Makefile helpers/ssl/Makefile helpers/storeid_rewrite/Makefile helpers/storeid_rewrite/file/Makefile tools/Makefile tools/purge/Makefile tools/squidclient/Makefile tools/systemd/Makefile tools/sysvinit/Makefile" +ac_config_files="$ac_config_files Makefile compat/Makefile lib/Makefile lib/ntlmauth/Makefile lib/libTrie/Makefile lib/libTrie/test/Makefile lib/profiler/Makefile lib/rfcnb/Makefile lib/smblib/Makefile lib/snmplib/Makefile scripts/Makefile src/Makefile src/anyp/Makefile src/ftp/Makefile src/base/Makefile src/acl/Makefile src/clients/Makefile src/servers/Makefile src/fs/Makefile src/repl/Makefile src/auth/Makefile src/auth/basic/Makefile src/auth/digest/Makefile src/auth/negotiate/Makefile src/auth/ntlm/Makefile src/adaptation/Makefile src/adaptation/icap/Makefile src/adaptation/ecap/Makefile src/comm/Makefile src/esi/Makefile src/eui/Makefile src/format/Makefile src/helper/Makefile src/http/Makefile src/icmp/Makefile src/ident/Makefile src/ip/Makefile src/log/Makefile src/ipc/Makefile src/ssl/Makefile src/mgr/Makefile src/parser/Makefile src/snmp/Makefile contrib/Makefile icons/Makefile errors/Makefile test-suite/Makefile doc/Makefile doc/manuals/Makefile helpers/Makefile helpers/basic_auth/Makefile helpers/basic_auth/DB/Makefile helpers/basic_auth/fake/Makefile helpers/basic_auth/getpwnam/Makefile helpers/basic_auth/LDAP/Makefile helpers/basic_auth/MSNT-multi-domain/Makefile helpers/basic_auth/NCSA/Makefile helpers/basic_auth/NIS/Makefile helpers/basic_auth/PAM/Makefile helpers/basic_auth/POP3/Makefile helpers/basic_auth/RADIUS/Makefile helpers/basic_auth/SASL/Makefile helpers/basic_auth/SMB/Makefile helpers/basic_auth/SMB_LM/Makefile helpers/basic_auth/SSPI/Makefile helpers/digest_auth/Makefile helpers/digest_auth/eDirectory/Makefile helpers/digest_auth/file/Makefile helpers/digest_auth/LDAP/Makefile helpers/ntlm_auth/Makefile helpers/ntlm_auth/fake/Makefile helpers/ntlm_auth/smb_lm/Makefile helpers/ntlm_auth/SSPI/Makefile helpers/negotiate_auth/Makefile helpers/negotiate_auth/kerberos/Makefile helpers/negotiate_auth/SSPI/Makefile helpers/negotiate_auth/wrapper/Makefile helpers/external_acl/Makefile helpers/external_acl/AD_group/Makefile helpers/external_acl/delayer/Makefile helpers/external_acl/eDirectory_userip/Makefile helpers/external_acl/file_userip/Makefile helpers/external_acl/kerberos_ldap_group/Makefile helpers/external_acl/LDAP_group/Makefile helpers/external_acl/LM_group/Makefile helpers/external_acl/session/Makefile helpers/external_acl/SQL_session/Makefile helpers/external_acl/unix_group/Makefile helpers/external_acl/wbinfo_group/Makefile helpers/external_acl/time_quota/Makefile helpers/log_daemon/Makefile helpers/log_daemon/DB/Makefile helpers/log_daemon/file/Makefile helpers/url_rewrite/Makefile helpers/url_rewrite/fake/Makefile helpers/ssl/Makefile helpers/storeid_rewrite/Makefile helpers/storeid_rewrite/file/Makefile tools/Makefile tools/purge/Makefile tools/squidclient/Makefile tools/systemd/Makefile tools/sysvinit/Makefile" # must configure libltdl subdir unconditionally for "make distcheck" to work @@ -40482,7 +40707,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Squid Web Proxy $as_me 3.5.0.4, which was +This file was extended by Squid Web Proxy $as_me 3.5.1, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -40548,7 +40773,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -Squid Web Proxy config.status 3.5.0.4 +Squid Web Proxy config.status 3.5.1 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" @@ -41110,7 +41335,6 @@ "helpers/basic_auth/fake/Makefile") CONFIG_FILES="$CONFIG_FILES helpers/basic_auth/fake/Makefile" ;; "helpers/basic_auth/getpwnam/Makefile") CONFIG_FILES="$CONFIG_FILES helpers/basic_auth/getpwnam/Makefile" ;; "helpers/basic_auth/LDAP/Makefile") CONFIG_FILES="$CONFIG_FILES helpers/basic_auth/LDAP/Makefile" ;; - "helpers/basic_auth/MSNT/Makefile") CONFIG_FILES="$CONFIG_FILES helpers/basic_auth/MSNT/Makefile" ;; "helpers/basic_auth/MSNT-multi-domain/Makefile") CONFIG_FILES="$CONFIG_FILES helpers/basic_auth/MSNT-multi-domain/Makefile" ;; "helpers/basic_auth/NCSA/Makefile") CONFIG_FILES="$CONFIG_FILES helpers/basic_auth/NCSA/Makefile" ;; "helpers/basic_auth/NIS/Makefile") CONFIG_FILES="$CONFIG_FILES helpers/basic_auth/NIS/Makefile" ;; @@ -41119,6 +41343,7 @@ "helpers/basic_auth/RADIUS/Makefile") CONFIG_FILES="$CONFIG_FILES helpers/basic_auth/RADIUS/Makefile" ;; "helpers/basic_auth/SASL/Makefile") CONFIG_FILES="$CONFIG_FILES helpers/basic_auth/SASL/Makefile" ;; "helpers/basic_auth/SMB/Makefile") CONFIG_FILES="$CONFIG_FILES helpers/basic_auth/SMB/Makefile" ;; + "helpers/basic_auth/SMB_LM/Makefile") CONFIG_FILES="$CONFIG_FILES helpers/basic_auth/SMB_LM/Makefile" ;; "helpers/basic_auth/SSPI/Makefile") CONFIG_FILES="$CONFIG_FILES helpers/basic_auth/SSPI/Makefile" ;; "helpers/digest_auth/Makefile") CONFIG_FILES="$CONFIG_FILES helpers/digest_auth/Makefile" ;; "helpers/digest_auth/eDirectory/Makefile") CONFIG_FILES="$CONFIG_FILES helpers/digest_auth/eDirectory/Makefile" ;; diff -u -r -N squid-3.5.0.4/configure.ac squid-3.5.1/configure.ac --- squid-3.5.0.4/configure.ac 2014-12-20 21:15:31.000000000 -0800 +++ squid-3.5.1/configure.ac 2015-01-13 04:54:25.000000000 -0800 @@ -1,11 +1,11 @@ -## Copyright (C) 1996-2014 The Squid Software Foundation and contributors +## Copyright (C) 1996-2015 The Squid Software Foundation and contributors ## ## Squid software is distributed under GPLv2+ license and includes ## contributions from numerous individuals and organizations. ## Please see the COPYING and CONTRIBUTORS files for details. ## -AC_INIT([Squid Web Proxy],[3.5.0.4],[http://bugs.squid-cache.org/],[squid]) +AC_INIT([Squid Web Proxy],[3.5.1],[http://bugs.squid-cache.org/],[squid]) AC_PREREQ(2.61) AC_CONFIG_HEADERS([include/autoconf.h]) AC_CONFIG_AUX_DIR(cfgaux) @@ -2753,10 +2753,6 @@ glob.h \ gnumalloc.h \ grp.h \ - ip_compat.h \ - ip_fil_compat.h \ - ip_fil.h \ - ip_nat.h \ ipl.h \ lber.h \ ldap.h \ @@ -2771,7 +2767,6 @@ netdb.h \ netinet/in.h \ netinet/in_systm.h \ - netinet/ip_fil_compat.h \ netinet/tcp.h \ paths.h \ poll.h \ @@ -2846,12 +2841,8 @@ netinet/in.h \ netinet/ip.h \ netinet/ip6.h \ - netinet/ip_compat.h\ - netinet/ip_fil_compat.h\ - netinet/ip_fil.h\ netinet/ip_icmp.h \ netinet/ipl.h \ - netinet/ip_nat.h\ net/pf/pfvar.h \ net/pfvar.h \ sys/mount.h\ @@ -3354,17 +3345,42 @@ dnl ... and some we provide local replacements for AC_REPLACE_FUNCS(\ drand48 \ - inet_ntop \ - inet_pton \ initgroups \ - getaddrinfo \ - getnameinfo \ psignal \ strerror \ strtoll \ tempnam \ ) +AC_CHECK_DECLS([getaddrinfo,getnameinfo,inet_ntop,inet_pton],,,[ +/* + * BSD requires sys/types.h, sys/socket.h, netinet/in.h, netdb.h, arpa/inet.h + * Linux requires sys/types.h, sys/socket.h, arpa/inet.h + * Windows requires sys/socket.h, winsock2.h, ws2tcpip.h + */ +#if HAVE_SYS_TYPES_H +#include +#endif +#if HAVE_NETINET_IN_H +#include +#endif +#if HAVE_SYS_SOCKET_H +#include +#endif +#if HAVE_NETDB_H +#include +#endif +#if HAVE_ARPA_INET_H +#include +#endif +#if HAVE_WINSOCK2_H +#include +#endif +#if HAVE_WS2TCPIP_H +#include +#endif +]) + # Magic which checks whether we are forcing a type of comm loop we # are actually going to (ab)use. # Mostly ripped from squid-commloops, thanks to adrian and benno @@ -3486,10 +3502,10 @@ SQUID_CHECK_FUNC_VACOPY SQUID_CHECK_FUNC___VACOPY - dnl IP-Filter support requires ipf header files. These aren't dnl installed by default, so we need to check for them if test "x$enable_ipf_transparent" != "xno" ; then + SQUID_CHECK_BROKEN_SOLARIS_IPFILTER AC_MSG_CHECKING(for availability of IP-Filter header files) # hold on to your hats... if test "x$ac_cv_header_ip_compat_h" = "xyes" -o \ @@ -3497,8 +3513,8 @@ "x$ac_cv_header_netinet_ip_compat_h" = "xyes" -o \ "x$ac_cv_header_netinet_ip_fil_compat_h" = "xyes" ; then have_ipfilter_compat_header="yes" - fi - if test "x$have_ipfilter_compat_header" = "xyes" -a \ + fi + if test "x$have_ipfilter_compat_header" = "xyes" -a \ "x$ac_cv_header_ip_fil_h" = "xyes" -a \ "x$ac_cv_header_ip_nat_h" = "xyes" ; then enable_ipf_transparent="yes" @@ -3510,19 +3526,20 @@ enable_ipf_transparent="no" fi AC_MSG_RESULT($IPF_TRANSPARENT) + +## On Solaris Ipfilter includes expect that SOLARIS2 is defined with the +## Solaris minor version (8, 9, 10, ...) + if test "x$enable_ipf_transparent" = "xyes" -a "x$squid_host_os" = "xsolaris" ; then + solrev=`uname -r | sh -c 'IFS=. read j n x; echo $n'` + CFLAGS="-DSOLARIS2=$solrev $CFLAGS" + CXXFLAGS="-DSOLARIS2=$solrev $CXXFLAGS" + fi + fi AC_MSG_NOTICE([IPF-based transparent proxying enabled: $enable_ipf_transparent]) SQUID_DEFINE_BOOL(IPF_TRANSPARENT,$enable_ipf_transparent, [Enable support for IPF-style transparent proxying]) -if test "x$enable_ipf_transparent" = "xyes" -a "x$squid_host_os" = "xsolaris" ; then -dnl On Solaris Ipfilter includes expect that SOLARIS2 is defined with the -dnl Solaris minor version (8, 9, 10, ...) - solrev=`uname -r | sh -c 'IFS=. read j n x; echo $n'` - CFLAGS="-DSOLARIS2=$solrev $CFLAGS" - CXXFLAGS="-DSOLARIS2=$solrev $CXXFLAGS" -fi - dnl PF /dev/pf support requires a header file. if test "x$with_nat_devpf" != "xno" ; then if test "x$ac_cv_header_net_pfvar_h" = "xyes" -o \ @@ -3795,7 +3812,6 @@ helpers/basic_auth/fake/Makefile helpers/basic_auth/getpwnam/Makefile helpers/basic_auth/LDAP/Makefile - helpers/basic_auth/MSNT/Makefile helpers/basic_auth/MSNT-multi-domain/Makefile helpers/basic_auth/NCSA/Makefile helpers/basic_auth/NIS/Makefile @@ -3804,6 +3820,7 @@ helpers/basic_auth/RADIUS/Makefile helpers/basic_auth/SASL/Makefile helpers/basic_auth/SMB/Makefile + helpers/basic_auth/SMB_LM/Makefile helpers/basic_auth/SSPI/Makefile helpers/digest_auth/Makefile helpers/digest_auth/eDirectory/Makefile diff -u -r -N squid-3.5.0.4/contrib/Makefile.am squid-3.5.1/contrib/Makefile.am --- squid-3.5.0.4/contrib/Makefile.am 2014-12-20 21:11:48.000000000 -0800 +++ squid-3.5.1/contrib/Makefile.am 2015-01-13 04:52:01.000000000 -0800 @@ -1,4 +1,4 @@ -## Copyright (C) 1996-2014 The Squid Software Foundation and contributors +## Copyright (C) 1996-2015 The Squid Software Foundation and contributors ## ## Squid software is distributed under GPLv2+ license and includes ## contributions from numerous individuals and organizations. diff -u -r -N squid-3.5.0.4/contrib/Makefile.in squid-3.5.1/contrib/Makefile.in --- squid-3.5.0.4/contrib/Makefile.in 2014-12-20 21:13:33.000000000 -0800 +++ squid-3.5.1/contrib/Makefile.in 2015-01-13 04:53:10.000000000 -0800 @@ -99,7 +99,6 @@ $(top_srcdir)/helpers/basic_auth/DB/required.m4 \ $(top_srcdir)/helpers/basic_auth/LDAP/required.m4 \ $(top_srcdir)/helpers/basic_auth/MSNT-multi-domain/required.m4 \ - $(top_srcdir)/helpers/basic_auth/MSNT/required.m4 \ $(top_srcdir)/helpers/basic_auth/NCSA/required.m4 \ $(top_srcdir)/helpers/basic_auth/NIS/required.m4 \ $(top_srcdir)/helpers/basic_auth/PAM/required.m4 \ @@ -107,6 +106,7 @@ $(top_srcdir)/helpers/basic_auth/RADIUS/required.m4 \ $(top_srcdir)/helpers/basic_auth/SASL/required.m4 \ $(top_srcdir)/helpers/basic_auth/SMB/required.m4 \ + $(top_srcdir)/helpers/basic_auth/SMB_LM/required.m4 \ $(top_srcdir)/helpers/basic_auth/SSPI/required.m4 \ $(top_srcdir)/helpers/basic_auth/fake/required.m4 \ $(top_srcdir)/helpers/basic_auth/getpwnam/required.m4 \ diff -u -r -N squid-3.5.0.4/contrib/rredir.c squid-3.5.1/contrib/rredir.c --- squid-3.5.0.4/contrib/rredir.c 2014-12-20 21:11:48.000000000 -0800 +++ squid-3.5.1/contrib/rredir.c 2015-01-13 04:52:01.000000000 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (C) 1996-2014 The Squid Software Foundation and contributors + * Copyright (C) 1996-2015 The Squid Software Foundation and contributors * * Squid software is distributed under GPLv2+ license and includes * contributions from numerous individuals and organizations. diff -u -r -N squid-3.5.0.4/contrib/rredir.pl squid-3.5.1/contrib/rredir.pl --- squid-3.5.0.4/contrib/rredir.pl 2014-12-20 21:11:48.000000000 -0800 +++ squid-3.5.1/contrib/rredir.pl 2015-01-13 04:52:01.000000000 -0800 @@ -1,6 +1,6 @@ #!/usr/bin/perl -T -w # -## Copyright (C) 1996-2014 The Squid Software Foundation and contributors +## Copyright (C) 1996-2015 The Squid Software Foundation and contributors ## ## Squid software is distributed under GPLv2+ license and includes ## contributions from numerous individuals and organizations. diff -u -r -N squid-3.5.0.4/CREDITS squid-3.5.1/CREDITS --- squid-3.5.0.4/CREDITS 2014-12-20 21:11:48.000000000 -0800 +++ squid-3.5.1/CREDITS 2015-01-13 04:52:01.000000000 -0800 @@ -687,29 +687,6 @@ ============================================================================== -helpers/basic_auth/MSNT/: - - * (C) 2000 Antonino Iannella, Stellar-X Pty Ltd - * Released under GPL, see COPYING-2.0 for details. - - * Released under GNU Public License - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - -============================================================================== - helpers/basic_auth/NCSA/basic_ncsa_auth.8: This file is distributed in the hope that it will be useful, @@ -956,6 +933,29 @@ ============================================================================== +helpers/basic_auth/SMB_LM/: + + * (C) 2000 Antonino Iannella, Stellar-X Pty Ltd + * Released under GPL, see COPYING-2.0 for details. + + * Released under GNU Public License + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +============================================================================== + helpers/basic_auth/SSPI/: Guido Serassio, Torino - Italy diff -u -r -N squid-3.5.0.4/doc/debug-sections.txt squid-3.5.1/doc/debug-sections.txt --- squid-3.5.0.4/doc/debug-sections.txt 2014-12-20 21:11:48.000000000 -0800 +++ squid-3.5.1/doc/debug-sections.txt 2015-01-13 04:52:01.000000000 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (C) 1996-2014 The Squid Software Foundation and contributors + * Copyright (C) 1996-2015 The Squid Software Foundation and contributors * * Squid software is distributed under GPLv2+ license and includes * contributions from numerous individuals and organizations. diff -u -r -N squid-3.5.0.4/doc/Makefile.am squid-3.5.1/doc/Makefile.am --- squid-3.5.0.4/doc/Makefile.am 2014-12-20 21:11:48.000000000 -0800 +++ squid-3.5.1/doc/Makefile.am 2015-01-13 04:52:01.000000000 -0800 @@ -1,4 +1,4 @@ -## Copyright (C) 1996-2014 The Squid Software Foundation and contributors +## Copyright (C) 1996-2015 The Squid Software Foundation and contributors ## ## Squid software is distributed under GPLv2+ license and includes ## contributions from numerous individuals and organizations. diff -u -r -N squid-3.5.0.4/doc/Makefile.in squid-3.5.1/doc/Makefile.in --- squid-3.5.0.4/doc/Makefile.in 2014-12-20 21:13:33.000000000 -0800 +++ squid-3.5.1/doc/Makefile.in 2015-01-13 04:53:10.000000000 -0800 @@ -94,7 +94,6 @@ $(top_srcdir)/helpers/basic_auth/DB/required.m4 \ $(top_srcdir)/helpers/basic_auth/LDAP/required.m4 \ $(top_srcdir)/helpers/basic_auth/MSNT-multi-domain/required.m4 \ - $(top_srcdir)/helpers/basic_auth/MSNT/required.m4 \ $(top_srcdir)/helpers/basic_auth/NCSA/required.m4 \ $(top_srcdir)/helpers/basic_auth/NIS/required.m4 \ $(top_srcdir)/helpers/basic_auth/PAM/required.m4 \ @@ -102,6 +101,7 @@ $(top_srcdir)/helpers/basic_auth/RADIUS/required.m4 \ $(top_srcdir)/helpers/basic_auth/SASL/required.m4 \ $(top_srcdir)/helpers/basic_auth/SMB/required.m4 \ + $(top_srcdir)/helpers/basic_auth/SMB_LM/required.m4 \ $(top_srcdir)/helpers/basic_auth/SSPI/required.m4 \ $(top_srcdir)/helpers/basic_auth/fake/required.m4 \ $(top_srcdir)/helpers/basic_auth/getpwnam/required.m4 \ diff -u -r -N squid-3.5.0.4/doc/manuals/language.list squid-3.5.1/doc/manuals/language.list --- squid-3.5.0.4/doc/manuals/language.list 2014-12-20 21:11:48.000000000 -0800 +++ squid-3.5.1/doc/manuals/language.list 2015-01-13 04:52:01.000000000 -0800 @@ -1,5 +1,5 @@ ## -## Copyright (C) 1996-2014 The Squid Software Foundation and contributors +## Copyright (C) 1996-2015 The Squid Software Foundation and contributors ## ## Squid software is distributed under GPLv2+ license and includes ## contributions from numerous individuals and organizations. diff -u -r -N squid-3.5.0.4/doc/manuals/Makefile.am squid-3.5.1/doc/manuals/Makefile.am --- squid-3.5.0.4/doc/manuals/Makefile.am 2014-12-20 21:11:48.000000000 -0800 +++ squid-3.5.1/doc/manuals/Makefile.am 2015-01-13 04:52:01.000000000 -0800 @@ -1,4 +1,4 @@ -## Copyright (C) 1996-2014 The Squid Software Foundation and contributors +## Copyright (C) 1996-2015 The Squid Software Foundation and contributors ## ## Squid software is distributed under GPLv2+ license and includes ## contributions from numerous individuals and organizations. diff -u -r -N squid-3.5.0.4/doc/manuals/Makefile.in squid-3.5.1/doc/manuals/Makefile.in --- squid-3.5.0.4/doc/manuals/Makefile.in 2014-12-20 21:13:34.000000000 -0800 +++ squid-3.5.1/doc/manuals/Makefile.in 2015-01-13 04:53:11.000000000 -0800 @@ -95,7 +95,6 @@ $(top_srcdir)/helpers/basic_auth/DB/required.m4 \ $(top_srcdir)/helpers/basic_auth/LDAP/required.m4 \ $(top_srcdir)/helpers/basic_auth/MSNT-multi-domain/required.m4 \ - $(top_srcdir)/helpers/basic_auth/MSNT/required.m4 \ $(top_srcdir)/helpers/basic_auth/NCSA/required.m4 \ $(top_srcdir)/helpers/basic_auth/NIS/required.m4 \ $(top_srcdir)/helpers/basic_auth/PAM/required.m4 \ @@ -103,6 +102,7 @@ $(top_srcdir)/helpers/basic_auth/RADIUS/required.m4 \ $(top_srcdir)/helpers/basic_auth/SASL/required.m4 \ $(top_srcdir)/helpers/basic_auth/SMB/required.m4 \ + $(top_srcdir)/helpers/basic_auth/SMB_LM/required.m4 \ $(top_srcdir)/helpers/basic_auth/SSPI/required.m4 \ $(top_srcdir)/helpers/basic_auth/fake/required.m4 \ $(top_srcdir)/helpers/basic_auth/getpwnam/required.m4 \ diff -u -r -N squid-3.5.0.4/doc/manuals/Substitute.am squid-3.5.1/doc/manuals/Substitute.am --- squid-3.5.0.4/doc/manuals/Substitute.am 2014-12-20 21:11:48.000000000 -0800 +++ squid-3.5.1/doc/manuals/Substitute.am 2015-01-13 04:52:01.000000000 -0800 @@ -1,4 +1,4 @@ -## Copyright (C) 1996-2014 The Squid Software Foundation and contributors +## Copyright (C) 1996-2015 The Squid Software Foundation and contributors ## ## Squid software is distributed under GPLv2+ license and includes ## contributions from numerous individuals and organizations. diff -u -r -N squid-3.5.0.4/errors/af/ERR_ACCESS_DENIED squid-3.5.1/errors/af/ERR_ACCESS_DENIED --- squid-3.5.0.4/errors/af/ERR_ACCESS_DENIED 2014-12-20 21:24:03.000000000 -0800 +++ squid-3.5.1/errors/af/ERR_ACCESS_DENIED 2015-01-13 05:07:32.000000000 -0800 @@ -1,6 +1,6 @@ - + FOUT: Die aangevraagde URL kon nie verkry word nie