]> git.ipfire.org Git - thirdparty/squid.git/log
thirdparty/squid.git
15 years agoAuthor: James Brotchie <brotchie@gmail.com>
Amos Jeffries [Wed, 3 Feb 2010 12:36:21 +0000 (01:36 +1300)] 
Author: James Brotchie <brotchie@gmail.com>
Port of X509 certificate alias-domain handling from 2.7.

15 years agoPrep for 3.0.STABLE23
Amos Jeffries [Tue, 2 Feb 2010 09:15:04 +0000 (22:15 +1300)] 
Prep for 3.0.STABLE23

15 years agobasic_smb_auth is C++, adjust make flags accordingly. Also clean up string types...
Henrik Nordstrom [Mon, 1 Feb 2010 14:30:22 +0000 (15:30 +0100)] 
basic_smb_auth is C++, adjust make flags accordingly. Also clean up string types a bit to make g++ happier

15 years agoPrep for 3.1.0.16
Amos Jeffries [Mon, 1 Feb 2010 01:33:17 +0000 (14:33 +1300)] 
Prep for 3.1.0.16

15 years agoPrep for 3.0.STABLE22
Amos Jeffries [Mon, 1 Feb 2010 01:01:47 +0000 (14:01 +1300)] 
Prep for 3.0.STABLE22

15 years agoAuthor: Marko <mr_4u2@yahoo.com>
Amos Jeffries [Sun, 31 Jan 2010 06:50:25 +0000 (19:50 +1300)] 
Author: Marko <mr_4u2@yahoo.com>
Bug 2496: Downloading some variants in full before relaying

AKA, assertion failed: comm.cc:115: "ccb->active == false"
if the client disconnected before download finished arriving.

15 years agoAuthor: Graham Keeling <graham@equiinet.com>
Amos Jeffries [Sun, 31 Jan 2010 06:20:21 +0000 (19:20 +1300)] 
Author: Graham Keeling <graham@equiinet.com>
WCCPv1 not connecting to router correctly

I am coming across a problem with WCCPv1...

squid-2.5 connects to UDP port 2048, I get replies, and everything else then works.

squid-3.1 looks like it is trying to connect to UDP port 0 on the cisco.
[and fails to work]

I have looked at the src/wccp.c for squid-2.5, and it is clear that the port is
being set to 2048 for the connection to the router.
I have also looked at the source for 2.6, 2.7 and 3.0 (src/wccp.cc for this
version).
In all those, it appears to be setting the port on the outgoing connection.

However, in the 3.1 source, it doesn't.

15 years agoPolished %>ha description.
Alex Rousskov [Sat, 30 Jan 2010 04:40:16 +0000 (21:40 -0700)] 
Polished %>ha description.

15 years agoReleas notes for %ha option
Amos Jeffries [Sat, 30 Jan 2010 00:55:45 +0000 (13:55 +1300)] 
Releas notes for %ha option

15 years agoAuthor: Frank Schmirler <squid@schmirler.de>
Amos Jeffries [Sat, 30 Jan 2010 00:30:56 +0000 (13:30 +1300)] 
Author: Frank Schmirler <squid@schmirler.de>
Bug 2851: Connection pinning fails when using a peer

15 years agoChange the "virgin" term to "original".
Christos Tsantilas [Fri, 29 Jan 2010 18:03:03 +0000 (20:03 +0200)] 
Change the "virgin" term to "original".

virgin has a sexual connotation in some cultures, and can be confusing
in a way that is avoidable.

15 years agoSourceFormat Enforcement
Automatic source maintenance [Fri, 29 Jan 2010 01:13:09 +0000 (18:13 -0700)] 
SourceFormat Enforcement

15 years agoAdd the http::>ha format code and make http::>h log virgin request headers
Christos Tsantilas [Thu, 28 Jan 2010 20:37:10 +0000 (22:37 +0200)] 
Add the http::>ha format code and make http::>h log virgin request headers

This patch:
 - Modify the existin "http::>h format code to log HTTP request headers
   before any adaptation and redirection
 - Add the new format code "http::>ha" which allow the user to log HTTP
   request header or header fields after adaptation and redirection.

This is a Measurement Factory project.

15 years agoDisplay cache_peer name option in CacheMgr config
Amos Jeffries [Mon, 25 Jan 2010 00:20:12 +0000 (13:20 +1300)] 
Display cache_peer name option in CacheMgr config

