See <http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/923/changes>
Changes: [Christos Tsantilas _chtsa...@users.sourceforge.net_] Author: Alex Rousskov <rouss...@measurement-factory.com> Client-side bandwidth limit (a.k.a., quota or delay pool) implementation. In mobile environments, Squid may need to limit Squid-to-client bandwidth available to individual users, identified by their IP addresses. The IP address pool can be as large as a /10 IPv4 network (4 million unique IP addresses) and even larger in IPv6 environments. On the other hand, the code should support thousands of connections coming from a single IP (e.g., a child proxy). The implementation is based on storing bandwidth-related "bucket" information in the existing "client database" hash (client_db.cc). The old code already assigned each client IP a single ClientInfo object, which satisfies the client-side IP-based bandwidth pooling requirements. The old hash size is increased to support up to 32K concurrent clients if needed. Client-side pools are configured similarly to server-side ones, but there is only one pool class. See client_delay_pools, client_delay_initial_bucket_level, client_delay_parameters, and client_delay_access in squid.conf. The client_delay_access matches the client with delay parameters. It does not pool clients from different IP addresses together. Special care is taken to provide fair distribution of bandwidth among clients sharing the same bucket (i.e., clients coming from the same IP address). Multiple same-IP clients competing for bandwidth are queued using FIFO algorithm. If a bucket becomes empty, the first client among those sharing the bucket is delayed by 1 second before it can attempt to receive more response data from Squid. This delay may need to be lowered in high-bandwidth environments. This feature has been documented at http://wiki.squid-cache.org/Features/ClientBandwidthLimit [Amos Jeffries <amosjeffr...@squid-cache.org>] Prep for 3.1.9 ------------------------------------------ [...truncated 960 lines...] checking for library containing dlopen... (cached) -ldl checking for dlerror... (cached) yes checking for shl_load... (cached) no checking for shl_load in -ldld... (cached) no checking for dld_link in -ldld... (cached) no checking for _ prefix in compiled symbols... (cached) no checking whether deplibs are loaded by dlopen... (cached) yes checking for argz.h... (cached) yes checking for error_t... (cached) yes checking for argz_add... (cached) yes checking for argz_append... (cached) yes checking for argz_count... (cached) yes checking for argz_create_sep... (cached) yes checking for argz_insert... (cached) yes checking for argz_next... (cached) yes checking for argz_stringify... (cached) yes checking if argz actually works... (cached) yes checking whether libtool supports -dlopen/-dlpreopen... (cached) yes checking for unistd.h... (cached) yes checking for dl.h... (cached) no checking for sys/dl.h... (cached) no checking for dld.h... (cached) no checking for mach-o/dyld.h... (cached) no checking for dirent.h... (cached) yes checking for closedir... (cached) yes checking for opendir... (cached) yes checking for readdir... (cached) yes checking for strlcat... (cached) no checking for strlcpy... (cached) no configure: updating cache /tmp/config.cache.12946 configure: creating ./config.status config.status: creating Makefile config.status: creating config.h config.status: executing depfiles commands config.status: executing libtool commands === configuring in lib/libTrie (<http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/lib/libTrie)> configure: running /bin/sh ../../.././test-suite/../lib/libTrie/configure '--prefix=/usr/local/squid' --cache-file=/tmp/config.cache.12946 --srcdir=../../.././test-suite/../lib/libTrie configure: loading cache /tmp/config.cache.12946 checking for g++... (cached) g++ checking for C++ compiler default output file name... a.out checking whether the C++ compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... checking for suffix of object files... (cached) o checking whether we are using the GNU C++ compiler... (cached) yes checking whether g++ accepts -g... (cached) yes checking for gcc... (cached) gcc checking whether we are using the GNU C compiler... (cached) yes checking whether gcc accepts -g... (cached) yes checking for gcc option to accept ISO C89... (cached) none needed checking whether make sets $(MAKE)... (cached) yes checking for a BSD-compatible install... (cached) /usr/bin/install -c checking whether build environment is sane... yes checking for gawk... (cached) gawk checking for style of include used by make... GNU checking dependency style of gcc... (cached) gcc3 checking dependency style of g++... (cached) gcc3 checking whether to enable maintainer-specific portions of Makefiles... no checking for ranlib... (cached) ranlib checking build system type... (cached) x86_64-unknown-linux-gnu checking host system type... (cached) x86_64-unknown-linux-gnu checking how to print strings... printf checking for a sed that does not truncate output... (cached) /bin/sed checking for grep that handles long lines and -e... (cached) /bin/grep checking for egrep... (cached) /bin/grep -E checking for fgrep... (cached) /bin/grep -F checking for ld used by gcc... (cached) /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... (cached) yes checking for BSD- or MS-compatible name lister (nm)... (cached) /usr/bin/nm -B checking the name lister (/usr/bin/nm -B) interface... (cached) BSD nm checking whether ln -s works... yes checking the maximum length of command line arguments... (cached) 98304 checking whether the shell understands some XSI constructs... yes checking whether the shell understands "+="... yes checking for /usr/bin/ld option to reload object files... (cached) -r checking for objdump... (cached) objdump checking how to recognize dependent libraries... (cached) pass_all checking for ar... (cached) /usr/bin/ar checking for strip... (cached) strip checking for ranlib... (cached) ranlib checking command to parse /usr/bin/nm -B output from gcc object... (cached) ok checking how to run the C preprocessor... (cached) gcc -E checking for ANSI C header files... (cached) yes checking for sys/types.h... (cached) yes checking for sys/stat.h... (cached) yes checking for stdlib.h... (cached) yes checking for string.h... (cached) yes checking for memory.h... (cached) yes checking for strings.h... (cached) yes checking for inttypes.h... (cached) yes checking for stdint.h... (cached) yes checking for unistd.h... (cached) yes checking for dlfcn.h... (cached) yes checking for objdir... (cached) .libs checking if gcc supports -fno-rtti -fno-exceptions... (cached) no checking for gcc option to produce PIC... -fPIC -DPIC checking if gcc PIC flag -fPIC -DPIC works... (cached) yes checking if gcc static flag -static works... (cached) yes checking if gcc supports -c -o file.o... (cached) yes checking if gcc supports -c -o file.o... (cached) yes checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking whether -lc should be explicitly linked in... (cached) no checking dynamic linker characteristics... (cached) GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking for shl_load... (cached) no checking for shl_load in -ldld... (cached) no checking for dlopen... (cached) no checking for dlopen in -ldl... (cached) yes checking whether a program can dlopen itself... (cached) yes checking whether a statically linked program can dlopen itself... (cached) no checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes checking how to run the C++ preprocessor... (cached) g++ -E checking for ld used by g++... (cached) /usr/bin/ld -m elf_x86_64 checking if the linker (/usr/bin/ld -m elf_x86_64) is GNU ld... (cached) yes checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking for g++ option to produce PIC... -fPIC -DPIC checking if g++ PIC flag -fPIC -DPIC works... (cached) yes checking if g++ static flag -static works... (cached) yes checking if g++ supports -c -o file.o... (cached) yes checking if g++ supports -c -o file.o... (cached) yes checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking dynamic linker characteristics... (cached) GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking for library containing dlopen... (cached) -ldl checking for dlerror... (cached) yes checking for shl_load... (cached) no checking for shl_load in -ldld... (cached) no checking for dld_link in -ldld... (cached) no checking whether compiler accepts -fhuge-objects... no checking for iostream... (cached) yes checking for an ANSI C-conforming const... (cached) yes checking for size_t... (cached) yes configure: updating cache /tmp/config.cache.12946 configure: creating ./config.status config.status: creating Makefile config.status: creating include/Makefile config.status: creating src/Makefile config.status: creating test/Makefile config.status: creating config.h config.status: executing depfiles commands config.status: executing libtool commands { test ! -d squid-3.HEAD-BZR || { find squid-3.HEAD-BZR -type d ! -perm -200 -exec chmod u+w {} ';' && rm -fr squid-3.HEAD-BZR; }; } mkdir squid-3.HEAD-BZR mkdir -p -- squid-3.HEAD-BZR/acinclude squid-3.HEAD-BZR/cfgaux squid-3.HEAD-BZR/include list='compat lib libltdl snmplib scripts src icons errors contrib doc helpers test-suite tools'; for subdir in $list; do \ if test "$subdir" = .; then :; else \ test -d "squid-3.HEAD-BZR/$subdir" \ || mkdir -p -- "squid-3.HEAD-BZR/$subdir" \ || exit 1; \ distdir=`CDPATH="${ZSH_VERSION+.}:" && cd squid-3.HEAD-BZR && pwd`; \ top_distdir=`CDPATH="${ZSH_VERSION+.}:" && cd squid-3.HEAD-BZR && pwd`; \ (cd $subdir && \ make \ top_distdir="$top_distdir" \ distdir="$distdir/$subdir" \ distdir) \ || exit 1; \ fi; \ done make[1]: Entering directory `<http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/compat'> mkdir -p -- <http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/squid-3.HEAD-BZR/compat/../src> make[1]: Leaving directory `<http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/compat'> make[1]: Entering directory `<http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/lib'> mkdir -p -- <http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/squid-3.HEAD-BZR/lib/../src> list='ntlmauth rfcnb smblib libTrie'; for subdir in $list; do \ if test "$subdir" = .; then :; else \ test -d "<http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/squid-3.HEAD-BZR/lib/$subdir"> \ || mkdir -p -- "<http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/squid-3.HEAD-BZR/lib/$subdir"> \ || exit 1; \ distdir=`CDPATH="${ZSH_VERSION+.}:" && cd <http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/squid-3.HEAD-BZR/lib> && pwd`; \ top_distdir=`CDPATH="${ZSH_VERSION+.}:" && cd <http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/squid-3.HEAD-BZR> && pwd`; \ (cd $subdir && \ make \ top_distdir="$top_distdir" \ distdir="$distdir/$subdir" \ distdir) \ || exit 1; \ fi; \ done make[2]: Entering directory `<http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/lib/ntlmauth'> mkdir -p -- <http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/squid-3.HEAD-BZR/lib/ntlmauth/../../src> make[2]: Leaving directory `<http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/lib/ntlmauth'> make[2]: Entering directory `<http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/lib/rfcnb'> mkdir -p -- <http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/squid-3.HEAD-BZR/lib/rfcnb/../../src> make[2]: Leaving directory `<http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/lib/rfcnb'> make[2]: Entering directory `<http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/lib/smblib'> mkdir -p -- <http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/squid-3.HEAD-BZR/lib/smblib/../../src> make[2]: Leaving directory `<http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/lib/smblib'> make[2]: Entering directory `<http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/lib/libTrie'> { test ! -d <http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/squid-3.HEAD-BZR/lib/libTrie> || { find <http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/squid-3.HEAD-BZR/lib/libTrie> -type d ! -perm -200 -exec chmod u+w {} ';' && rm -fr <http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/squid-3.HEAD-BZR/lib/libTrie;> }; } mkdir <http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/squid-3.HEAD-BZR/lib/libTrie> mkdir -p -- <http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/squid-3.HEAD-BZR/lib/libTrie/cfgaux> list='include src test'; for subdir in $list; do \ if test "$subdir" = .; then :; else \ test -d "<http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/squid-3.HEAD-BZR/lib/libTrie/$subdir"> \ || mkdir -p -- "<http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/squid-3.HEAD-BZR/lib/libTrie/$subdir"> \ || exit 1; \ distdir=`CDPATH="${ZSH_VERSION+.}:" && cd <http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/squid-3.HEAD-BZR/lib/libTrie> && pwd`; \ top_distdir=`CDPATH="${ZSH_VERSION+.}:" && cd <http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/squid-3.HEAD-BZR> && pwd`; \ (cd $subdir && \ make \ top_distdir="$top_distdir" \ distdir="$distdir/$subdir" \ distdir) \ || exit 1; \ fi; \ done make[3]: Entering directory `<http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/lib/libTrie/include'> make[3]: Leaving directory `<http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/lib/libTrie/include'> make[3]: Entering directory `<http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/lib/libTrie/src'> mkdir -p -- <http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/squid-3.HEAD-BZR/lib/libTrie/src/../include> make[3]: Leaving directory `<http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/lib/libTrie/src'> make[3]: Entering directory `<http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/lib/libTrie/test'> make[3]: Leaving directory `<http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/lib/libTrie/test'> find <http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/squid-3.HEAD-BZR/lib/libTrie> -type d ! -perm -755 -exec chmod a+rwx,go+rx {} \; -o \ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ ! -type d ! -perm -444 -exec /bin/sh <http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/lib/libTrie/cfgaux/install-sh> -c -m a+r {} {} \; \ || chmod -R a+r <http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/squid-3.HEAD-BZR/lib/libTrie> make[2]: Leaving directory `<http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/lib/libTrie'> make[1]: Leaving directory `<http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/lib'> make[1]: Entering directory `<http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/libltdl'> { test ! -d "<http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/squid-3.HEAD-BZR/libltdl"> || { find "<http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/squid-3.HEAD-BZR/libltdl"> -type d ! -perm -200 -exec chmod u+w {} ';' && rm -fr "<http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/squid-3.HEAD-BZR/libltdl";> }; } test -d "<http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/squid-3.HEAD-BZR/libltdl"> || mkdir "<http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/squid-3.HEAD-BZR/libltdl"> test -n "" \ || find "<http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/squid-3.HEAD-BZR/libltdl"> -type d ! -perm -755 \ -exec chmod u+rwx,go+rx {} \; -o \ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ ! -type d ! -perm -444 -exec /bin/sh <http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/libltdl/config/install-sh> -c -m a+r {} {} \; \ || chmod -R a+r "<http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/squid-3.HEAD-BZR/libltdl"> make[1]: Leaving directory `<http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/libltdl'> make[1]: Entering directory `<http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/snmplib'> make[1]: Leaving directory `<http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/snmplib'> make[1]: Entering directory `<http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/scripts'> make[1]: Leaving directory `<http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/scripts'> make[1]: Entering directory `<http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/src'> cp ../.././test-suite/../test-suite/test_tools.cc . make[1]: *** No rule to make target `ClientDelayConfig.cc', needed by `distdir'. Stop. make[1]: *** Waiting for unfinished jobs.... make[1]: Leaving directory `<http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/src'> make: *** [distdir] Error 1 buildtest.sh result is 2 BUILD: .././test-suite/buildtests/layer-00-default.opts make: *** [distdir] Error 1 Build FAILED.