Hudson build is back to normal: 3.HEAD-amd64-CentOS-5.3 #729
See http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/729/changes
Build failed in Hudson: 3.HEAD-i386-opensolaris #395
See http://build.squid-cache.org/job/3.HEAD-i386-opensolaris/395/changes Changes: [Amos Jeffries squ...@treenet.co.nz] Bug 3011: extra tunnel and ICAP IPv4-only port fixes. This is just the polish bits. The rest was added in pieces earlier. :( [Francesco Chemolli kin...@squid-cache.org] Add missing includes. [Automatic source maintenance squid...@squid-cache.org] SourceFormat Enforcement [Francesco Chemolli kin...@squid-cache.org] Portability fix for OpenSolaris. [Amos Jeffries amosjeffr...@squid-cache.org] Add IPv6 wrappers around more outbound ports. This protects TCP DNS links, peer probes and CONNECT tunnels against IPv4/IPv6 crossover in split-stack or IPv4-only systems. Also corrects the error message output on generated forwarding errors. [Francesco Chemolli kin...@squid-cache.org] Merged autoconf-refactor branch. Main changes and goals: - definition of a common naming convention for shell variables - definition of auxiliary macros to deal with common constructs (--enable-* and --with-*) - definition of auxiliary macros to deal with autoconf defines - improvements in configure.in readability and portability -- [...truncated 3391 lines...] /usr/sfw/lib/gcc/i386-pc-solaris2.11/3.4.3/../../../../include/c++/3.4.3/cwchar:176: error: `::wcrtomb' has not been declared /usr/sfw/lib/gcc/i386-pc-solaris2.11/3.4.3/../../../../include/c++/3.4.3/cwchar:187: error: `::wcsrtombs' has not been declared /usr/sfw/lib/gcc/i386-pc-solaris2.11/3.4.3/../../../../include/c++/3.4.3/cwchar:197: error: `::wctob' has not been declared /usr/sfw/lib/gcc/i386-pc-solaris2.11/3.4.3/../../../../include/c++/3.4.3/cwchar:198: error: `::wmemcmp' has not been declared /usr/sfw/lib/gcc/i386-pc-solaris2.11/3.4.3/../../../../include/c++/3.4.3/cwchar:199: error: `::wmemcpy' has not been declared /usr/sfw/lib/gcc/i386-pc-solaris2.11/3.4.3/../../../../include/c++/3.4.3/cwchar:200: error: `::wmemmove' has not been declared /usr/sfw/lib/gcc/i386-pc-solaris2.11/3.4.3/../../../../include/c++/3.4.3/cwchar:201: error: `::wmemset' has not been declared /usr/sfw/lib/gcc/i386-pc-solaris2.11/3.4.3/../../../../include/c++/3.4.3/cwchar:202: error: `::wprintf' has not been declared /usr/sfw/lib/gcc/i386-pc-solaris2.11/3.4.3/../../../../include/c++/3.4.3/cwchar:203: error: `::wscanf' has not been declared /usr/sfw/lib/gcc/i386-pc-solaris2.11/3.4.3/../../../../include/c++/3.4.3/cwchar:223: error: `::wcsstr' has not been declared /usr/sfw/lib/gcc/i386-pc-solaris2.11/3.4.3/../../../../include/c++/3.4.3/cwchar: In function `wchar_t* std::wcsstr(wchar_t*, const wchar_t*)': /usr/sfw/lib/gcc/i386-pc-solaris2.11/3.4.3/../../../../include/c++/3.4.3/cwchar:227: error: invalid conversion from `const wchar_t*' to `wchar_t*' /usr/sfw/lib/gcc/i386-pc-solaris2.11/3.4.3/../../../../include/c++/3.4.3/cwchar:227: error: initializing argument 1 of `wchar_t* std::wcsstr(wchar_t*, const wchar_t*)' /usr/sfw/lib/gcc/i386-pc-solaris2.11/3.4.3/../../../../include/c++/3.4.3/cwchar: At global scope: /usr/sfw/lib/gcc/i386-pc-solaris2.11/3.4.3/../../../../include/c++/3.4.3/cwchar:229: error: `::wmemchr' has not been declared /usr/sfw/lib/gcc/i386-pc-solaris2.11/3.4.3/../../../../include/c++/3.4.3/cwchar: In function `wchar_t* std::wmemchr(wchar_t*, wchar_t, size_t)': /usr/sfw/lib/gcc/i386-pc-solaris2.11/3.4.3/../../../../include/c++/3.4.3/cwchar:233: error: invalid conversion from `const wchar_t*' to `wchar_t*' /usr/sfw/lib/gcc/i386-pc-solaris2.11/3.4.3/../../../../include/c++/3.4.3/cwchar:233: error: initializing argument 1 of `wchar_t* std::wmemchr(wchar_t*, wchar_t, size_t)' In file included from /usr/sfw/lib/gcc/i386-pc-solaris2.11/3.4.3/../../../../include/c++/3.4.3/ios:46, from /usr/sfw/lib/gcc/i386-pc-solaris2.11/3.4.3/../../../../include/c++/3.4.3/ostream:45, from ../../../src/ip/Address.h:61, from ../../../src/squid.h:171, from ../../../src/base/AsyncCall.cc:5: /usr/sfw/lib/gcc/i386-pc-solaris2.11/3.4.3/../../../../include/c++/3.4.3/bits/char_traits.h: In static member function `static int std::char_traitswchar_t::compare(const wchar_t*, const wchar_t*, size_t)': /usr/sfw/lib/gcc/i386-pc-solaris2.11/3.4.3/../../../../include/c++/3.4.3/bits/char_traits.h:324: error: `wmemcmp' undeclared (first use this function) /usr/sfw/lib/gcc/i386-pc-solaris2.11/3.4.3/../../../../include/c++/3.4.3/bits/char_traits.h:324: error: (Each undeclared identifier is reported only once for each function it appears in.) /usr/sfw/lib/gcc/i386-pc-solaris2.11/3.4.3/../../../../include/c++/3.4.3/bits/char_traits.h: In static member function `static const wchar_t* std::char_traitswchar_t::find(const wchar_t*, size_t, const wchar_t)': /usr/sfw/lib/gcc/i386-pc-solaris2.11/3.4.3/../../../../include/c++/3.4.3/bits/char_traits.h:332: error: invalid conversion from `const wchar_t*' to `wchar_t*'
[MERGE] Implemented infrastructure to perform OS-specific tests in full test-suite.
Hi all, as a followup to autoconf-refactor I've set some small change to the test infrastructure so that it will force-add all relevant build options for that OS - possibily failing the build if some infrastructure is missing, as per behaviour specifications. Thoughts? Kinkie # Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: kin...@squid-cache.org-20100811144727-z0ht17h2x9ztv4ue # target_branch: file:///home/kinkie/squid/workspace/squid-trunk-co/ # testament_sha1: d30ee54e6a4939a3ef2e9623273cefaac698f36e # timestamp: 2010-08-11 16:48:39 +0200 # base_revision_id: kin...@squid-cache.org-20100807142254-\ # w0wevqta0eqse03j # # Begin patch === modified file 'test-suite/buildtests/layer-02-maximus.opts' --- test-suite/buildtests/layer-02-maximus.opts 2010-07-21 02:40:18 + +++ test-suite/buildtests/layer-02-maximus.opts 2010-08-11 14:47:27 + @@ -94,7 +94,6 @@ --enable-translation \ --enable-zph-qos \ --enable-esi \ - \ --with-aio \ --with-build-environment=default \ --with-dl \ @@ -105,6 +104,41 @@ --with-pic \ --with-pthreads \ +case $(uname -s) in + Linux) +OPTS=$OPTS \ +--enable-epoll \ +--enable-linux-netfilter \ +--with-libcap \ +--with-valgrind-debug \ + + ;; + SunOS) +OPTS=$OPTS \ +--enable-ipf-transparent \ + + ;; + OpenBSD) +OPTS=$OPTS \ +--enable-pf-transparent \ + + ;; + FreeBSD) +OPTS=$OPTS \ +--enable-kqueue \ +--enable-ipfw-transparent \ + + ;; + NetBSD) + ;; + CYGWIN_NT*) +OPTS=$OPTS \ +--enable-win32-service \ + + + + ;; +esac # Fix the distclean testing. export DISTCHECK_CONFIGURE_FLAGS=${OPTS} # Begin bundle IyBCYXphYXIgcmV2aXNpb24gYnVuZGxlIHY0CiMKQlpoOTFBWSZTWVZUBy0AAgDfgEAQVXP//1+l zKSwUARYl40WjUq2zasJJE1MVPZMjCmJpjTSAT0myE0NHqNNMhzAJgJkYARiYmEwmCGmJpgJ FEaA0mhE0fqaQaeo9IYBAZonqPUBzAJgJkYARiYmEwmCGmJpgJKaTEEzQIBT1GjYiNAA0AGhpASm 0UUYYZdT8O0s4ukSuxReF+o8GrlYNUPiqcIhllAKuPPF0aHNILWJBSklj9pwzGm1pvGRuoqzQ0xh hCUI0O9Lga2snavv1kXtZ+fLGny0/2jzbf06aXY8W4sT5XBNrRq/mrTooYdGzO3JDs9bxGaZGVxf m3nS1/vR6VoM2k2wU4iTmSO5u1KwPVujE9+quFW2L3bQSd6suOYXI46E0iZs98TtRr4eWpK16Ypt MYmInOPI7jwGhV1kWBtg4FvLHlj3RMTs7l3i6tyjhiipjGuiZMRN82qIxFJ4ue5nY3lfbUoibIrg nHAXvnqKzzky7KoltnmhZM3KSvJaRiS6CFIqjOQ4IkguY1gWUUNqqHGaFr9kZiLplBT4ks7CeRZB PjyEDeUkBjvFylr5Ym+o7Wszv0FslA4ENxBRNZqtWZSxWSKszeWIhTJhQcY0Bg6gWIxJViocTlAF S4eQeRjgMUmkibyq7I0UjW55kjIVzLZdaOMSieUhDcLXOJuXgXMLwY60dmOMamN1b2uYe1nmZuWN MCThFwaC9gx0W9+JgpVx3788f5uh80fFE4m8R4IYZF6f7f4R7f2ISirlViGt78sEODYdR4xpR9iR duwvOgcQLw3+Uq3UQRLvmQYHxcVqZcFnpCb5JX7sbn86IcC07TuPM8kjgOkzkUvxOWj50h7nNy3c YpRIpErx5ZtPiaSKiQTUGBSi6zeV7Lri/bB8N7JyWi5Ic+NcTz2k4Ul9WI+xUIy5Sl1EAp1nlMW2 SuIaVlXVLWlAJ8kyH0qvNW5Pq1OB2S3X2kXOOrVtmB81BR1x0HiNxRsOs5dfAxIu+uXTO7B6alqp 4xSOq8Wn1w8jegqx+YGSJvnpFLkUs78et+yvIkeKPyIlMFxONYQOa2LopqCdDCO7/YeCMdQHMzAn oOmFXBNlkvi0RaH7v0HEcmpmJyZQg159EmNu2SUdurZuePBzBVzFa2T1VmMi+VRnO+pFLbZThAIJ Q1GuskiU2wzhD1IBnIcjju4mGd9EQOxoI/KkhyRSFL1JNh7R9GdNbbYoEPvglCrIYKsVk0w2yVdd ci2rqpSH1MiNmD41Wrkoi2VyoMfTbUyfPOkNJh3xBPFYHCMgyl0RUSbWZYSiMbzjjsXHUy4yAdti 2KX+SLQpCtih74Kz3Cv5wKY+kmqZvolbpOxw+qRfwILLjoC5aE4HC2QKmrJe4XJTWPB6zBhok0h3 5G7qjwclrwHiuZW2pFdC4pyjmTl5habFWqJOgMm7SCqE1pH9Rf8XckU4UJBWVAct
Hudson build is back to normal: 3.HEAD-amd64-FreeBSD-7.2 #516
See http://build.squid-cache.org/job/3.HEAD-amd64-FreeBSD-7.2/516/changes
Hudson build is back to normal: 3.HEAD-i386-OpenBSD-4.5 #497
See http://build.squid-cache.org/job/3.HEAD-i386-OpenBSD-4.5/497/changes
Re: [MERGE] Initial netfilter mark patch for comment
Updated patch attached; comments below. If we can move to strtoul, I would like to change 'tos' to char throughout. Currently it is possible to set it to invalid values in squid.conf, which then cause problems with dumpConfigLine. Question number 2: what is stubQosConfig.cc? Does that also need updating for this patch? stub* are cut down set of all non-inline Ip::QosConfig methods and any globals defined in QosConfig.h. Changes to the API need to be mirrored there. The functions inside usually call fatal() to alert a wrong linkage clearly during testing. In this particular case the parse function will need to be duplicated there. Sorry, I need some clarification on this. I've looked at most of the other stub files, and most of the functions do indeed just return fatal(). However, the existing stubQosConfig.cc is almost identical to QosConfig.cc, with almost all of its code. Shall I change the functions to fatal()? Presumably I should add all the new functions into it (getTosLocalMiss, getNfmarkLocalMiss, getTosLocalHit, getNfmarkLocalHit, getUpstreamTOS, getUpstreamNfMark, isTosActive, isMarkActive, GetNfMarkCallback)? I have failed to find any problems with strtoul. Looks like it can be used. Although we may have to find a GPLv2 compatible implementation. I have kept the strtoul parts, and changed (almost) all of the tos variables to unsigned char. In this version the new methods look they should be in the Ip::Qos namespace. * the new clientReplyContext::tosLocalMissValue() and clientReplyContext::nfmarkLocalMissValue() methods particularly look like they really should take the hier code as a second parameter. Both fd and the hier if passed in should be const. I've moved them to Ip::Qos and added the parameters as const. * the new FwdState getUpstream* methods are in a similar position but not quite so clear cut. If you can find way to cleanly move them there great, otherwise it's not so much a bit deal yet. I've moved these, as well as most of the other QOS functions, into Ip::Qos. I have also removed the QosConfig namespace, as it didn't seem to fit with all these additional functions. * Thank you for the extra documentation on comm_set_tos(). * Please remove the bits touching comm_set_v6only() its 'tos' field is not related to QoS. Just acronym confusion. My mistake, removed. I've carried out a fair bit of testing on the mark functionality today, and It Works For Me, but I'll be able to try it better in a production server in the coming weeks. Could you let me know if/what else I need to do before acceptance. I believe there are the following: - Confirm and implement stub function requirements - Factor the configure.in changes into Kinkie's autoconf-refactor? Regards, Andy === modified file 'configure.in' --- configure.in 2010-08-10 15:37:53 + +++ configure.in 2010-08-11 13:32:45 + @@ -1112,6 +1112,34 @@ fi AC_SUBST(SSLLIB) +dnl Allow user to specify libnetfilter_conntrack (needed for QOS netfilter marking) +AC_ARG_WITH(netfilter-conntrack, + AS_HELP_STRING([--with-netfilter-conntrack=PATH], + [Compile with the Netfilter conntrack libraries. The path to + the development libraries and headers + installation can be specified if outside of the + system standard directories]), [ +case $with_netfilter_conntrack in + no) +: # Nothing special to do here +;; + yes) +AC_CHECK_LIB([netfilter_conntrack], [nfct_query],, + AC_MSG_ERROR([libnetfilter-conntrack library not found. Needed for netfilter-conntrack support]), + [-lnetfilter_conntrack]) +AC_CHECK_HEADERS([libnetfilter_conntrack/libnetfilter_conntrack.h \ + libnetfilter_conntrack/libnetfilter_conntrack_tcp.h]) +;; + *) +if test ! -d $withval ; then + AC_MSG_ERROR([--with-netfilter-conntrack path does not point to a directory]) +fi +LDFLAGS=-L$with_netfilter_conntrack/lib $LDFLAGS +CPPFLAGS=-I$with_netfilter_conntrack/include $CPPFLAGS +with_netfilter_conntrack=yes +;; + esac +]) AC_ARG_ENABLE(forw-via-db, AS_HELP_STRING([--enable-forw-via-db],[Enable Forw/Via database]), [ @@ -1990,10 +2018,19 @@ SQUID_YESNO([$enableval], [unrecognized argument to --enable-zph-qos: $enableval]) ]) -SQUID_DEFINE_BOOL(USE_ZPH_QOS,${enable_zph_qos:=no}, +SQUID_DEFINE_BOOL(USE_QOS_TOS,${enable_zph_qos:=no}, [Enable Zero Penalty Hit QOS. When set, Squid will alter the TOS field of HIT responses to help policing network traffic]) AC_MSG_NOTICE([ZPH QOS enabled: $enable_zph_qos]) +if test $enable_zph_qos = yes ; then +if test $with_netfilter_conntrack = yes ; then +AC_MSG_NOTICE([QOS netfilter marking enabled: $with_netfilter_conntrack]) +SQUID_DEFINE_BOOL(USE_QOS_NFMARK,$with_netfilter_conntrack, + [Enable support for QOS
Build failed in Hudson: 3.HEAD-i386-opensolaris #396
See http://build.squid-cache.org/job/3.HEAD-i386-opensolaris/396/changes Changes: [Francesco Chemolli kin...@squid-cache.org] Ignore eclipse project files [Amos Jeffries squ...@treenet.co.nz] Bug 3011: extra tunnel and ICAP IPv4-only port fixes. This is just the polish bits. The rest was added in pieces earlier. :( -- [...truncated 3381 lines...] /usr/sfw/lib/gcc/i386-pc-solaris2.11/3.4.3/../../../../include/c++/3.4.3/cwchar:176: error: `::wcrtomb' has not been declared /usr/sfw/lib/gcc/i386-pc-solaris2.11/3.4.3/../../../../include/c++/3.4.3/cwchar:187: error: `::wcsrtombs' has not been declared /usr/sfw/lib/gcc/i386-pc-solaris2.11/3.4.3/../../../../include/c++/3.4.3/cwchar:197: error: `::wctob' has not been declared /usr/sfw/lib/gcc/i386-pc-solaris2.11/3.4.3/../../../../include/c++/3.4.3/cwchar:198: error: `::wmemcmp' has not been declared /usr/sfw/lib/gcc/i386-pc-solaris2.11/3.4.3/../../../../include/c++/3.4.3/cwchar:199: error: `::wmemcpy' has not been declared /usr/sfw/lib/gcc/i386-pc-solaris2.11/3.4.3/../../../../include/c++/3.4.3/cwchar:200: error: `::wmemmove' has not been declared /usr/sfw/lib/gcc/i386-pc-solaris2.11/3.4.3/../../../../include/c++/3.4.3/cwchar:201: error: `::wmemset' has not been declared /usr/sfw/lib/gcc/i386-pc-solaris2.11/3.4.3/../../../../include/c++/3.4.3/cwchar:202: error: `::wprintf' has not been declared /usr/sfw/lib/gcc/i386-pc-solaris2.11/3.4.3/../../../../include/c++/3.4.3/cwchar:203: error: `::wscanf' has not been declared /usr/sfw/lib/gcc/i386-pc-solaris2.11/3.4.3/../../../../include/c++/3.4.3/cwchar:223: error: `::wcsstr' has not been declared /usr/sfw/lib/gcc/i386-pc-solaris2.11/3.4.3/../../../../include/c++/3.4.3/cwchar: In function `wchar_t* std::wcsstr(wchar_t*, const wchar_t*)': /usr/sfw/lib/gcc/i386-pc-solaris2.11/3.4.3/../../../../include/c++/3.4.3/cwchar:227: error: invalid conversion from `const wchar_t*' to `wchar_t*' /usr/sfw/lib/gcc/i386-pc-solaris2.11/3.4.3/../../../../include/c++/3.4.3/cwchar:227: error: initializing argument 1 of `wchar_t* std::wcsstr(wchar_t*, const wchar_t*)' /usr/sfw/lib/gcc/i386-pc-solaris2.11/3.4.3/../../../../include/c++/3.4.3/cwchar: At global scope: /usr/sfw/lib/gcc/i386-pc-solaris2.11/3.4.3/../../../../include/c++/3.4.3/cwchar:229: error: `::wmemchr' has not been declared /usr/sfw/lib/gcc/i386-pc-solaris2.11/3.4.3/../../../../include/c++/3.4.3/cwchar: In function `wchar_t* std::wmemchr(wchar_t*, wchar_t, size_t)': /usr/sfw/lib/gcc/i386-pc-solaris2.11/3.4.3/../../../../include/c++/3.4.3/cwchar:233: error: invalid conversion from `const wchar_t*' to `wchar_t*' /usr/sfw/lib/gcc/i386-pc-solaris2.11/3.4.3/../../../../include/c++/3.4.3/cwchar:233: error: initializing argument 1 of `wchar_t* std::wmemchr(wchar_t*, wchar_t, size_t)' In file included from /usr/sfw/lib/gcc/i386-pc-solaris2.11/3.4.3/../../../../include/c++/3.4.3/ios:46, from /usr/sfw/lib/gcc/i386-pc-solaris2.11/3.4.3/../../../../include/c++/3.4.3/ostream:45, from ../../../src/ip/Address.h:61, from ../../../src/squid.h:171, from ../../../src/base/AsyncCall.cc:5: /usr/sfw/lib/gcc/i386-pc-solaris2.11/3.4.3/../../../../include/c++/3.4.3/bits/char_traits.h: In static member function `static int std::char_traitswchar_t::compare(const wchar_t*, const wchar_t*, size_t)': /usr/sfw/lib/gcc/i386-pc-solaris2.11/3.4.3/../../../../include/c++/3.4.3/bits/char_traits.h:324: error: `wmemcmp' undeclared (first use this function) /usr/sfw/lib/gcc/i386-pc-solaris2.11/3.4.3/../../../../include/c++/3.4.3/bits/char_traits.h:324: error: (Each undeclared identifier is reported only once for each function it appears in.) /usr/sfw/lib/gcc/i386-pc-solaris2.11/3.4.3/../../../../include/c++/3.4.3/bits/char_traits.h: In static member function `static const wchar_t* std::char_traitswchar_t::find(const wchar_t*, size_t, const wchar_t)': /usr/sfw/lib/gcc/i386-pc-solaris2.11/3.4.3/../../../../include/c++/3.4.3/bits/char_traits.h:332: error: invalid conversion from `const wchar_t*' to `wchar_t*' /usr/sfw/lib/gcc/i386-pc-solaris2.11/3.4.3/../../../../include/c++/3.4.3/bits/char_traits.h:332: error: initializing argument 1 of `wchar_t* std::wmemchr(wchar_t*, wchar_t, size_t)' /usr/sfw/lib/gcc/i386-pc-solaris2.11/3.4.3/../../../../include/c++/3.4.3/bits/char_traits.h: In static member function `static wchar_t* std::char_traitswchar_t::move(wchar_t*, const wchar_t*, size_t)': /usr/sfw/lib/gcc/i386-pc-solaris2.11/3.4.3/../../../../include/c++/3.4.3/bits/char_traits.h:336: error: `wmemmove' undeclared (first use this function) /usr/sfw/lib/gcc/i386-pc-solaris2.11/3.4.3/../../../../include/c++/3.4.3/bits/char_traits.h: In static member function `static wchar_t* std::char_traitswchar_t::copy(wchar_t*, const wchar_t*, size_t)': /usr/sfw/lib/gcc/i386-pc-solaris2.11/3.4.3/../../../../include/c++/3.4.3/bits/char_traits.h:340: error: `wmemcpy' undeclared (first use
Re: [MERGE] Implemented infrastructure to perform OS-specific tests in full test-suite.
On Wed, 11 Aug 2010 16:55:39 +0200, Kinkie kin...@kinkie.it wrote: Hi all, as a followup to autoconf-refactor I've set some small change to the test infrastructure so that it will force-add all relevant build options for that OS - possibily failing the build if some infrastructure is missing, as per behaviour specifications. Thoughts? Kinkie +1.
Re: [MERGE] Initial netfilter mark patch for comment
On Wed, 11 Aug 2010 22:25:45 +0100, Andrew Beverley a...@andybev.com wrote: Updated patch attached; comments below. If we can move to strtoul, I would like to change 'tos' to char throughout. Currently it is possible to set it to invalid values in squid.conf, which then cause problems with dumpConfigLine. Question number 2: what is stubQosConfig.cc? Does that also need updating for this patch? stub* are cut down set of all non-inline Ip::QosConfig methods and any globals defined in QosConfig.h. Changes to the API need to be mirrored there. The functions inside usually call fatal() to alert a wrong linkage clearly during testing. In this particular case the parse function will need to be duplicated there. Sorry, I need some clarification on this. I've looked at most of the other stub files, and most of the functions do indeed just return fatal(). However, the existing stubQosConfig.cc is almost identical to QosConfig.cc, with almost all of its code. Shall I change the functions to fatal()? Presumably I should add all the new functions into it (getTosLocalMiss, getNfmarkLocalMiss, getTosLocalHit, getNfmarkLocalHit, getUpstreamTOS, getUpstreamNfMark, isTosActive, isMarkActive, GetNfMarkCallback)? It does need another looking at and possibly stripping down. IIRC it was there from when QosConfig was a member of SquidConfig. I'll run a quick check myself now to see what breaks in the current usage if the currently defined stubs are stripped down. You will need to add the appropriate dead-end stubs for the new functions. In this version the new methods look they should be in the Ip::Qos namespace. * the new clientReplyContext::tosLocalMissValue() and clientReplyContext::nfmarkLocalMissValue() methods particularly look like they really should take the hier code as a second parameter. Both fd and the hier if passed in should be const. I've moved them to Ip::Qos and added the parameters as const. * the new FwdState getUpstream* methods are in a similar position but not quite so clear cut. If you can find way to cleanly move them there great, otherwise it's not so much a bit deal yet. I've moved these, as well as most of the other QOS functions, into Ip::Qos. I have also removed the QosConfig namespace, as it didn't seem to fit with all these additional functions. We are moving the rest of Squid in general towards a model of Namespace::TheConfig containing the config data values pulled from squid.conf separate from the code which utilizes them. Please wait for Alex as well on this particular change. My thoughts on it are these; I like the moving of functions to IP::Qos including the existing ones. Under the coding guidelines the existence of class Qos calls for it to be in a file src/ip/Qos.h and .cc. Several of the functions particularly the is*Active() can be inlined for better performance with _SQUID_INLINE_, which calls for a ip/Qos.cci file to define them and be conditionally included in the .h or .cc based on #if _USE_INLINE_. Some set*Mark and set*Tos functions woudl round out the API. To take the same parameters as the get*() ones, but which do the perform the setsockopt. So that paired lines of: unsigned int mark = Ip::Qos.getNfmarkLocalMiss(fd, http-request-hier); comm_set_nfmark(fd,mark); become Ip::Qos.setNfmarkLocalMiss(fd, http-request-hier); ... and thus comm.cc does not need anything about the MARK setsockopt. Mirroring the way it has nothing to do with the MARK/TOS getsockopt etc. I've carried out a fair bit of testing on the mark functionality today, and It Works For Me, but I'll be able to try it better in a production server in the coming weeks. Could you let me know if/what else I need to do before acceptance. I believe there are the following: - Confirm and implement stub function requirements - Factor the configure.in changes into Kinkie's autoconf-refactor? Those are the big ones. Along with getting the namespace change approved. The reconfigure straightening will change your dependency logic model a bit. Specifically such that the absence of --with-netfilter-conntrack (implicit / auto-detect case) results in the same auto-detect currently only done by explicit yes results, but which does not terminate in AC_MSG_ERROR. Amos
Re: [MERGE] Implemented infrastructure to perform OS-specific tests in full test-suite.
On Thu, Aug 12, 2010 at 3:43 AM, Amos Jeffries squ...@treenet.co.nz wrote: On Wed, 11 Aug 2010 16:55:39 +0200, Kinkie kin...@kinkie.it wrote: Hi all, as a followup to autoconf-refactor I've set some small change to the test infrastructure so that it will force-add all relevant build options for that OS - possibily failing the build if some infrastructure is missing, as per behaviour specifications. Thoughts? Kinkie +1. Note that this DOES fail the build on the master node: squid wants libcap 2.X, while CentOs only ships v1 :\ -- /kinkie