15 years agoSourceFormat Enforcement
Automatic source maintenance [Sun, 24 Jan 2010 01:13:07 +0000 (18:13 -0700)] 
SourceFormat Enforcement

15 years agoAuthor: Michael van Elst
Amos Jeffries [Sat, 23 Jan 2010 06:02:26 +0000 (19:02 +1300)] 
Author: Michael van Elst
Use POSIX tests for IPv6 address detections.

15 years agoSourceFormat Enforcement
Automatic source maintenance [Fri, 22 Jan 2010 01:13:11 +0000 (18:13 -0700)] 
SourceFormat Enforcement

15 years agoBug 2553: X-Forwarded-For with IPv6 address not handled correctly
Amos Jeffries [Thu, 21 Jan 2010 13:06:48 +0000 (02:06 +1300)] 
Bug 2553: X-Forwarded-For with IPv6 address not handled correctly

Also, remove the port from consideration. It is meaningless on indirect
client address.

15 years agoFix build errors when XFF compounds with other features
Amos Jeffries [Thu, 21 Jan 2010 12:48:36 +0000 (01:48 +1300)] 
Fix build errors when XFF compounds with other features

Some squid.conf options require XFF and other component wrappers to build
properly.

This fixes ICAP and Delay Pools clash which appeared in testing. Other
multiple-component wrapping can be done in identical fashion

15 years agoAuthor: Wolfgang Nothdurft <wolfgang@linogate.de>
Amos Jeffries [Thu, 21 Jan 2010 10:22:02 +0000 (23:22 +1300)] 
Author: Wolfgang Nothdurft <wolfgang@linogate.de>
Bug 2731: Add follow_x_forwarded_for support to ICAP

Pass the indirect client address to the ICAP server using X-Client-IP.

15 years agoAuthor: Wolfgang Nothdurft <wolfgang@linogate.de>
Amos Jeffries [Thu, 21 Jan 2010 10:01:16 +0000 (23:01 +1300)] 
Author: Wolfgang Nothdurft <wolfgang@linogate.de>
Bug 2730: Regressions in follow_x_forwarded_for since Squid-2

Two Major Regressions:

* Omitted testing for trust of the directly connecting client.
  this is critical is trusting the header content itself.
  The absence permitted remote clients to forge X-Forwarded-For
  and gain access to resources through Squid.
  (mitigated by the following)

* Bad logic in implementing the trust model resulted in any XFF
  headers containing untrusted IPs to be dropped in their entirety.
  This resulted in clients transiting more than one proxy heirarchy to
  be incorrectly logged and reported in the second.

Some polish alterations to the existing logics:

* Testing the direct client address for trust means the testing must be
  fully async 'slow'. Thus avoiding the memory leaks found on occasion.

* acl_uses_indirect_client is not strictly needed to test multiple levels
  of X-Forwarded-For properly. The entire list of IPs are now always
  tested until on untrusted is found or an ACL failure occurs.

15 years agoMore portable rfc1035 unit test
Amos Jeffries [Thu, 21 Jan 2010 07:59:51 +0000 (20:59 +1300)] 
More portable rfc1035 unit test

15 years agoAdd warnings explaining Invalid Response errors generated by Squid
Amos Jeffries [Thu, 21 Jan 2010 05:46:20 +0000 (18:46 +1300)] 
Add warnings explaining Invalid Response errors generated by Squid

15 years agoBump AIO debug sync message down a level
Amos Jeffries [Wed, 20 Jan 2010 23:51:58 +0000 (12:51 +1300)] 
Bump AIO debug sync message down a level

15 years agoTypo in configure EUI description
Amos Jeffries [Wed, 20 Jan 2010 03:11:07 +0000 (16:11 +1300)] 
Typo in configure EUI description

15 years agoAuthor: Various Translators
Amos Jeffries [Mon, 18 Jan 2010 23:37:55 +0000 (12:37 +1300)] 
Author: Various Translators
ErrPage Updates: Romanian and some Turkish

15 years agoLimit language negotiation to bundled error pages
Amos Jeffries [Mon, 18 Jan 2010 01:09:32 +0000 (14:09 +1300)] 
Limit language negotiation to bundled error pages

