Henrik Nordstrom [Fri, 11 Jul 2008 19:32:10 +0000 (21:32 +0200)]
Remove the --disable-carp option, keeping the CARP code always compiled in
this configure option was a relic from the time when CARP was very intrusive,
requiring --enable-carp to be compiled and then chainging parent relations.
The current CARP implementaiton is very non-intrusive and by default enabled
(but not active unless used in squid.conf). There isn't really any good reason
to why one should use --disable-carp today.
TestBed: Add master test scripts and some control files
This adds the ./test-builds.sh script which runs over an optional OS
specific control build and a set of layered configurations.
Usage: bash ./test-builds.sh [os-name]
Currently supported OS: debian, ubuntu
A sub-level build script is also added as the main engine of this system.
It takes a pair of control files and attempts a clean build of squid.
Logging as much of the build output as possible for manual oversight.
The component control files are a set of files providing configure options
and environment settings for the build. Their design and use is detailed in:
http://wiki.squid-cache.org/Features/CodeTestBed
Author: Kinkie <gkinkie@gmail.com>
Cleanups: rename List.h to CbDataList.h
include/List.h is in my very humble opinion misleadingly named, as it's
tied to CBDATA semantics and isn't really suited to be used as a generic
container class.
This patch renames the include file to CbDataList.h, and all datatypes
defined there are altered in the same manner.
new utf8 auth_param option to enable UTF-8 translation of the requests
sent to auth helpers. HTTP uses iso-8859-1 in authentication credentials,
but many authentication backends expects UTF-8 as charset.
Note: This does NOT solve the bigger HTTP problem of authentication using
characters outside iso-8859-1, only simlplifies things a bit by allowing
helpers to operate in UTF-8 even when HTTP operates in iso-8859-1.
An alternative would be to add the translation to each helper.
This converts the hard-coded footer section of all error pages to XHTML
or HTML 4.01 Strict compliance. Ready for any improvements done on pages
templates themselves to matche the compliance level.
Guido Serassio [Mon, 30 Jun 2008 16:27:12 +0000 (18:27 +0200)]
Fix build error on Solaris using gcc and --with-large-files
On Solaris getconf returns for CFLAGS and LDFLAGS -xarch=generic64 option, but
this option is supported only by Sun cc, so we need to We need to replace it
with -m64 gcc equivalent option
Amos Jeffries [Mon, 30 Jun 2008 13:16:14 +0000 (01:16 +1200)]
Bug 2141: Netmasks need to die a clean death (part 1)
Update ACLIP output display to show CIDR instead of netmask format.
With IPv6 masks can be long strings of ff* not easy to read. This makes
them show up as CIDR masks appropriate to the base address type.
Also removes some duplicate code in output (debug show and config mgr).
Guido Serassio [Mon, 30 Jun 2008 12:52:36 +0000 (14:52 +0200)]
Windows port: add option for control of IP address changes notification in squid.conf
On Windows Squid by default will monitor IP address changes and will
reconfigure itself after any detected event. This is very useful for
proxies connected to internet with dial-up interfaces.
In some cases (a Proxy server acting as VPN gateway is one) it could be
desiderable to disable this behaviour.
Guido Serassio [Mon, 30 Jun 2008 10:57:35 +0000 (12:57 +0200)]
Windows port: forward port of 2.7 lib functions updates
- Implement crypt() on Windows
- Implement getopt() on Windows
- Implement dirent-style opendir(), readdir(), closedir(),
rewinddir(), seekdir() and telldir() on Windows
Amos Jeffries [Wed, 25 Jun 2008 12:21:03 +0000 (00:21 +1200)]
Author: Alter <alter@alter.org.ua>
Bug 2301: Regression: Log format request/reply size options
MFC: logging HTTP-request size
I've made patch to Squid 2.5-stable14 (r4), which enables logging of
http-request size and/or total request+reply size.
Patch extends 'logformat' option of squid.conf. '>st' and 'st' can be
used to log request size and total size respectively. If 'st' is used
instead of '<st', squid will log total request size
instead of reply size to access.log. For example
Amos Jeffries [Fri, 20 Jun 2008 05:14:34 +0000 (17:14 +1200)]
Bug 1566 (also bug 975): esi:include aborts with lock assert
Proper fix requires callers inserting HTTPMSGLOCK() when the base rep
pointers are set, and HTTPMSGUNLOCK() macros when done. The lock/unlock
mechanism will take care of garbage collection in the background if used
properly.
The function this patches has no need to perform any of that itself
either way (it's a * not a ** ptr parameter so _cannot_ be safely deleted).
I'm cementing the temporary fix for 975 and 1566 as a permanent one and
documenting the correct requirements of the functions callers to prevent
memory leaks.
If leaks are found it will be separate bugs in the calling code related
to bad refcounting.
Amos Jeffries [Fri, 20 Jun 2008 04:43:01 +0000 (16:43 +1200)]
Author: Alex Rousskov <rousskov@measurement-factory.com>
Bug #425 fix: purge matching entries on PUT, POST, and DELETE requests.
This patch focuses on purging URLs in Location and Content-Location headers
of PUT, POST, and DELETE responses.
Purging Request-URIs was already supported for PUT and DELETE, but needed
polishing. I moved all code related to method-based purging into one Server
method and outside the neighbors_do_private_keys guard (and store entry key is
private guard). We may purge more related entries than before.
I also implemented Amos' TODO to purge related entries when receiving a
request with an unknown request method. Again, we may now purge more related
entries than before.
My primary concern about the polishing part of the change is that the old code
used to check that the cache entry being purged is not the current entry:
assert(e != pe);
The new code does not check for that but appears to work in my limited tests.
I am not quite sure why we needed that check if all purging methods are not
cachable anyway. Perhaps it is unsafe to call e->release() for some entries?
TODO: We cannot find Vary-controlled entries by URL and, hence, we cannot
purge them, right?
TODO: Optimize method category "search" in HttpRequestMethod by using
precomputed method_id:category maps.
Henrik Nordstrom [Wed, 18 Jun 2008 18:49:32 +0000 (20:49 +0200)]
Fix SNMP reporting of counters with a value >= 0xFF800000
The ASN.1 encoding of unsigned integers incorrectly compressed the value
as if it was a signed integer, truncating leading 0xFF octest, causing
0xFF800000 to be send ax 0x800000, 0xFFFF8000 as 0x8000 etc..
Amos Jeffries [Thu, 5 Jun 2008 03:54:46 +0000 (15:54 +1200)]
Update ACL docs
- Some regex types were missing -i mentions.
- Altered auth type to mention intercept alongside transparent
now that they are distinct in squid
- Also cosmetic re-order of a few items to provide a some type grouping
Amos Jeffries [Thu, 22 May 2008 12:05:45 +0000 (00:05 +1200)]
Silence secondary errors on fatal shutdowns.
This patch causes fatal() errors to set the shutdown flag before aborting.
The result of this is that secondary errors not related to the fatal condition
but caused during the shutdown sequence no longer confuse the error traces.
It also cleans up a little broken whitespace formatting in the snmp_core.cc
Guido Serassio [Sat, 17 May 2008 11:27:47 +0000 (13:27 +0200)]
Windows port: Added new mswin_check_ad_group external ACL helper
This helper allow the lookup of users's group membership in a Windows
Active Directory domain.
It overcomes the Lan Manager limits of mswin_check_lm_group, but it can be
used only with native Windows Active Directory domains, so mswin_check_lm_group
will not removed from Squid.