Amos Jeffries [Thu, 15 Oct 2009 10:12:38 +0000 (23:12 +1300)]
SourceLayout: pull ARP operations into libeui
This separates the current code for ARP lookup and encode/decode.
Also makes the code buildable without fatal build errors on
non-supporting systems. A loud run-time error is generated if related
features are attempt use on non-supporting systems.
FUTURE WORK:
* unit-tests
* on-demand lookups and logging of MAC/EUI-48 for a client
similar to how ident is done.
* on-demand passing MAC/EUI-48 to external_acl_type helpers
* EUI-64 for IPv6 support.
* Increased ARP support on other OS.
Amos Jeffries [Sun, 4 Oct 2009 03:33:15 +0000 (16:33 +1300)]
Define top_build_prefix fro use by LTDL
Linux LTDL v3-v7 macros assume the autoconf 2.62 variable top_build_prefix
is defined. But from autoconf 2.64 it's called ac_top_build_prefix and not
automatically added to the Makefile.
There seems to be no harm with sustituting it manually under autoconf 2.61 and 2.62
Amos Jeffries [Sat, 3 Oct 2009 01:40:29 +0000 (14:40 +1300)]
Helpers: Upgrade Basic Auth NCSA helper
- C++ Build with libcompat
- Rename basic_ncsa_auth
- Update CRYPTLIB definition.
TODO: there is some cleanup still needed relating to CRYPTLIB
the current definition may include -lmd5 as well
and Kerberos library define may duplicate both -lcrypt and -lmd5
in the guise of SSLLIB
Amos Jeffries [Fri, 2 Oct 2009 12:36:53 +0000 (01:36 +1300)]
squid.conf polish pt 2
- Push many of the remaining commented config lines out of the default
config and into documentation examples.
- Adds whitespace and some extra comment lines to needed config texts
to improve readability.
- Rename to basic_ldap_auth
- C++ build with link to libcompat
- Add OPTIONS section to man(8) page
- Tweak libldap and liblber configure naming convention.
TODO: check that removal of miscellaneous libraries (XTRA_LIBS) has
not removed anything important to this helper. If so add back
the individual library needed, not the whole lot.
Amos Jeffries [Thu, 1 Oct 2009 07:59:00 +0000 (19:59 +1200)]
ESI: protect build from missing libraries correctly
- detect the libexpat and libxml2 headers.
- wraps the code includes according to Squid guidelines
- wraps the library API modules for build only when library is present
Also;
- disconnect the libraries from linking to binaries they dont need to.
- enable automatic build testing of ESI code since missing libraries are
no longer fatal.
Author: Adrian Chadd <adrian@squid-cache.org>
A tproxy cache cluster (eg behind WCCPv2) can't peer.
The issue stems from the forwarding logic creating source address spoofed
sockets to destinations that are inside the cluster. Since the WCCPv2
router won't redirect packets with an origin of the proxy MAC (at least for
L2 peering), source spoofed packets go out and are routed normally. The
packets back from the destination peer have a remote end of the spoofed IP,
and are instead sent to teh original client rather than the proxy.
The forwarding logic needs to be taught to optionally enable tproxy source
spoofing on connections based on a peer flag.
Just for completeness - tproxy'ed connections to a upstream or peer proxy
which is -outside- of the WCCPv2 tproxy cluster work fine.
- Remove 'odd' netmask support from ACL.
- Fully deprecate netmask support for ACL.
Earlier fix caused inconsistent handling between IPv4 and IPv6 builds of
Squid. Which has turned out to be a bad idea.
This fixes that by 'breaking' both build alternatives.
Many of the occasions Squid was calling bind() are not required. This
reduces the bind() calls to only those which are actually needed.
Further optimization can be done in a future version to drop the paranoid
and slightly performance degrading safety checks for instances of Squid
binding ANYADDR without listener status, and attempting to bind NOADDR.
Henrik Nordstrom [Wed, 16 Sep 2009 00:13:28 +0000 (02:13 +0200)]
Split some asserts with side-effects
assert expressions should not have any noticeable sideffects or otherwise
be important for the program flow operation. If not unexpected results is
seen from compiling with -DNODEBUG
Auto-detect the amount of TPROXY support available.
Uses the configured port address type to determine the level of testing
done. Systems with IPv4-only TPROXY (kernel 2.6.28 to 2.6.3*) will have
their ports reduced to IPv4-only, and those with IPv6 support will see
the port open as IPv6. This is done a run-time to cater for patched kernels
and kernel upgrades underneath Squid.
Balabit are now providing patches to do TPROXY with IPv6.
This retains the v4-only behaviour of the wildcard and IPv4 adresses
until full kernel support is available but enables people who have
patched their kernels to set an IPv6 in the http_port.
Bug 2570: wccp2 "Here I Am" announcements not sent
There is a bit of re-work in configuration needed before this can go into
the storage config scope where it belongs. Temporary fix for 3.1.
see bug report for details.