Amos Jeffries [Sat, 11 Oct 2008 13:59:29 +0000 (02:59 +1300)]
Bug 2393: DNS requests getting stuck in idns queue
Port of Squid-2 fix by Henrik Nordstrom
There seems to be two problems here.
a) On TCP communication failure Squid starts to restransmit the TCP query as
fast as it can, with no bounds checking. Keeps doing that until there is a
response or Squid is restarted...
b) For some reason the retransmit queue seems to halt for you. I have not yet
reproduced this issue, but may be related to the first..
Author: Hasso Tepper <hasso@estpak.ee>
Bug 2465: Support for DragonFly BSD
Part 1, this covers all the known code changes.
Bootstrap auto-tools system still needs an update to discover the OS
properly. See Bug report for details.
This change makes the current and future releases of 3.0 fully compatible
with the langpack bundles now released by the Squid Developers.
Existing translation files currently distributed are tagged for removal
in some future release and should be replaced/updated by the langpack
contents.
This patch:
- merges back the current templates directory contents as if it was a
new language to replace English/* .
- makes those templates the default hard-coded language files
- makes those files always distribute and install
We had a vote on this some (several) months before 3.0 got branched, and
it was decided to drop COSS from the Squid-3.0 branch once branched.
Then the branching got delayed, and this task was forgotten when it
finally branched.
Until COSS gets significantly updated it's counter-productive to ship it
in STABLE releases. But the current code needs to be kept in trunk as
reference on how things got refactored for the day the current COSS code
gets forward ported to Squid-3.
Amos Jeffries [Mon, 11 Aug 2008 13:09:45 +0000 (01:09 +1200)]
Fix: cppunit tests broken by squid.h defines
In order to promote safe coding and the use of internal accounting API
Squid mangles certain common function definitions such as malloc/calloc.
While this is a great idea for Squid internal code. It's not good when
integrating external cppunit macro libraries. At least one of which in
use performs its own allocation during testing.
This adds an extra layer of protection to prevent redirection with certain
unit-tests where the macros needed clash with Squid.
Author: Mark Nottingham <mnot@pobox.com>
Bug #2376: Round-Robin becomes unbalanced when a peer dies and comes back
When a peer goes down and then comes back, its round-robin counters aren't
reset, causing it to get a disproportionate amount of traffic until it "catches
up" with the rest of the peers in the round-robin pool.
If it was down for load-related issues, this has the effect of making it more
likely that it will go down again, because it's temporarily handling the load
of the entire pool.
Normally, this isn't a concern, because the number of requests that it can get
out-of-step is relatively small (bounded to how many requests it can be given
before it is considered down -- is this 10 in all cases, or are there corner
cases?), but in an accelerator case where the origin has a process-based
request-handling model, or back-end processes are CPU-intensive, it is.
This patch resets the counters each time a peer changes state.
Windows port: Fix mswin_check_ad_group build error on MinGW and Cygwin
The w32api currently available on MinGW and Cygwin is not complete, and
lacks the needed AD functions for mswin_check_ad_group.
This add to config.test the check for the availability of the needed functions.
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 page
templates themselves to match the compliance level.
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.
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
Author: Guido Serassio <serassio@squid-cache.org>
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 [Fri, 27 Jun 2008 13:40:12 +0000 (07:40 -0600)]
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 12:46:59 +0000 (06:46 -0600)]
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 [Thu, 19 Jun 2008 05:35:31 +0000 (23:35 -0600)]
Author: Henrik Nordstrom <henrik@henriknordstrom.net>
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 [Fri, 13 Jun 2008 04:42:05 +0000 (22:42 -0600)]
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