]> git.ipfire.org Git - thirdparty/squid.git/log
thirdparty/squid.git
11 years agoCleanup: remove garbage prefixes from Digest auth debugs
Amos Jeffries [Tue, 11 Feb 2014 09:12:28 +0000 (02:12 -0700)] 
Cleanup: remove garbage prefixes from Digest auth debugs

11 years agoFix argument name conflict in Auth::Config::findUserInCache
Francesco Chemolli [Mon, 10 Feb 2014 12:37:47 +0000 (13:37 +0100)] 
Fix argument name conflict in Auth::Config::findUserInCache

11 years agoMerge vector-refactor branch: align Vector API with std::vector
Francesco Chemolli [Mon, 10 Feb 2014 12:15:40 +0000 (13:15 +0100)] 
Merge vector-refactor branch: align Vector API with std::vector

11 years agoMerged from trunk
Francesco Chemolli [Mon, 10 Feb 2014 12:14:44 +0000 (13:14 +0100)] 
Merged from trunk

11 years agoBug 3969: user credentials cache lookup for Digest authentication broken
Frederic Bourgeois [Mon, 10 Feb 2014 11:08:58 +0000 (04:08 -0700)] 
Bug 3969: user credentials cache lookup for Digest authentication broken

Changes to the username credentials cache were made in Basic auth but
the matching changes were not duplicated to Digest auth. Since the
lookup is identical move it to generic Auth::Config.

Also fixes assertion auth_digest.cc:759:
    "(nonce->user == NULL) || (nonce->user == user)"

11 years agoMerged from trunk
Francesco Chemolli [Mon, 10 Feb 2014 09:59:19 +0000 (10:59 +0100)] 
Merged from trunk

11 years agoMake ESICustomParser::parse c++98-compatible
Francesco Chemolli [Mon, 10 Feb 2014 09:19:56 +0000 (10:19 +0100)] 
Make ESICustomParser::parse c++98-compatible

11 years agoFix cstdio compile errors
Amos Jeffries [Sun, 9 Feb 2014 08:55:01 +0000 (01:55 -0700)] 
Fix cstdio compile errors

11 years agoSource Maintenance - manual run
Amos Jeffries [Sat, 8 Feb 2014 13:36:42 +0000 (06:36 -0700)] 
Source Maintenance - manual run

11 years agoMove compat/unsafe.h protections from libcompat to source maintenance
Amos Jeffries [Sat, 8 Feb 2014 12:33:31 +0000 (05:33 -0700)] 
Move compat/unsafe.h protections from libcompat to source maintenance

It is sufficient to run a code scan from source-maintenance.sh for the
unsafe functions being used in Squid-specific code instead of
hard-coding compiler breakage on users.
This also "fixes" reporting of errors when cstdio pulls in use of the
unsafe functions by stdlib.

11 years agoVarious fixes to configure for FreeBSD 10
Dennis Glatting [Sat, 8 Feb 2014 08:53:47 +0000 (01:53 -0700)] 
Various fixes to configure for FreeBSD 10

* Detect cstdio file presence for libcompat

* Fix shell syntax in Heimdal Kerberos library detection

11 years agoUse Vector::at() instead of [] errorInitialize()
Francesco Chemolli [Fri, 7 Feb 2014 16:14:42 +0000 (17:14 +0100)] 
Use Vector::at() instead of [] errorInitialize()

11 years agoMerged from trunk
Francesco Chemolli [Fri, 7 Feb 2014 15:38:35 +0000 (16:38 +0100)] 
Merged from trunk

11 years agoHave Vector::at rely on operator[] to do the low-level access
Francesco Chemolli [Fri, 7 Feb 2014 15:37:11 +0000 (16:37 +0100)] 
Have Vector::at rely on operator[] to do the low-level access

11 years agoSourceLayout: shuffle URLScheme to AnyP::UriScheme
Amos Jeffries [Fri, 7 Feb 2014 13:45:20 +0000 (06:45 -0700)] 
SourceLayout: shuffle URLScheme to AnyP::UriScheme

