Hudson build is back to normal: 3.HEAD-amd64-CentOS-5.3 #729

2010-08-11 Thread noc
See http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/729/changes




Build failed in Hudson: 3.HEAD-i386-opensolaris #395

2010-08-11 Thread noc
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.

2010-08-11 Thread Kinkie
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

2010-08-11 Thread noc
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

2010-08-11 Thread noc
See http://build.squid-cache.org/job/3.HEAD-i386-OpenBSD-4.5/497/changes




Re: [MERGE] Initial netfilter mark patch for comment

2010-08-11 Thread Andrew Beverley
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

2010-08-11 Thread noc
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.

2010-08-11 Thread Amos Jeffries
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

2010-08-11 Thread Amos Jeffries
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.

2010-08-11 Thread Kinkie
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