Amos Jeffries [Fri, 5 Jun 2009 23:13:17 +0000 (11:13 +1200)]
Make debug_options rotate=N option back-compatible.
This ties older config which do not set rotate=N to still use the value
of logfile_rotate. If set rotate=N overrides logfile_rotate and can be
any value 0 or up.
Amos Jeffries [Thu, 4 Jun 2009 11:05:26 +0000 (23:05 +1200)]
Collate and HTMLize the current Squid manual pages
This is expected to create a *-manuals.tar.gz bundle like the cfgman
bundle before it with raw and HTML versions of all man files currently
in the Squid sources. For the purpose of providing web page versions
as authorative reference documentation.
This is one of those things that really has to be tested live on snapshot
generation. I'm only sure that groff exists in the spots its needed and
that the creation of the tar.gz should work. More work and testing will
likely be needed before public pages are available.
TODO:
Test this alteration, and convert the bundle to live web pages.
Add man .8 pages for many of the helpers.
Amos Jeffries [Mon, 1 Jun 2009 12:31:43 +0000 (00:31 +1200)]
SourceLayout: Shuffle ident files into libident.la
* Moves files into ident/ for library
* Adds Ident:: namespace for interface.
* Moves ident config to Ident::TheConfig
* reduces one avenue of memory leak on double-Init of ident objects.
* Makes ident ACL only relevant when ident is available
* Wraps Ident code in USE_IDENT for monolithic or empty library build
* Adds documentation for ident API
Amos Jeffries [Sun, 31 May 2009 09:37:54 +0000 (21:37 +1200)]
Author: Henrik Nordstrom <henrik@henriknordstrom.net>
Bug #2407: Spelling error in http_port tcpkeepalive option
One of the new parameters according to the docs is "keepalive". However, when
using this option you'll get a "Bungled squid.conf in line ...". That's because
when parsing the configuration Squid is looking for the keyword "tcpkeepalive"
instead of "keepalive" as stated in the docs.
Selected to fix the docs instead of code as having it named keepalive is too
easily confused with HTTP keep-alive / persistent connections.
2009-05-25: Also mistakes on spelling of config dump.
Amos Jeffries [Sat, 30 May 2009 13:50:46 +0000 (01:50 +1200)]
Split-Stack enable DNS sockets.
This breaks the DNS sockets into two when split-stack mode is used.
DnsSocketA becomes IPv4-only and DnsSocketB becomes used as IPv6-only.
Without Split-stack mode DnsSocketA is the only one actually used.
Amos Jeffries [Fri, 29 May 2009 07:37:45 +0000 (19:37 +1200)]
Add Translate: and Unless-Modified-Since: headers to known list.
They are custom microsoft headers we may need to use header_access to
crop away. Translate: is needed for WEBDAV so we must leave this up
to individual admin.
Amos Jeffries [Sat, 23 May 2009 13:40:07 +0000 (01:40 +1200)]
Author: Henrik Nordstrom <henrik@henriknordstrom.net>
Bug 2481: Don't set expires: now in generated error responses
Sending Expires: "now" overrides any negative cache logics which may
be present in downstream caches and is a bad idea. Better to send
the responses without any explicit expiry information.
Amos Jeffries [Wed, 20 May 2009 08:59:19 +0000 (20:59 +1200)]
Author: Adrian Chadd <adrian@squid-cache.org>
Add in some better documentation for override-expire.
Attempt to clearly document exactly what it does - in this instance, it
enforces min age and doesn't allow the admin to enforce max-age -
ie, truncate staleness.
Guido Serassio [Mon, 18 May 2009 19:52:40 +0000 (21:52 +0200)]
Windows port: Fix improper access permissions to registry and DNS parsing from registry
- RegOpenKey() always try to open registry keys in full control mode, even if not needed.
This could make Squid to fail when running as a non privileged user. RegOpenKeyEx() allow to
specify only the needed priviledge and now is used instead.
- When parsing DNS setting into registry, a fixed size loop was used. Now the loop count is
dynamic.
Amos Jeffries [Mon, 18 May 2009 03:21:51 +0000 (15:21 +1200)]
Replace assert with NOP action in hash free.
This resolves one small coverity itch.
When nothing to free we don't really need to care, we do need to act
safely and not try to actually action the free though.
Amos Jeffries [Sun, 3 May 2009 13:02:50 +0000 (07:02 -0600)]
Wrap C++ headers. Fixes define clash with libcompat
ostream and family were including sys/types.h which causes
FD_SET rediefinition with libcompat at times.
Current autoconf allows these headers to be wrapped and config.h
included before to prevent this and other things.
Amos Jeffries [Sun, 3 May 2009 07:07:07 +0000 (19:07 +1200)]
Auto-Docs: Add \cpptest directive
This is a custom directive just for squid.
It's used by adding to the declaration documentation of a function or
class method and listing the name of a unit-test function which
tests the documented function/method. It may be used multiple times
in a single function if there are multiple unit-tests for it.
Though in general multiple unit-tests sequences should be done in one
testing function.
Author: Peter Pramberger <peter@pramberger.at>
Bug 2656: Pinger dies with general protection fault
tzset() explicitly performs actions previously done implicitly
by localtime() in most case. It appears that some VM do not have
the implicit setting so we need this.
regression fix bug #2583: pure virtual method called
The applied patch hid the problem, did not fix it.
This patch removes the applied patch and instead add an assertion check in
ClientHttpRequest::~ClientHttpRequest destructor just before call the
Adaptation::Initiator::announceInitiatorAbort method.
-Method TunnelStateData::Connection::error:
The xerrno is the errno values (EAGAIN, EINTR etc) not a COMM_XX error/flag.
- Methods TunnelStateData::writeServerDone,TunnelStateData::writeClientDone:
if the related connection fd closing (flag==COMM_ERR_CLOSING) just return
On one starting error condition the helper enters a read loop
without exit conditions. Made this exit when read was done
and shutdown helper as per behavior comment by the loop.
Now compiled with the same CFLAGS as the rest of Squid.
This is tested up to gcc 3.4 standards now. Some may still
be raised by later gcc versions.
- fixes const correctness on several functions and globals
- fixes .h wrapping on several files
- adds prototype definitions for all functions
- adds several missing includes
- adds docs for some functions to auto-doc output
TODO:
Not all code audited, only the bits shown broken right now.
This helper contains a large amount of nasty duplicate code
and re-implements several encryption algoritms that should
probably be sourced from secure places.
This patch reduces local variable names from UPPER case to lower.
Preventing clashes with previous systm defines. In this case only
DOMAIN and SERVER were actually clashing. But reduced all for safety.
Also wraps system includes with HAVE_ macros inline with Squid policy.
Many small fixes uncovered by the testbed layer #02
- failover recovery for valgrind support
- better error reporting and detection for epoll support
- better dependency detection and handling for ESI support
- ARP build error on FreeBSD
- hack: silence build error on ZPH QoS support (TODO fix)
TODO:
- fix ZPH support for BSD (Bug 2537)
- comm symbol duplication failures under gcc 4.3.2