This class holds a generic protocol agnostic Scheme representation.

* rename const_str() member to c_str() since it produces a const C-string
 (char*) representation.

* Remove some unecessary dependencies.

* Cleanup the coding style to match guidelines.

11 years agoVector::pop_back returns void now; don't save the old value
Francesco Chemolli [Thu, 6 Feb 2014 14:14:36 +0000 (15:14 +0100)] 
Vector::pop_back returns void now; don't save the old value

11 years agoMerged from trunk
Francesco Chemolli [Thu, 6 Feb 2014 13:05:41 +0000 (14:05 +0100)] 
Merged from trunk

11 years agoRegression Bug 3769: client_netmask not evaluated since Comm redesign
Amos Jeffries [Thu, 6 Feb 2014 12:16:08 +0000 (05:16 -0700)] 
Regression Bug 3769: client_netmask not evaluated since Comm redesign

11 years agoFix r13257 commit
Francesco Chemolli [Thu, 6 Feb 2014 09:30:48 +0000 (10:30 +0100)] 
Fix r13257 commit

11 years agoFix keepalive handling for non-ranged requests.
Alex Rousskov [Wed, 5 Feb 2014 18:04:47 +0000 (19:04 +0100)] 
Fix keepalive handling for non-ranged requests.

Internal keepalive flag was ignored by a mismatched interface between ClientSocketContext::socketState
and writeComplete in the case of non-ranged requests.

11 years agoChanged c-style cast to const_cast in esi/CustomParser.cc
Francesco Chemolli [Tue, 4 Feb 2014 19:55:16 +0000 (20:55 +0100)] 
Changed c-style cast to const_cast in esi/CustomParser.cc

11 years agoRemoved useless include in errorpage.cc
Francesco Chemolli [Tue, 4 Feb 2014 19:51:44 +0000 (20:51 +0100)] 
Removed useless include in errorpage.cc

11 years agoReverted broken change in HttpRequest::multipartRangeRequest
Francesco Chemolli [Tue, 4 Feb 2014 19:50:02 +0000 (20:50 +0100)] 
Reverted broken change in HttpRequest::multipartRangeRequest

11 years agoRemove Vector::operator +=. Removed some useless comments
Francesco Chemolli [Tue, 4 Feb 2014 19:47:14 +0000 (20:47 +0100)] 
Remove Vector::operator +=. Removed some useless comments

11 years agoMove some looping checks from size() to !empty()
Francesco Chemolli [Tue, 4 Feb 2014 16:54:49 +0000 (17:54 +0100)] 
Move some looping checks from size() to !empty()

11 years agoChanged pop_back() signature to match std::vector. Marked hot methods inline
Francesco Chemolli [Sun, 2 Feb 2014 18:19:59 +0000 (19:19 +0100)] 
Changed pop_back() signature to match std::vector. Marked hot methods inline

11 years agoTurned Vector::count and capacity protected
Francesco Chemolli [Sun, 2 Feb 2014 17:10:57 +0000 (18:10 +0100)] 
Turned Vector::count and capacity protected

11 years agoMade Vector::items private
Francesco Chemolli [Sun, 2 Feb 2014 14:36:26 +0000 (15:36 +0100)] 
Made Vector::items private

11 years agoRenamed Vector::clean to clear
Francesco Chemolli [Sun, 2 Feb 2014 09:42:23 +0000 (10:42 +0100)] 
Renamed Vector::clean to clear

11 years agoRemove layering violations in Vector users
Francesco Chemolli [Sun, 2 Feb 2014 08:57:20 +0000 (09:57 +0100)] 
Remove layering violations in Vector users

11 years agoPrep for 3.4.3
Amos Jeffries [Sun, 2 Feb 2014 03:09:44 +0000 (20:09 -0700)] 
Prep for 3.4.3

11 years agoFix peerSelectDnsResults() IP address cycling
Amos Jeffries [Sun, 2 Feb 2014 01:24:53 +0000 (18:24 -0700)] 
Fix peerSelectDnsResults() IP address cycling