15 years agoHandle DNS header-only packets as invalid.
Amos Jeffries [Fri, 15 Jan 2010 11:29:27 +0000 (00:29 +1300)] 
Handle DNS header-only packets as invalid.

15 years agoBug 2811: SNMP client table renumbering
Amos Jeffries [Thu, 14 Jan 2010 09:18:00 +0000 (22:18 +1300)] 
Bug 2811: SNMP client table renumbering

Bump the client table to version 2 for new IP address formatting.

* Also polishes the OID debug display a little bit.

15 years agoSourceFormat Enforcement
Automatic source maintenance [Thu, 14 Jan 2010 01:13:01 +0000 (18:13 -0700)] 
SourceFormat Enforcement

15 years agoFix build errors in PAM auth on Linux
Amos Jeffries [Wed, 13 Jan 2010 11:07:44 +0000 (00:07 +1300)] 
Fix build errors in PAM auth on Linux

15 years agoSourceFormat Enforcement
Automatic source maintenance [Wed, 13 Jan 2010 01:13:17 +0000 (18:13 -0700)] 
SourceFormat Enforcement

15 years agoLanguage Updates: manuals - more polish.
Amos Jeffries [Tue, 12 Jan 2010 23:37:05 +0000 (12:37 +1300)] 
Language Updates: manuals - more polish.

* Fix some typos and omitted polish from earlier.

Uncovered by Rosetta translators.

15 years agoMerge from trunk
Amos Jeffries [Tue, 12 Jan 2010 23:31:55 +0000 (12:31 +1300)] 
Merge from trunk

15 years agoFix typos and omissions from earlier conversion.
Amos Jeffries [Tue, 12 Jan 2010 23:25:00 +0000 (12:25 +1300)] 
Fix typos and omissions from earlier conversion.

* Update manuals.pot again.

15 years agoFix typo moving squid.8.in
Amos Jeffries [Tue, 12 Jan 2010 21:16:29 +0000 (10:16 +1300)] 
Fix typo moving squid.8.in

15 years agoFull re-working of the way AcceptFD are handled in Squid
Amos Jeffries [Tue, 12 Jan 2010 06:44:41 +0000 (19:44 +1300)] 
Full re-working of the way AcceptFD are handled in Squid

Previously:
  a pre-defined fdc_table was initialized and left waiting just in case
any of the available FD were needed as a listening port. At which point
a handler was assigned and select was setup. Much action was wasted
initializing the array on startup and shutdown, and various unnecessary
maintenance references in comms every FD closure.

Now:
 one merely opens a socket, defines the AsyncCall handler for the
listening FD and creates a ListenStateData object from the two. When a
listener socket is done with, delete the ListenStateData and the FD gets
closed. Callers are responsible for maintaining a pointer to the
ListenStateData.

ListenStateData silently does all the comm processing for setting up and
watching for new connections. Including whether accept() on a port is
delayed until more FD are available. Then when any accept() is completed
it sends the resulting FD and ConnectionDetails objects to the assigned
callback.

COMM_ERR_CLOSING and re-scheduling themselves is now not generally relevant
to layers higher than comm on listening sockets. The callbacks never get
called at all unless a real new connection has been accepted. The old code
is still used internally by the comm layer, but details of error handling
and re-scheduling of accept() never leak out into higher level code now.

ListenStateData can be created in use-once or accept-many form.
* use-once are intended for short temporary listening sockets such as
  FTP passive data links. A single inbound connection is allowed after
  which the handler self-destructs.
* accept-many are for long term FD such as the http_port listeners which
  continuously accept new connections and pass them all to the same handler
  until something causes the ListenStateData to die (deletion, or self
  destruct under fatal socket IO errors).

The previous existing AcceptLimiter is slightly remodeled to work with
ListenStateData* instead of an intermediary callback reference type.
And also altered from LIFO to FIFO behavior for better client response
times under load.

All the code relevant to comm layer processing of accept() is bundled
into libcomm-listener.la.

TODO:
* wrap the SSL handshake into ListenStateData. That way SSL on some
  sockets can be treated as a real transport layer and for example
  httpsAccept and httpAccept merged into one function.

* there is one bug uncovered, that when the accept() handler is deleted
  and the port closed while it has been deferred. The deferred queue
  needs to be cleared of all (multiple) deferral events, or they will
  be scheduled uselessly and may segfault with FD errors.
  This only gets hit if Squid is shutdown during active load limiting.

