See <http://build.squid-cache.org/job/3.HEAD-i386-opensolaris/540/changes>
Changes: [Christos Tsantilas _chtsa...@users.sourceforge.net_] Client-side bandwidth limit (a.k.a., quota or delay pool) implementation. Put fde::clientInfo initialization inside an "#if DELAY_POOLS/#endif" to allow squid compile when delay pools are disabled [Christos Tsantilas _chtsa...@users.sourceforge.net_] Alex Rousskov <rouss...@measurement-factory.com> Client-side bandwidth limit (a.k.a., quota or delay pool) implementation. Add forgoten ClientDelayConfig.h and ClientDelayConfig.cc files. These files should be submitted with the r10980 patch [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 ------------------------------------------ Started by upstream project "3.HEAD-amd64-CentOS-5.3" build number 925 Building remotely on osol-x86 [3.HEAD-i386-opensolaris] $ bzr log --show-ids -r -1 [3.HEAD-i386-opensolaris] $ bzr pull --overwrite http://bzr.squid-cache.org/bzr/squid3/trunk/ http://bzr.squid-cache.org/bzr/squid3/trunk is permanently redirected to http://bzr.squid-cache.org/bzr/squid3/trunk/ +N src/ClientDelayConfig.cc +N src/ClientDelayConfig.h M doc/release-notes/release-3.3.sgml M src/ClientInfo.h M src/Makefile.am M src/cache_cf.cc M src/cf.data.depend M src/cf.data.pre M src/client_db.cc M src/client_side.cc M src/comm.cc M src/fde.h M src/main.cc M src/protos.h M src/structs.h All changes applied successfully. Now on revision 10982. [3.HEAD-i386-opensolaris] $ bzr log --show-ids -r -1 [3.HEAD-i386-opensolaris] $ bzr log -v -r revid:amosjeffr...@squid-cache.org-20101025073139-sj2auyomn3zdn6fo..revid:chtsa...@users.sourceforge.net-20101025214958-xfgzgs0aihrh1mcc --long --show-ids [3.HEAD-i386-opensolaris] $ /bin/sh -xe /var/tmp/hudson8196303735664542098.sh + ./test-builds.sh --verbose --cleanup --use-config-cache + LDFLAGS=-L/usr/local/gcc-libs/lib + CC='ccache gcc' + CXX='ccache g++' + pjobs=-j4 TESTING: layer-00-bootstrap chmod: cannot access `btlayer-00-bootstrap': No such file or directory total 4 drwxr-xr-x 2 hudson other 2 Oct 25 16:50 . drwxr-xr-x 22 hudson other 45 Oct 25 16:50 .. BUILD: .././test-suite/buildtests/layer-00-bootstrap.opts automake (1.11) : automake autoconf (2.64) : autoconf libtool (2.2) : libtool libtool path : /usr/local/bin Bootstrapping Bootstrapping lib/libTrie Fixing configure recursion Autotool bootstrapping complete. buildtest.sh result is 0 BUILD: .././test-suite/buildtests/layer-00-bootstrap.opts Build OK. Global result is 0. REMOVE DATA: btlayer-00-bootstrap REMOVE LOG: btlayer-00-bootstrap.log TESTING: layer-00-default total 4 drwxr-xr-x 2 hudson other 2 Oct 25 16:50 . drwxr-xr-x 21 hudson other 44 Oct 25 16:50 .. BUILD: .././test-suite/buildtests/layer-00-default.opts configure: creating cache /tmp/config.cache.13619 checking for a BSD-compatible install... /opt/jdsbld/bin/install -c checking whether build environment is sane... yes checking for a thread-safe mkdir -p... /usr/gnu/bin/mkdir -p checking for gawk... no checking for mawk... no checking for nawk... nawk checking whether make sets $(MAKE)... yes checking how to create a ustar tar archive... gnutar checking whether to enable maintainer-specific portions of Makefiles... no checking for gcc... ccache gcc 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... o checking whether we are using the GNU C compiler... yes checking whether ccache gcc accepts -g... yes checking for ccache gcc option to accept ISO C89... none needed checking for style of include used by make... GNU checking dependency style of ccache gcc... gcc3 checking whether ccache gcc and cc understand -c and -o together... yes checking whether we are using the GNU C++ compiler... yes checking whether ccache g++ accepts -g... yes checking dependency style of ccache g++... gcc3 checking build system type... i386-pc-solaris2.11 checking host system type... i386-pc-solaris2.11 checking simplified host os... solaris2.11 (version 2.11) checking for ranlib... ranlib checking how to run the C preprocessor... ccache gcc -E checking whether ln -s works... yes checking for grep that handles long lines and -e... /usr/gnu/bin/grep checking for egrep... /usr/gnu/bin/grep -E checking for sh... /usr/gnu/bin/sh checking for false... /usr/gnu/bin/false checking for true... /usr/gnu/bin/true checking for mv... /usr/gnu/bin/mv checking for mkdir... /usr/gnu/bin/mkdir checking for ln... /usr/gnu/bin/ln checking for chmod... /usr/gnu/bin/chmod checking for tr... /usr/gnu/bin/tr checking for rm... /usr/gnu/bin/rm checking for cppunit-config... /usr/local/bin/cppunit-config checking for perl... /usr/bin/perl checking for pod2man... /usr/local/bin/pod2man checking for ar... /usr/gnu/bin/ar configure: strict error checking enabled: yes checking whether to use loadable modules... yes checking for a sed that does not truncate output... /usr/gnu/bin/sed checking for fgrep... /usr/gnu/bin/grep -F checking for ld used by ccache gcc... /usr/ccs/bin/ld checking if the linker (/usr/ccs/bin/ld) is GNU ld... no checking for BSD- or MS-compatible name lister (nm)... /usr/gnu/bin/nm -B checking the name lister (/usr/gnu/bin/nm -B) interface... BSD nm checking the maximum length of command line arguments... 786240 checking whether the shell understands some XSI constructs... yes checking whether the shell understands "+="... yes checking for /usr/ccs/bin/ld option to reload object files... -r checking for objdump... objdump checking how to recognize dependent libraries... pass_all checking for ar... /usr/gnu/bin/ar checking for strip... strip checking for ranlib... (cached) ranlib checking command to parse /usr/gnu/bin/nm -B output from ccache gcc object... ok checking for dlfcn.h... yes checking whether we are using the GNU C++ compiler... (cached) yes checking whether ccache g++ accepts -g... (cached) yes checking dependency style of ccache g++... (cached) gcc3 checking how to run the C++ preprocessor... ccache g++ -E checking for objdir... .libs checking if ccache gcc supports -fno-rtti -fno-exceptions... no checking for ccache gcc option to produce PIC... -fPIC -DPIC checking if ccache gcc PIC flag -fPIC -DPIC works... yes checking if ccache gcc static flag -static works... no checking if ccache gcc supports -c -o file.o... yes checking if ccache gcc supports -c -o file.o... (cached) yes checking whether the ccache gcc linker (/usr/ccs/bin/ld) supports shared libraries... yes checking whether -lc should be explicitly linked in... yes checking dynamic linker characteristics... solaris2.11 ld.so checking how to hardcode library paths into programs... immediate checking for shl_load... no checking for shl_load in -ldld... no checking for dlopen... yes checking whether a program can dlopen itself... yes checking whether a statically linked program can dlopen itself... yes 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 for ld used by ccache g++... /usr/ccs/bin/ld checking if the linker (/usr/ccs/bin/ld) is GNU ld... no checking whether the ccache g++ linker (/usr/ccs/bin/ld) supports shared libraries... yes checking for ccache g++ option to produce PIC... -fPIC -DPIC checking if ccache g++ PIC flag -fPIC -DPIC works... yes checking if ccache g++ static flag -static works... no checking if ccache g++ supports -c -o file.o... yes checking if ccache g++ supports -c -o file.o... (cached) yes checking whether the ccache g++ linker (/usr/ccs/bin/ld) supports shared libraries... yes checking dynamic linker characteristics... solaris2.11 ld.so checking how to hardcode library paths into programs... immediate checking which extension is used for runtime loadable modules... .so checking which variable specifies run-time module search path... LD_LIBRARY_PATH checking for the default library search path... /lib /usr/lib checking for library containing dlopen... none required checking for dlerror... yes checking for shl_load... (cached) no checking for shl_load in -ldld... (cached) no checking for dld_link in -ldld... no checking for _ prefix in compiled symbols... no checking whether deplibs are loaded by dlopen... yes checking for argz.h... no checking for error_t... no checking for argz_add... no checking for argz_append... no checking for argz_count... no checking for argz_create_sep... no checking for argz_insert... no checking for argz_next... no checking for argz_stringify... no checking whether libtool supports -dlopen/-dlpreopen... yes checking for ltdl.h... yes checking whether lt_dlinterface_register is declared... yes checking for lt_dladvise_preload in -lltdl... no checking where to find libltdl headers... -I${top_srcdir}/libltdl checking where to find libltdl library... ${top_build_prefix}libltdl/libltdlc.la checking for unistd.h... yes checking for dl.h... no checking for sys/dl.h... yes checking for dld.h... no checking for mach-o/dyld.h... no checking for dirent.h... yes checking for closedir... yes checking for opendir... yes checking for readdir... yes checking for strlcat... yes checking for strlcpy... yes checking for library containing dlopen... (cached) none required 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 what kind of compiler we're using... gcc checking for compiler variant... gcc checking whether compiler accepts -Werror -fhuge-objects... no configure: inlining optimizations enabled: yes configure: cbdata debugging enabled: no configure: xmalloc stats display: no checking for DiskIO modules to be enabled... AIO Blocking DiskDaemon DiskThreads .././test-suite/../configure: line 18824: syntax error at line 19074: `!' unexpected make: *** No rule to make target `distcheck'. Stop. buildtest.sh result is 2 BUILD: .././test-suite/buildtests/layer-00-default.opts Build FAILED.