The local ip variable is the index of the IP address to be used.
Loop counter n is only used to prevent cycling indefinitely and should
not be used to access the array indexes.

11 years agoComm job callbacks need job's cbdata pointer, not a job pointer.
Alex Rousskov [Tue, 28 Jan 2014 19:28:23 +0000 (12:28 -0700)] 
Comm job callbacks need job's cbdata pointer, not a job pointer.

Otherwise, in complex inheritance hierarchies, some [inner] classes will
hit cbdata cookie assertions when scheduling Comm calls with callbacks.

11 years agoBug 3975: atomic detection cross-compilation failure
Stefano Cordibella [Mon, 27 Jan 2014 13:37:38 +0000 (06:37 -0700)] 
Bug 3975: atomic detection cross-compilation failure

11 years agoBug 3608: part 1 - per-service name for workers UDS sockets
Amos Jeffries [Mon, 27 Jan 2014 05:27:41 +0000 (22:27 -0700)] 
Bug 3608: part 1 - per-service name for workers UDS sockets

Separate the UDS socket names used by SMP workers by the -n service_name
label assigned to the Squid instance being run.

TODO: separate shared memory blocks per-service.

11 years agoAdd ${service_name} macro to squid.conf processing
Amos Jeffries [Mon, 27 Jan 2014 03:06:15 +0000 (20:06 -0700)] 
Add ${service_name} macro to squid.conf processing

This allows squid.conf directives to be configured per-service by
expanding into the -n service_name parameter. The default is "squid".

11 years agoBug 3954: compile failure in CpuAffinity.cc
Unknown FreeBSD Contributor [Mon, 27 Jan 2014 02:11:08 +0000 (19:11 -0700)] 
Bug 3954: compile failure in CpuAffinity.cc

Patch written by 'dim [1]' contributor to FreeBSD and imported to Squid
under FreeBSD license. see
http://svnweb.freebsd.org/ports/head/www/squid33/files/patch-include__Array.h

11 years agoEnable -n command line option for non-Windows Squid builds
Amos Jeffries [Fri, 24 Jan 2014 01:57:15 +0000 (18:57 -0700)] 
Enable -n command line option for non-Windows Squid builds

This command line option is used on Windows to name the service instance
of Squid being run and/or managed. At this point it still only has
useful effect on Windows, but can now be used by components on other
systems as well.

Show the running instance service name in cacehmgr and -v output.

Also remove _WIN_SQUID_DEFAULT_SERVICE_NAME macro which duplicated the
APP_SHORTNAME macro. This changes the Windows service name from Squid to
squid (lower case) on future Squid-3 for Windows.

11 years agoInitialize asyncLoopDepth_ in constructor
Amos Jeffries [Thu, 23 Jan 2014 22:47:39 +0000 (15:47 -0700)] 
Initialize asyncLoopDepth_ in constructor

  Detected by Coverity Scan. Issue 740529.

11 years agoBug 3971: "BUG: cannot aggregate mgr:client_list: cmd->profile != NULL" in SMP mode
Nathan Hoad [Thu, 23 Jan 2014 07:59:26 +0000 (09:59 +0200)] 
Bug 3971: "BUG: cannot aggregate mgr:client_list: cmd->profile != NULL" in SMP mode

When running Squid in SMP mode, the 'client_list' command cannot be used as the
coordinator doesn't call clientdbInit(), and thus doesn't have the client_list
action registered.

This patch uses RegisteredRunner to initialize clientdb and register the
'client_list' command

11 years agoBug 1202 part 1: documentation and debugs for refresh_pattern algorithms
Doug Dixon [Mon, 20 Jan 2014 10:43:03 +0000 (23:43 +1300)] 
Bug 1202 part 1: documentation and debugs for refresh_pattern algorithms

This contains only the code documentation and debugs changes as relevant
to the current code. Some which are only relevant to the new code from
that bug patch have been omitted.