15 years agoMerge from trunk
Amos Jeffries [Tue, 12 Jan 2010 06:35:50 +0000 (19:35 +1300)] 
Merge from trunk

15 years agoMerge from trunk
Amos Jeffries [Tue, 12 Jan 2010 06:17:22 +0000 (19:17 +1300)] 
Merge from trunk

15 years agoLanguage Updates: More manuals polished
Amos Jeffries [Tue, 12 Jan 2010 05:55:21 +0000 (18:55 +1300)] 
Language Updates: More manuals polished

15 years agoMore manuals polish
Amos Jeffries [Tue, 12 Jan 2010 05:43:03 +0000 (18:43 +1300)] 
More manuals polish

15 years agoLanguage Updates: Polish for manuals translation
Amos Jeffries [Tue, 12 Jan 2010 05:31:55 +0000 (18:31 +1300)] 
Language Updates: Polish for manuals translation

* Mark up *.8 and *.1 for po4a garbage strings elimination
* Polishes existing *.8 and *.1 to standard texts
* Moves squid.8.in to src/ next to its binary
* Updated manuals.pot and current .po
* Adds en_AU.po from Rosetta Project

15 years agoStandardize the manual page format
Amos Jeffries [Tue, 12 Jan 2010 04:06:23 +0000 (17:06 +1300)] 
Standardize the manual page format

* markup static *.8 and *.1 for po4a eliding garbage strings
* standardize texts for some common strings
* Also moves the squid.8 document to src/ where the matching binary is
* Update .pot and .po

15 years agoReduce non-IP debugs message priority
Amos Jeffries [Mon, 11 Jan 2010 22:36:50 +0000 (11:36 +1300)] 
Reduce non-IP debugs message priority

15 years agoImport en_AU from Rosetta Project
Amos Jeffries [Mon, 11 Jan 2010 06:02:06 +0000 (19:02 +1300)] 
Import en_AU from Rosetta Project

15 years agoPolish of soe manuals and pruning of translation strings.
Amos Jeffries [Mon, 11 Jan 2010 00:55:59 +0000 (13:55 +1300)] 
Polish of soe manuals and pruning of translation strings.

15 years agoLanguage Updates: manual pages
Amos Jeffries [Sun, 10 Jan 2010 12:40:53 +0000 (01:40 +1300)] 
Language Updates: manual pages

* Update manuals.pot after helper shuffling
* Add po4a infrastructure to build .pot and .po
* Modify some manual sources to cleanup the transation strings

TODO:
 * more cleanup modification of existing man(8) sources
 * addition of new man(8) pages for other helpers and tools

15 years agoUpdate manuals after helper changes
Amos Jeffries [Sun, 10 Jan 2010 12:18:10 +0000 (01:18 +1300)] 
Update manuals after helper changes

15 years agoMerge from trunk
Amos Jeffries [Sun, 10 Jan 2010 12:16:14 +0000 (01:16 +1300)] 
Merge from trunk

15 years agoUpdate errpages.pot
Amos Jeffries [Sun, 10 Jan 2010 10:37:21 +0000 (23:37 +1300)] 
Update errpages.pot

15 years agoRevert Typo in cachemgr.cc update
Amos Jeffries [Sun, 10 Jan 2010 10:30:51 +0000 (23:30 +1300)] 
Revert Typo in cachemgr.cc update

15 years agoManuals: various updates
Amos Jeffries [Sun, 10 Jan 2010 10:07:18 +0000 (23:07 +1300)] 
Manuals: various updates

* Import several translation updates from Rosetta project
* Add po4a config templates
* Update po4a generator script
* Update some manual sources to hide syntax garbage from translation
* Update manuals.pot

15 years agoUpdate .pot file and sync .po
Amos Jeffries [Sun, 10 Jan 2010 10:06:41 +0000 (23:06 +1300)] 
Update .pot file and sync .po

15 years agoAuthor: Various Translators
Amos Jeffries [Sun, 10 Jan 2010 09:21:40 +0000 (22:21 +1300)] 
Author: Various Translators
Language Updates: manual pages

Imported from Rosetta project

* Adds Russian
* Updates: Czech, German, Spanish

