Summary: Convert Stack to typesafe usage.
Keywords:
Convert the Stack Header.
Add a StackTest testcase.
Remove Stack.h from squid.h.
Adjust cbdata to use typesage stacks.
Move cbdata's foreach to Generic.h.
Adjust store.cc to use a typesafe Stack.
Remove unused Stack defines.
* projects@swelltech.com--private/squid--mem-to-disk--3.0--base-0
tag of projects@swelltech.com--private/squid--ign--3.0--patch-76
* extract disk read scheduling from store_client::doCopy.
* Ditto for mem scheduling.
* Extract choice of memory or disk reads from store_client::doCopy.
* Extract logic surrounding disk opens from store_client::doCopy.
Summary: ConnStateData tweaks to address race on close.
Keywords:
* ConnStateData is most appropriate to be reference counted by it's owners, and cbdata locked by it's callees. Make this change and propogate throughout.
* Extract on-closure logic from ConnStateData destructor to ConnStateData::close().
* Fix an apparent break with authenticateOnCloseConnection().
* Move request_t to HttpRequest.h
Fix httpHeaderDelById compile failure. Was a old sin where assert_eid was
abused instead of assert. No idea why gcc did not trigger on this issue
until now. The error has been there forwever (17-Oct-01).
CommRead's operator= was leaking cbdatareferences when assigning to an already extant object.
Fixed. We could benefit by generalising the algorithm for refcounting classes further - to allow the reuse of RefCount's logic with classes owning CBDATA - like CommRead.
Summary: BUGFIX: partial fix for leaking httpStateData.
Keywords:
* ConnectStateData was not being deleted, just freed.
* Added the (optional, but good for clarity) virtual keywords to derived methods of CommCallbackData::deleteSelf.
* Fixup test/debug LDADD - Array.o was there while testing external new and delete.
* Add a test for compiler synthetic copy operators on objects that own ones with overriden operators.
%SRCPORT, %MYPORT, %MYADDR
New format tags for matching client TCP connection details
grace=N
defines a grace period on external acl cache entries. If the entry has less
then the grace period left when being refercenced then a new lookup is
initiated but without waiting for the reply.
hno [Sat, 28 Jun 2003 04:42:08 +0000 (04:42 +0000)]
* ext_user acl type to match user name returned by external acl
* cleanup of how external acls present a user name to the
Squid core to make the code more logical and fix a
minor security issues if there is downstream proxies.
* concept of password returned by external acl type. Integrated
with login= cache_peer option to have the password forwarded
to peers (both proxies and origin type peers)
hno [Sat, 28 Jun 2003 04:32:30 +0000 (04:32 +0000)]
* ext_user acl type to match user name returned by external acl
* cleanup of how external acls present a user name to the
Squid core to make the code more logical and fix a
minor security issues if there is downstream proxies.
* concept of password returned by external acl type. Integrated
with login= cache_peer option to have the password forwarded
to peers (both proxies and origin type peers)
robertc [Thu, 26 Jun 2003 18:51:57 +0000 (18:51 +0000)]
Summary: Convert mem_hdr to the use of a splay.
Keywords:
* Add a dataRange() method to mem_node, to allow direct access to the range
available.
* Add mem_node::deleteSelf().
* Update copyright on stmem.[cc|h].
* Test new mem_node methods.
* Add Splay::end() method and test.
* Add mem_hdr::unlink().
* Remove mem_hdr::unlinkHead(), mem_hdr::getHighest.., mem_hdr::head and mem_hdr::tail.
* Remove mem_node::next.
* Introduce mem_hdr::dump().
* Introduce mem_hdr::size().
* Introduce mem_hdr::start().
* Make mem_hdr::getBlockContainingLocation() public.
wessels [Wed, 25 Jun 2003 03:08:02 +0000 (03:08 +0000)]
changing type of cacheMesh.cachePeerTable.cachePeerEntry.cachePeerPingsSent
and cachePeerPingsAcked to match the MIB. Was ASN_INTEGER, is not
SMI_COUNTER32.
robertc [Tue, 24 Jun 2003 18:42:25 +0000 (18:42 +0000)]
Summary: Profiling additions.
Keywords:
* Added an eventRun profiler hook.
* Added a store_client profiler hook, surrounding kick_reads.
Prevented reentrancy.
* Added a storeDirCallback profiler hook.
Refactored to reduce variable scope.
* Added a profiler hook to comm_calliocallback.
Refactored to reduce variable scope.
* Added surrounding hooks to the read,accept,write and fill
comm callback callers.
* Added profiling hook around HttpStateData::readReply.
* Added profiling hook around HttpStateData::processReplyData.
* Added profiling hook around StoreEntry::write.
* Added profiling hook around storeGetMemSpace.
* Added profiling hook around MemObject::write.
* Added profiling hook around storeWriteComplete.
* Added profiling hook around mem_hdr::write.
robertc [Tue, 24 Jun 2003 18:30:59 +0000 (18:30 +0000)]
Summary: mem_hdr testing and corrections.
Keywords:
* Introduce operator < for mem_nodes, to provide ordering.
* Create a mem_hdr constructor and destructor.
* bugfix: writing before the lowest offset was broken.
* Reuse the Range template for mem_hdr::hasContigousContentRange.
* Prepare splay trees for replacing the list of mem_nodes.
wessels [Mon, 23 Jun 2003 22:49:13 +0000 (22:49 +0000)]
Regarding store_check_cachable_stats, put check for 'wrong_content_length'
before 'not_entry_cachable' because objects with ENTRY_BAD_LEGNTH
also always have ENTRY_CACHABLE cleared and nothing ever gets counted
as 'wrong_content_length'.
robertc [Mon, 23 Jun 2003 20:13:03 +0000 (20:13 +0000)]
Summary: comm cleanups.
Keywords:
* Add a FIXME comment in disabled client_side code where fd abstraction is broken.
* fde.rwstate is actually specific to writes - rename to wstate.
* The warning about rwstate should be a fatal, as it leads to incorrect callbacks occuring.
disabling persistent connections will disable this bug - so a fatal is no impediment to testers.
robertc [Mon, 23 Jun 2003 18:03:07 +0000 (18:03 +0000)]
Summary: CBData reference callback pointers in comm_read and related..
Keywords:
We were not cbdata referencing user supplied pointers. This allows user supplied data to be freed before we call back. Still TODO: check for cbdataReferenceValid upon callback.
robertc [Mon, 23 Jun 2003 17:14:52 +0000 (17:14 +0000)]
Summary: Fix segv in RefCount operator=.
Keywords:
When a cycle is broken for refcounted objects, if the breaking smart pointer is in one of the cycled objects, and is freed as a result, we could end up assigned to freed RAM.
robertc [Mon, 23 Jun 2003 16:39:52 +0000 (16:39 +0000)]
Summary: Callback event loop was busted.
Keywords:
The comms callback event loop was not dereferencing the dlink_node correctly, leading to comparing the sequence number to a pointer. Once again, typecasts leads to bugs :[.
* Increment sequence number on each loop.
* Compare to the event's record sequence number.
* Add a virtual destructor to CommCallbackData to remove some (spurious) warnings that apply to the synthetic constructor under -some- gcc's.
wessels [Mon, 23 Jun 2003 06:41:31 +0000 (06:41 +0000)]
parseEtcHosts() does not properly handle comments. It looks for comments
(#) only at the beginning of the line, but they can appear anywhere.
This fix uses strtok() to terminate the buffer at the first comment
character.
robertc [Sun, 22 Jun 2003 13:47:43 +0000 (13:47 +0000)]
Summary: Ensure that pconns start with no recorded fd's.
Keywords:
Ensure that pconns start with no recorded fd's. Technically, this isn't needed, as cbdata is meant to return cleared memory, but it's good practice to explicitly initialise required values. (And, as we get more C++ syntax, the compiler will optimise that as part of operator new).
* Add accessor and mutator methods storeEntry().
* Find all mutations, and convert to using the mutator.
* Bugfix libTrie for --disable-inline builds.
* Make ClientHttpRequest::memObject() const inline.
* Introduce removeClientStoreReference to clientReplyContext to
manage the encapsulation.
* Add needed MemObject.h header includes to gopher, ftp and wais.cc.
robertc [Fri, 20 Jun 2003 04:25:18 +0000 (04:25 +0000)]
Summary: Fixup GNUregex.c to meet current gcc warning checks.
Keywords:
Fixup GNUregex.c to meet current gcc warning checks. Mostly K&R->ANSI protoypes, as well as a const correctness issue exposed by the correct prototypes;
hno [Fri, 20 Jun 2003 01:02:33 +0000 (01:02 +0000)]
2003-05-21 01:51 hno
Bug #644: strListGetItem() failed to account for quoting, causing digest
authentication to fail on URLs with comma and possibly other odd HTTP
parsing errors.
hno [Fri, 20 Jun 2003 00:56:59 +0000 (00:56 +0000)]
2003-05-18 23:49 hno
2003-05-24 13:08 robertc
Bug #630: digest authentication and buggy browsers
This patch does four things:
* correct signalling of stale digest nonces
* auth_param digest check-nonce-count off option to completely
disable the nonce count check. Needed to work around Konqueror and
certain other broken digest qop implementations.
* auth_param digest post_workaround on to work around certain
broken browsers sending POST requests with a GET digest response
* changes the default of nonce_strictness to off. It is to early to
use strict nonce count increase by one checks, and even in the long
run this is probably not wanted. Enforcing increase by one does not
really add to security, only complexity.
hno [Thu, 19 Jun 2003 23:34:10 +0000 (23:34 +0000)]
2003-05-29 04:59 wessels
Remove confusing "cache_dir diskd" line in cache_dir documentation.
It is apparently left over from a version that is quite old by now.
The correct usage for diskd is given later in the section.