It omits all logic changes and function renaming changes.

11 years agoSet error page Content-Type character set to UTF-8
Amos Jeffries [Mon, 20 Jan 2014 01:20:40 +0000 (14:20 +1300)] 
Set error page Content-Type character set to UTF-8

This fixes issues with some user agents displaying non-English / ASCII
error page translations. Our translation system uses and produces UTF-8
templates for the langpack content.

It also encourages UTF-8 usage in third-party error pages.

11 years agocachemgr: Enable per-report Content-Type header
Amos Jeffries [Mon, 20 Jan 2014 01:11:58 +0000 (14:11 +1300)] 
cachemgr: Enable per-report Content-Type header

The default for all reports is plain text in UTF-8.

NOTE: UTF-8 selected because although current reports limit themselves
to ASCII character ranges, some reports may contain text pulled from the
protocol transferred and UTF-8 display covers most unexpected cases.

11 years agoCleanup refreshCountsStats() cache manager code
Amos Jeffries [Mon, 20 Jan 2014 00:50:04 +0000 (13:50 +1300)] 
Cleanup refreshCountsStats() cache manager code

* Replace a #define macro with local static function.

* Replace pointer parameter with reference

* suppress display of histograms where there are no records and so no
  meaningful content to be displayed.

11 years agoDocs: update refresh_pattern internal documentation
Amos Jeffries [Sun, 19 Jan 2014 22:43:22 +0000 (11:43 +1300)] 
Docs: update refresh_pattern internal documentation

11 years agoRevert rev.13253 - fuba
Amos Jeffries [Sun, 19 Jan 2014 05:39:55 +0000 (21:39 -0800)] 
Revert rev.13253 - fuba

11 years agoMerge from trunk
Amos Jeffries [Sun, 19 Jan 2014 05:20:17 +0000 (21:20 -0800)] 
Merge from trunk

11 years agoFix documentation for key_extras authentication helper parameter
Christos Tsantilas [Thu, 30 Jan 2014 21:24:44 +0000 (23:24 +0200)] 
Fix documentation for key_extras authentication helper parameter

11 years agoFix configure syntax error on strict shells
Francesco Chemolli [Wed, 29 Jan 2014 09:31:47 +0000 (10:31 +0100)] 
Fix configure syntax error on strict shells

11 years agoFix external_acl_type async loop failures
Amos Jeffries [Fri, 17 Jan 2014 11:44:26 +0000 (03:44 -0800)] 
Fix external_acl_type async loop failures

When externa_acl_type uses %LOGIN and is required to trigger async
authentication lookups it returns and hits the async loop prevention
check when starting to trigger its own external helper lookup. This
results in a DUNNO output from the helper as final status instead of
the real helepr lookup result.

Avoid these by allowing async helpers to loop several times before
aborting the lookups.

Also, extend debug message to indicate loop count.

Thanks to Peter Benko for trackign down the issue and testing solutions.

11 years agoRevert and replace rev.13234
Amos Jeffries [Thu, 16 Jan 2014 00:24:34 +0000 (13:24 +1300)] 
Revert and replace rev.13234

Clang dentifies the StoreIOBuffer parameter as unsigned,
  error: comparison of unsigned expression < 0 is always false

11 years agoBug 4008: HttpHeader warnOnError should be an int not a bool
Will Roberts [Wed, 15 Jan 2014 23:57:54 +0000 (12:57 +1300)] 
Bug 4008: HttpHeader warnOnError should be an int not a bool

11 years agoCleanup: Fix StoreIOBuffer initialization cases
Amos Jeffries [Wed, 15 Jan 2014 02:11:05 +0000 (15:11 +1300)] 
Cleanup: Fix StoreIOBuffer initialization cases

When StoreIOBuffer isconstructed with an invalid (negative) size for the
content data mark it as an error immedately and set a valid length of
zero bytes.

Also, remove some unnecessary code in store_client.cc resulting.

  Detected by Coverity Scan. Issue 434132.