15 years agoAuthor: Various Translators
Amos Jeffries [Sun, 10 Jan 2010 09:01:26 +0000 (22:01 +1300)] 
Author: Various Translators
Language Updates: error pages

15 years agoAuthor: Various Translators
Amos Jeffries [Sun, 10 Jan 2010 08:51:37 +0000 (21:51 +1300)] 
Author: Various Translators
Turkish and Polish updates imported from Rosetta project

15 years agoAuthor: Ivan MasÃar <helix84@centrum.sk>
Amos Jeffries [Sun, 10 Jan 2010 08:43:17 +0000 (21:43 +1300)] 
Author: Ivan MasÃar <helix84@centrum.sk>
Slovak updates

15 years agoVarious pointer and syntax errors.
Amos Jeffries [Sun, 10 Jan 2010 08:15:38 +0000 (21:15 +1300)] 
Various pointer and syntax errors.

Uncovered by Pawel Worach using clang static analysis tool.

Fixes:
 * several NULL pointer dereferences
 * several unused variable return saves
 * a parentheses typo

15 years agoRemove optional kerberos/spnegohelp/ library due to licensing issues
Henrik Nordstrom [Sat, 9 Jan 2010 01:04:10 +0000 (02:04 +0100)] 
Remove optional kerberos/spnegohelp/ library due to licensing issues

15 years agoSourceFormat Enforcement
Automatic source maintenance [Sun, 3 Jan 2010 01:13:06 +0000 (18:13 -0700)] 
SourceFormat Enforcement

15 years agoBasic Authentication Helper name upgrades
Amos Jeffries [Sat, 2 Jan 2010 12:06:08 +0000 (01:06 +1300)] 
Basic Authentication Helper name upgrades

This nearly completes renaming and C++ compiling of the basic auth helpers.
MSNT is still pending cleanup in it's smb library code.

TODO: other helper types updated.

15 years agoDistribute missing helper-mux file.
Amos Jeffries [Sat, 2 Jan 2010 11:58:24 +0000 (00:58 +1300)] 
Distribute missing helper-mux file.

Uncovered by testbed.

15 years agoMerge from trunk
Amos Jeffries [Sat, 2 Jan 2010 10:17:00 +0000 (23:17 +1300)] 
Merge from trunk

15 years agoRelease notes for helper-mux
Amos Jeffries [Sat, 2 Jan 2010 05:37:54 +0000 (18:37 +1300)] 
Release notes for helper-mux

15 years agoAuthor: Francesco Chemolli <kinkie@squid-cache.org>
Amos Jeffries [Sat, 2 Jan 2010 05:00:34 +0000 (18:00 +1300)] 
Author: Francesco Chemolli <kinkie@squid-cache.org>
Helper Multiplexer

The helper multiplexer's purpose is to relieve some of the burden
squid has when dealing with slow helpers. It does so by acting as a
middleman between squid and the actual helpers, talking to squid via
the multiplexed variant of the helper protocol and to the helpers
via the non-multiplexed variant.

Helpers are started on demand, and in theory the muxer can handle up to
1k helpers per instance. It's up to squid to decide how many helpers
to start.

The muxer knows nothing about the actual messages being passed around,
and as such can't really (yet?) compensate for broken helpers.
It is not yet able to manage dying helpers, but it will.

The helper can be controlled using various signals:
- SIGHUP: dump the state of all helpers to STDERR

15 years agoAdd client_ip_max_connections
Amos Jeffries [Sat, 2 Jan 2010 04:32:46 +0000 (17:32 +1300)] 
Add client_ip_max_connections

Given some incentive after deep consideration of the slowloris claims.
While I still do not believe Squid is vulnerable per-se and some people
have tested and found no such failures as claimed for the DoS attack.

We found we could provide better administrative controls.  This is one such
that has been asked about many times and still did not exist. It operates
essentially teh same as the maxconn ACL, but does not require HTTP headers
and other request data to fully exist like ACLs do.

It is tested immediately after accept() and is request type agnostic, right
down to DNS TCP requests. So care is warranted in hierarchy situations or where
clients may be behind NAT.

Utilizes the client DB to monitor accepted TCP links. Operates prior to
everything so as to eliminate resource usage on the blocking case and
close the windows of opportunity for dribble-attacks etc.

Default (-1) is to keep the status-quo of no limits.

