On 11/01/11 11:56, Andrew Beverley wrote:
On Mon, 2011-01-10 at 22:37 +1300, Amos Jeffries wrote:
On 10/01/11 19:58, Andrew Beverley wrote:
Hi all,

I was recently caught out by my own patch when compiling Squid :-)
I compiled with netfilter marking enabled, but couldn't work out why
packets weren't being marked. It was only after turning on detailed
logging that I realised it was because Squid had been compiled without
libcap.

Therefore, as it is not possible to get or set a netfilter mark without
libcap, please find attached a proposed patch which will disable
netfilter marking at compilation time if libcap is not available (in a
similar way to Linux transparent proxying).

I also found a bug in the current configure.ac. You get the message
"SQUID_DEFINE_BOOL: unrecognized value for USE_LIBNETFILTERCONNTRACK:
'auto'" if you haven't explicitly set with-netfilter-conntrack. This
patch fixes that.

Finally, it was recommended by the netfilter guys that as
libnetfilter_conntrack offers .pc files, that PKG_CHECK_MODULES should
be used to check for its presence. However, having looked at the code
for the conntrack program, you'd have to first do a
AC_CHECK_PROG(HAVE_PKG_CONFIG). Any thoughts on this please? Should I
change the test to PKG_CHECK_MODULES?

Thanks,

Andy


On the patch:

   * "IFDEF: " entries in cf.data.pre needs matching entries/changes in
cf_gen_defines to produce the documentation "Requires:" details.

Added USE_LIBCAP to SO_MARK.

   * the missing libcap support needs to be a hard MSG_ERROR if
--with-netfilter-conntrack was specified (xyes) and a MSG_WARN if it was
not defined (xauto).
    - this patch leaves missing libcap as warn and disable. which is the
problem you attempt to solve.

Fixed. I've had to add a new variable to the script though
(squid_opt_netfilterconntrack), as the normal variable
(with_netfilter_conntrack) is overwritten if it is auto.

Please find attached updated patch.

Thanks,

Andy


Taking a closer look at the yes/no/auto logics and teh particular reason for changing it I think that is a bug in the SQUID_DEFINE_BOOL. I'm proposing a different simpler change in other discussion thread.

Amos
--
Please be using
  Current Stable Squid 2.7.STABLE9 or 3.1.10
  Beta testers wanted for 3.2.0.4

Reply via email to