11 years agoCleanup: Improve testACLMaxUserIP NULL checks
Amos Jeffries [Wed, 15 Jan 2014 01:59:19 +0000 (14:59 +1300)] 
Cleanup: Improve testACLMaxUserIP NULL checks

  Detected by Coverity Scan. Issue 1140358.

11 years agoCleanup: ICAP adaptation pointer handling
Amos Jeffries [Wed, 15 Jan 2014 01:54:19 +0000 (14:54 +1300)] 
Cleanup: ICAP adaptation pointer handling

Divert unlikely but possible request NULL pointer into the Must()
condition handler for missing History data.

 Detected by Coverity Scan. Issue 740365.

11 years agoFix rfcnb library potential NULL pointer dereference
Amos Jeffries [Wed, 15 Jan 2014 01:23:14 +0000 (14:23 +1300)] 
Fix rfcnb library potential NULL pointer dereference

Malformed RFCNB packet may lead to crash.

 Detected by Coverity Scan. Issue 740355.

11 years agoFix memory leak in peer cache Digest exchange
Amos Jeffries [Tue, 14 Jan 2014 21:29:20 +0000 (10:29 +1300)] 
Fix memory leak in peer cache Digest exchange

 Detected by Coverity Scan. Issue 1094115.

11 years agoFix MemMapSlot constructor initialization of expiry TTL
Amos Jeffries [Tue, 14 Jan 2014 21:16:23 +0000 (10:16 +1300)] 
Fix MemMapSlot constructor initialization of expiry TTL

Also, restyle MemMap constructor initialization list.

  Detected by Coverity Scan. Issue 1153961.

11 years agoShuffle coverity marker
Francesco Chemolli [Tue, 14 Jan 2014 20:36:03 +0000 (21:36 +0100)] 
Shuffle coverity marker

11 years agoMark a behavior detected by Coverity as defect as intentional
Francesco Chemolli [Tue, 14 Jan 2014 17:18:08 +0000 (18:18 +0100)] 
Mark a behavior detected by Coverity as defect as intentional

11 years agoBug 3986: assertion failed due to incorrect error page buffer size
Amos Jeffries [Mon, 13 Jan 2014 21:03:45 +0000 (10:03 +1300)] 
Bug 3986: assertion failed due to incorrect error page buffer size

errorpage.cc:1307:
   "(size_t)content->contentSize() == strlen(content->content())"

11 years agoSMP SSL session cache implementation
Christos Tsantilas [Sun, 12 Jan 2014 17:51:12 +0000 (19:51 +0200)] 
SMP SSL session cache implementation

This patch implement SSL session cache sharing across SMP workers using shared
memory. The following new squid configuration options added:

 - The "sslproxy_session_cache_size" option which sets the cache size to use
   for ssl session. Example usage:
     sslproxy_session_cache_size 4 MB

 - The "sslproxy_session_ttl" option which defines the time in seconds the
   ssl session is valid. Example usage:
     sslproxy_session_ttl  600

This is a Measurement Factory project

11 years agoSMP shared cache with timeouts for squid
Christos Tsantilas [Sun, 12 Jan 2014 17:15:45 +0000 (19:15 +0200)] 
SMP shared cache with timeouts for squid

This patch investigates the Ipc::MemMap class which is a shared cache with
timeouts for use with squid SMP.

TODO: Ipc::MemMap class has similar interfaces and functionality with the
Ipc::StoreMap class. These two classes should implemented as kid classes of
an Ipc::SharedCache class which encompass features from Ipc::MemMap and
Ipc::StoreMap classes.

This is a Measurement Factory project

11 years agoCoverity defect 1151594: side-effect in assertion in CollapsedForwarding
Francesco Chemolli [Fri, 10 Jan 2014 19:01:04 +0000 (20:01 +0100)] 
Coverity defect 1151594: side-effect in assertion in CollapsedForwarding