15 years agoTypo in merge
Amos Jeffries [Sat, 2 Jan 2010 04:28:30 +0000 (17:28 +1300)] 
Typo in merge

15 years agoBug 2452: external_acl_type does not limit entries, leads to high memory usage
Amos Jeffries [Sat, 2 Jan 2010 01:00:17 +0000 (14:00 +1300)] 
Bug 2452: external_acl_type does not limit entries, leads to high memory usage

Set a nominal cap of 256*1024 entries per external_acl_type configured.
This can be adjusted as needed with the external_acl_type cache=N option.

15 years agoMerge from trunk
Amos Jeffries [Fri, 1 Jan 2010 21:26:45 +0000 (10:26 +1300)] 
Merge from trunk

15 years agoDetatch status code enum from enums.h
Amos Jeffries [Fri, 1 Jan 2010 21:16:57 +0000 (10:16 +1300)] 
Detatch status code enum from enums.h

15 years agoBug 2787: pt 1: unexpected http status code messages
Amos Jeffries [Fri, 1 Jan 2010 09:15:02 +0000 (22:15 +1300)] 
Bug 2787: pt 1: unexpected http status code messages

Bumping the message from level-0 (critical) to level-1 (important and
major informational)

15 years agoSourceFormat Enforcement
Automatic source maintenance [Fri, 1 Jan 2010 01:12:55 +0000 (18:12 -0700)] 
SourceFormat Enforcement

15 years agoTypo in status passing
Amos Jeffries [Thu, 31 Dec 2009 11:46:41 +0000 (00:46 +1300)] 
Typo in status passing

15 years agoRemove last remaining legacy functions and fdc_table dregs
Amos Jeffries [Thu, 31 Dec 2009 04:07:20 +0000 (17:07 +1300)] 
Remove last remaining legacy functions and fdc_table dregs

15 years agoEnable specific status codes to be passed from the request parser.
Amos Jeffries [Thu, 31 Dec 2009 02:56:50 +0000 (15:56 +1300)] 
Enable specific status codes to be passed from the request parser.

This allows us to start providing better HTTP/1.1 compliant errors for
the various request parsing problems.

15 years agoMove listener socket handling to libcomm-listener.la
Amos Jeffries [Thu, 31 Dec 2009 02:35:01 +0000 (15:35 +1300)] 
Move listener socket handling to libcomm-listener.la

* Renamed AcceptFD to ListenStateData
* listener sockets 'owned' by the code which opened them
  - FtpStateData owns the FTP data sockets
  - config HTTP settings own the http_port/https_port listeners.
* Removed fdc_table - replaced with Comm::CurrentListenerSockets.
  - reasonable memory savings (default 32-bit build only 8 KB, large production 64-bit build save 768 KB)
  - initialized in one simple fast step.
  - changes only made by ListenStateData constructor/destructor
* HotConf ready listener sockets (depends only on further config changes to happen)

15 years agoFixed bug which manifests when snmp is enabled together with external dns helpers.
Francesco Chemolli [Fri, 25 Dec 2009 22:12:48 +0000 (23:12 +0100)] 
Fixed bug which manifests when snmp is enabled together with external dns helpers.

15 years agoIncorrect function names in aclParseAclList debugging output.
Matthew Morgan [Tue, 22 Dec 2009 23:24:28 +0000 (10:24 +1100)] 
Incorrect function names in aclParseAclList debugging output.

15 years agoPrep for 3.0.STABLE21
Amos Jeffries [Tue, 22 Dec 2009 05:09:35 +0000 (18:09 +1300)] 
Prep for 3.0.STABLE21

15 years agoSourceFormat: do forced removal of stuck *.astylebak files
Amos Jeffries [Tue, 22 Dec 2009 03:19:53 +0000 (16:19 +1300)] 
SourceFormat: do forced removal of stuck *.astylebak files

15 years agoSourceFormat Enforcement
Automatic source maintenance [Tue, 22 Dec 2009 01:12:53 +0000 (18:12 -0700)] 
SourceFormat Enforcement

15 years agoUpdated release notes
Amos Jeffries [Tue, 22 Dec 2009 00:36:22 +0000 (13:36 +1300)] 
Updated release notes

15 years agoFix SetTproxy2OutgoingAddr definition error
Amos Jeffries [Mon, 21 Dec 2009 12:21:10 +0000 (01:21 +1300)] 
Fix SetTproxy2OutgoingAddr definition error

15 years agoAuthor: Tsantilas Christos <chtsanti@users.sourceforge.net>
Amos Jeffries [Mon, 21 Dec 2009 12:13:11 +0000 (01:13 +1300)] 
Author: Tsantilas Christos <chtsanti@users.sourceforge.net>
Append the _ABORTED or _TIMEDOUT suffixes to the action access.log field.

 * When an HTTP connection with a client times out, append _TIMEDOUT suffix
to the Squid result code field in access.log.

 * When an HTTP connection with the client is terminated prematurely by
Squid, append _ABORTED suffix to the result code field in access.log.
Premature connection termination may happen when, for example, I/O
errors or server side-problems force Squid to terminate the master
transaction and close all associated connections.

The above changes make it possible to identify failed transactions even
when they have 200/200 received/send response status codes and a
"successful" Squid result code (e.g., TCP_MISS). This is important when
one does not want 1-hour "stuck" transactions for 15-byte GIFs to
significantly skew the mean response time statistics. Such transactions
eventually terminate due to, say, TCP errors, and the old code would
record huge response times for successfully-looking transactions.

The development sponsored by the Measurement Factory

15 years agoAuthor: Tsantilas Christos <chtsanti@users.sourceforge.net>
Amos Jeffries [Mon, 21 Dec 2009 12:05:22 +0000 (01:05 +1300)] 
Author: Tsantilas Christos <chtsanti@users.sourceforge.net>
Add support for write timeouts.

The development sponsored by the Measurement Factory

Description:
The write I/O timeout should trigger if Squid has data to write but
the connection is not ready to accept more data for the specified time.
If the write times out, the Comm caller's write handler is called with
an ETIMEDOUT COMM_ERROR error.

Comm may process a single write request in several chunks, without
caller's knowledge. The waiting time is reset internally by Comm after
each chunk is written.

Default timeout value is 15 minutes.

The implementation requires no changes in Comm callers but it adds write
timeouts to all connections, including the connections that have
context-specific write timeouts. I think that is fine.

15 years agoRegression Fix: Make Squid abort on parse failures.
Amos Jeffries [Mon, 21 Dec 2009 12:00:15 +0000 (01:00 +1300)] 
Regression Fix: Make Squid abort on parse failures.

The addition of multi-file parsing and catching of thrown errors between
them caused any errors in sub-files to be non-fatal and allow Squid to
run as if everything was normal, even if parts of the config were not
being loaded.

Squid will now propigate the error exception out and exit with a count of
the errors found.

15 years agoSourceFormat Enforcement
Automatic source maintenance [Mon, 21 Dec 2009 01:13:12 +0000 (18:13 -0700)] 
SourceFormat Enforcement

15 years agoBug 2811: pt 1: Correct Peer table OID numbering
Amos Jeffries [Sun, 20 Dec 2009 10:18:22 +0000 (23:18 +1300)] 
Bug 2811: pt 1: Correct Peer table OID numbering

The IPv6 alterations to the cache_peer table display should not have
altered existing OID numbers. This fixes that by bumping the new table
format to a new OID number .1.3.6.1.4.1.3495.1.5.1.3 for version 3 of the
table.

NP: version 1 of the table was in 2.0->2.5, and 3.0
    version 2 of the table was in 2.6+

15 years agoAuthor: Adrian Chadd <adri@squid-cache.org>
Amos Jeffries [Sun, 20 Dec 2009 08:54:51 +0000 (21:54 +1300)] 
Author: Adrian Chadd <adri@squid-cache.org>
Polish SNMP tree generator.

Alters the OID tree creation such that OID are easier for code developers
to manage.

Ported from Squid-2 patch (only applied to Lusca) by Amos Jeffries.

15 years agotypo in external_acl.cc
Amos Jeffries [Sun, 20 Dec 2009 01:19:11 +0000 (14:19 +1300)] 
typo in external_acl.cc

15 years agoSourceFormat Enforcement
Automatic source maintenance [Sun, 20 Dec 2009 01:13:05 +0000 (18:13 -0700)] 
SourceFormat Enforcement

15 years agoCleanup: use libtool/libtdl default location
Amos Jeffries [Sat, 19 Dec 2009 11:56:02 +0000 (00:56 +1300)] 
Cleanup: use libtool/libtdl default location