11 years agoDocument and enforce invariant on Format::Token.divisor
Francesco Chemolli [Fri, 10 Jan 2014 15:50:03 +0000 (16:50 +0100)] 
Document and enforce invariant on Format::Token.divisor

11 years agoFix coding ambiguity in store_repl_heap.cc and heap.h
Francesco Chemolli [Fri, 10 Jan 2014 15:46:59 +0000 (16:46 +0100)] 
Fix coding ambiguity in store_repl_heap.cc and heap.h

11 years agoDocs: fix various doxygen compiler issues
Amos Jeffries [Sat, 11 Jan 2014 01:35:50 +0000 (17:35 -0800)] 
Docs: fix various doxygen compiler issues

11 years agoSquidNew: don't redefine new and delete on clang
Francesco Chemolli [Thu, 9 Jan 2014 13:53:54 +0000 (14:53 +0100)] 
SquidNew: don't redefine new and delete on clang

11 years agoFix include guard in include/rfc1123.h
Francesco Chemolli [Thu, 9 Jan 2014 13:52:08 +0000 (14:52 +0100)] 
Fix include guard in include/rfc1123.h

11 years agoFix header-guard in include/uudecode.h
Francesco Chemolli [Thu, 9 Jan 2014 13:11:42 +0000 (14:11 +0100)] 
Fix header-guard in include/uudecode.h

11 years agoFix header-guards in compat/os/hpux.h
Francesco Chemolli [Thu, 9 Jan 2014 13:04:32 +0000 (14:04 +0100)] 
Fix header-guards in compat/os/hpux.h

11 years agoBug 3996: Malformed DNS reply leads to crash
Susant Sahani [Thu, 9 Jan 2014 20:27:49 +0000 (12:27 -0800)] 
Bug 3996: Malformed DNS reply leads to crash

11 years agoBug 3927: tests/testRock fatal.cc required
Amos Jeffries [Thu, 9 Jan 2014 01:07:56 +0000 (18:07 -0700)] 
Bug 3927: tests/testRock fatal.cc required

11 years agoDisable error page translation by default in builds
Amos Jeffries [Sun, 5 Jan 2014 20:19:06 +0000 (12:19 -0800)] 
Disable error page translation by default in builds

There is no need for every build from VCS to have fresh translations.

Enable explicitly for snapshot and release scripts instead so that
translated template files are still available online and pre-translated
in the distributed packages.

11 years agoCleanup: remove ClientSocketContextNew() wrapper function
Amos Jeffries [Sun, 5 Jan 2014 19:49:23 +0000 (11:49 -0800)] 
Cleanup: remove ClientSocketContextNew() wrapper function

This wrapper function for the ClientSocketContext default constructor
is better performed as an explicit parametered constructor which
prevents accidental use of the default constructor leading to invalid
state after creation (a context always requires connectino and parent
pointers).

11 years agoCleanup: remove useless makesnmplib variable from build
Amos Jeffries [Wed, 8 Jan 2014 04:29:04 +0000 (21:29 -0700)] 
Cleanup: remove useless makesnmplib variable from build

Squid coding guidelines require automake variables to use naming pattern
ENABLE_* and there is already ENABLE_SNMP defined with intended overlap
of usage. We can drop this unusual variable completely.

11 years agoCentrally destroy all explicit and implicit ACLs to avoid destruction segfaults
Alex Rousskov [Mon, 6 Jan 2014 20:55:13 +0000 (13:55 -0700)] 
Centrally destroy all explicit and implicit ACLs to avoid destruction segfaults
during reconfiguration.

Group ACLs created later may use other ACLs created earlier and vice versa, a
group ACL created earlier may use other ACLs created later. The latter is
possible when an ACL (e.g., A2 below) is declared when the group already
exists:

  acl A1 src 127.0.0.1
  acl Group all-of A1
  acl A2 src 127.0.0.2
  acl Group all-of A2

Thus, the group (i.e., InnerNode) ACL destructor may access already deleted
children regardless of the global ACL deletion order (FIFO or LIFO with
respect to ACL creation). Instead of relying on the deletion order to protect
InnerNode, we remove the InnerNode ACL destructor completely and rely on a
global set of registered ACLs to destroy all ACLs.