It is simpler to use the default libltdl location than hiding libtool
away in our custom directory and requiring a bootstrap to set it up.

15 years agoPolish on-demand helpers a little more
Amos Jeffries [Sat, 19 Dec 2009 05:47:00 +0000 (18:47 +1300)] 
Polish on-demand helpers a little more

* logic for implicit external_acl_type idle= parameter was bad
  could result in idle=9999999 if max<startup.
  Fix that and remove the possible max<startup

* add concurrency back into the config dump displays

* fully drop the auth_param concurrency parameter for consistency.

15 years agoRemove obsolete RunCache/RunAccel scripts.
Amos Jeffries [Thu, 17 Dec 2009 23:33:46 +0000 (12:33 +1300)] 
Remove obsolete RunCache/RunAccel scripts.

RunCache and RunAccel have been obsolete since squid-2.6 parent/child
auto-restart feature was included in the main code.

15 years agoSourceFormat Enforcement
Automatic source maintenance [Thu, 17 Dec 2009 01:13:16 +0000 (18:13 -0700)] 
SourceFormat Enforcement

15 years agoFix signed/unsigned warning on CentOS
Amos Jeffries [Wed, 16 Dec 2009 06:27:48 +0000 (19:27 +1300)] 
Fix signed/unsigned warning on CentOS

15 years agoRun helpers on-demand
Amos Jeffries [Wed, 16 Dec 2009 03:46:59 +0000 (16:46 +1300)] 
Run helpers on-demand

For some config backwards compatibility the maximum is kept as a single
integer first parameter to the *children directives.

Default setting changes:

 Instead of starting N helpers on startup and each reconfigure this
 makes the default zero and the configured value a maximum cap.
 The default maximum is raised from 5 to 20 for all helpers except
 for dnsservers where the maximum is raised to the old documented
 maximum of 32.

Obsoleted settings:
 url_rewrite_concurrency
  - replaced by the concurrency=N option now available on all *_children
    directives (including auth_param X children).
    To avoid compile problems this directive had to be fully dropped.

 auth_param X concurrency N
  - as above. However the option was able to be retained, as deprecated
    for future removal as well.

Behavior changes:

Whenever a request needs to use a helper and there are none available
immediately Squid tests to see if its okay to start a new one. Then does so.

The "helpers dying too fast" warnings and Squid closing has been modified
Squid will now not care about dying helpers if there are more that
startup=N active. If the death causes less than startup=N to be running
and is hit twice in less than 30 seconds will cause the warning message
to be doisplayed and Squid to abort same as before.

NP: that with startup=0 (the new default) helpers dying before or after
their first use will not crash Squid. But may result in a loop of
hung/failed requests and WILL result in a great many helper-failed
warnings in cache.log.

If needed we can bump the startup default back to 1 to avoid all that.
Or add a special check to kill squid if helpers die during startup and
provide a clearer log message "Foo helper is dying before we can finish
starting it" etc.

TODO: the current patch has no way to dynamically decrease the number of
      helpers. Only a reconfigure or helper dying can do that.

15 years agoRemove the following ./configure warnings:
Alex Rousskov [Tue, 15 Dec 2009 06:06:36 +0000 (23:06 -0700)] 
Remove the following ./configure warnings:

  conftest.cpp:34:1: warning: "USE_DISKIO_AIO" redefined
  conftest.cpp:35:1: warning: "USE_DISKIO_DISKTHREADS" redefined

The patch allows Squid v3.1 to build on RHEL 5.4 which has autoconf v2.59.
Without the patch, USE_DISKIO_AIO is zero but the corresponding AIO files
are compiled, leading to errors. I do not know if other platforms are
affected.

15 years agoFix type-punned pointer in forwarding
Amos Jeffries [Sat, 12 Dec 2009 00:58:17 +0000 (13:58 +1300)] 
Fix type-punned pointer in forwarding

15 years agoSet timestamps for newly created store entry during ICAP request satisfaction.
Alex Rousskov [Fri, 11 Dec 2009 23:37:30 +0000 (16:37 -0700)] 
Set timestamps for newly created store entry during ICAP request satisfaction.

If the ICAP-generated response lacks the HTTP Date header, and we do not call
timestampsSet(), Squid says:

WARNING: An error inside Squid has caused an HTTP reply without Date:.