The old code was destroying all explicit ACLs in the same centralized fashion.
We now add implicit ACLs (commonly used by InnerNodes) to the centralized
destruction sequence. We added a new destruction-dedicated container to avoid
messing with the by-name ACL search that Config.aclList global is used for.
This new container will become unnecessary once we start refcounting ACLs.

11 years agoRelease Notes update for 2.5
Amos Jeffries [Sun, 5 Jan 2014 03:04:03 +0000 (19:04 -0800)] 
Release Notes update for 2.5

11 years agoAdd logformat code %>rd to log client URL domain name
Amos Jeffries [Sun, 5 Jan 2014 02:56:31 +0000 (18:56 -0800)] 
Add logformat code %>rd to log client URL domain name

Logging the Host header or the full URL have been the only ways to log
the domain name requested by the client. However full URL may contain
far too many unwanted bytes and Host header many contain a host:port
very different to the URL.

 This work is sponsored by Brendan Kearney

11 years agoBug 3995: compile error on CentOS 5 with GCC 4.1.2
Reinhard Sojka [Mon, 6 Jan 2014 01:10:00 +0000 (14:10 +1300)] 
Bug 3995: compile error on CentOS 5 with GCC 4.1.2

11 years agoMerge from CharacterSet
Francesco Chemolli [Sun, 5 Jan 2014 21:59:17 +0000 (22:59 +0100)] 
Merge from CharacterSet

11 years agoRemoved CharacterSet::CRLF and clarified some comments
Francesco Chemolli [Sun, 5 Jan 2014 21:58:13 +0000 (22:58 +0100)] 
Removed CharacterSet::CRLF and clarified some comments

11 years agoMerged from trunk
Francesco Chemolli [Sun, 5 Jan 2014 13:07:44 +0000 (14:07 +0100)] 
Merged from trunk

11 years agoMerge storeentry-refactor, fix store unit test
Francesco Chemolli [Fri, 3 Jan 2014 17:52:35 +0000 (18:52 +0100)] 
Merge storeentry-refactor, fix store unit test

11 years agoBaseMultiQueue is virtual but had no virtual destructor
Francesco Chemolli [Fri, 3 Jan 2014 11:13:52 +0000 (12:13 +0100)] 
BaseMultiQueue is virtual but had no virtual destructor

11 years agoGot rid of Store.cci
Francesco Chemolli [Fri, 3 Jan 2014 10:32:53 +0000 (11:32 +0100)] 
Got rid of Store.cci

11 years agoFix SBuf::rfind
Amos Jeffries [Thu, 2 Jan 2014 23:03:20 +0000 (00:03 +0100)] 
Fix SBuf::rfind

11 years agoMerged from trunk
Francesco Chemolli [Thu, 2 Jan 2014 17:12:37 +0000 (18:12 +0100)] 
Merged from trunk

11 years agoFix SBuf and SBufList unit tests linkage
Francesco Chemolli [Thu, 2 Jan 2014 16:01:57 +0000 (17:01 +0100)] 
Fix SBuf and SBufList unit tests linkage

11 years agotests/testSBufList on CentOS needs MemObject::endOffset().
Alex Rousskov [Thu, 2 Jan 2014 05:13:17 +0000 (22:13 -0700)] 
tests/testSBufList on CentOS needs MemObject::endOffset().

11 years agoInitial Large Rock and Collapsed Forwarding support.
Alex Rousskov [Wed, 1 Jan 2014 20:13:23 +0000 (13:13 -0700)] 
Initial Large Rock and Collapsed Forwarding support.

Large Rock: Support disk (and shared memory) caching of responses exceeding
one db slot (or one shared memory page) in size. A single db slot/page size is
still limited to 32KB (smaller values can be configured for disk caches using
the newly added cache_dir slot-size option). Removal of old rock cache dir
(followed by squid-z) is required -- the on-disk db structure has changed.

Collapsed Forwarding: Optionally merge concurrent cachable requests for the
same URI earlier: After the request headers have been parsed (as before), but
now _before_ the response headers have been received. Merging of requests
received by different SMP workers is supported. Controlled by the new
collapsed_forwarding directive in squid.conf. Disabled by default because all
but one of the merged requests have to be delayed (until the response headers
are received) for the merging to work, which may be worse than forwarding all
concurrent requests immediately. The overall feature idea and request
eligibility conditions are based on Collapsed Forwarding in Squid2.

Summary of other important changes (merged branch log contains the details):

* Tightened StoreEntry locking. Split StoreEntry::lock() into "just lock" and
  "update entry reference time" interfaces, addressing an old XXX.  Improved
  entry lock/unlock debugging. Needs more work.

* Adjusted StoreIOState::write() API to allow callers detect write errors.

* Simplified MemObject::write() API to remove an essentially unused callback.

* Mark client streams that sent everything as STREAM_COMPLETE. The old code
  used STREAM_UNPLANNED_COMPLETE if the completed stream was associated with a
  non-persistent connection, which did not make sense to me and, IIRC, led to
  store entry aborts even though the entries were not damaged in any way.

* mem_hdr::hasContigousContentRange() now returns true for empty ranges.

* Support "appending" ReadWriteLock state that can be shared by readers and
  the writer. The writer promises not to update key metadata (except growing
  object size and next pointers) and readers promise to be careful when
  reading growing slices.

* Fixed StoreEntry::mayStartSwapOut() logic to handle terminated swapouts.

* Improved STORE_MEM_CLIENT detection and documented known (and mostly old)
  StoreEntry::storeClientType() problems.

* Removed StoreEntry::hidden_mem_obj hack.

* Polished StoreEntry debugging to report more info, less noise. Use e: prefix.

* Added a script to extract store entry(ies) debugging from cache.log.

11 years agoAdded MemBlob::appended() method. Handy during out-of-band buffer manipulation.
Alex Rousskov [Wed, 1 Jan 2014 20:11:16 +0000 (13:11 -0700)] 
Added MemBlob::appended() method. Handy during out-of-band buffer manipulation.

11 years agoMerged from trunk 13199.
Alex Rousskov [Wed, 1 Jan 2014 19:20:49 +0000 (12:20 -0700)] 
Merged from trunk 13199.

11 years agoRemoved stale copy-pasted boilerplate.
Alex Rousskov [Wed, 1 Jan 2014 17:51:10 +0000 (10:51 -0700)] 
Removed stale copy-pasted boilerplate.

11 years agoAdded missing stubs in testCharacterSet
Francesco Chemolli [Wed, 1 Jan 2014 17:15:10 +0000 (18:15 +0100)] 
Added missing stubs in testCharacterSet

11 years agoSourceFormat Enforcement
Alex Rousskov [Tue, 31 Dec 2013 18:49:41 +0000 (11:49 -0700)] 
SourceFormat Enforcement

11 years agoPolishing touches to address PREVIEW review concerns dated 2013/07/03.
Alex Rousskov [Tue, 31 Dec 2013 18:09:24 +0000 (11:09 -0700)] 
Polishing touches to address PREVIEW review concerns dated 2013/07/03.

11 years agoDo not use HERE in new or changed debugs() statements.
Alex Rousskov [Mon, 30 Dec 2013 23:58:33 +0000 (16:58 -0700)] 
Do not use HERE in new or changed debugs() statements.

Polished StoreEntry creation/destruction debugging.

11 years agoReverted multi-ranges as they require c++0x initializers
Francesco Chemolli [Mon, 30 Dec 2013 13:22:05 +0000 (14:22 +0100)] 
Reverted multi-ranges as they require c++0x initializers

11 years agoPrep for 3.4.2
Amos Jeffries [Mon, 30 Dec 2013 10:48:15 +0000 (03:48 -0700)] 
Prep for 3.4.2