wessels [Wed, 22 Feb 2006 05:42:24 +0000 (05:42 +0000)]
Rework FtpStateData::transactionComplete() so that it normally gets called
*after* the control connection is closed, rather than before sending
the QUIT command. This should avoid the race condition where the FTP
control socket is closed before we get any data back from the ICAP server.
wessels [Sat, 18 Feb 2006 07:23:43 +0000 (07:23 +0000)]
Cleaned up HttpReply handling in client_side_reply code.
ACLChecklist should lock/unlock the HttpReply.
clientReplyContext had a "holdingReply" member which I had a hard
time figuring out. My guess is that it was just a way to avoid leaking
the HttpReply. I've replaced it with a more permanent HttpReply
which is now locked and unlocked as necessary.
wessels [Sat, 18 Feb 2006 07:09:35 +0000 (07:09 +0000)]
I am changing debugging levels for these frequently-printed messages.
They make full debugging virtually worthless because they overwhelm
the other messages.
For now 'squid -kdebug' changes debugging to 'ALL,7' instead of 'ALL,10'
wessels [Wed, 8 Feb 2006 07:16:23 +0000 (07:16 +0000)]
We should pass HttpStateData's orig_request to ICAP, rather than
request, which will be different (and generate wrong URLs) if forwarding
to a parent cache.
wessels [Thu, 26 Jan 2006 00:47:26 +0000 (00:47 +0000)]
The purpose of this change is to add ICAP RESPMOD support for FTP responses.
I created a "ServerStateData" class which has common elements of both
HttpStateData and FtpStateData. It becomes a base class for both
of them. ICAP now uses the ServerStateData methods.
wessels [Thu, 26 Jan 2006 00:41:23 +0000 (00:41 +0000)]
The purpose of this change is to add ICAP RESPMOD support for FTP responses.
I created a "ServerStateData" class which has common elements of both
HttpStateData and FtpStateData. It becomes a base class for both
of them. ICAP now uses the ServerStateData methods.
hno [Tue, 24 Jan 2006 22:32:02 +0000 (22:32 +0000)]
Kill unused nreadfds/nwritefds statistics in comm_poll, eleminating one
more reference to fd_set. The delay pool hooks still uses fd_set however
so comm_poll is not yet FD_SETSIZE neutral.
wessels [Fri, 20 Jan 2006 05:15:18 +0000 (05:15 +0000)]
My recent ClientBody changes introduced a memory leak. This is awkward
because ConnStateData and ClientBody have references to each other.
ClientBody has a RefCount::Pointer to ConnStateData, which must be NULLed
so the ConnStateData destructor will be called.
wessels [Sat, 14 Jan 2006 07:06:19 +0000 (07:06 +0000)]
ConnStateData and ClientBody was a little confusing. There was some duplication
with ClientBody members also appearing in ConnStateData.body. They have been
merged now and ClientBody lives in its own .{cc,h} files.
wessels [Thu, 12 Jan 2006 05:40:39 +0000 (05:40 +0000)]
Management of {adapated,virgin}->data->header was becoming a problem.
One side might delete the header before the other side was done with it.
This patch moves deletion of ->data->header to MsgPipeData class so that
it goes away only when the MsgPipe goes away.
wessels [Thu, 12 Jan 2006 04:05:50 +0000 (04:05 +0000)]
Fixed a couple of bugs with ClientHttpRequest::doCallouts()
- The "no_cache" rule check was never happening because flags.cachable
was always 0 at that point. clientInterpretRequestHeaders() must
be called before doing the "no_cache" checks.
- ClientRequestContext::checkNoCache had an extra cbdataReference() call
which caused a cbdata leak.
- Converted the *_done flags to bool (instead of single-bit ints).
wessels [Tue, 10 Jan 2006 03:38:44 +0000 (03:38 +0000)]
Added some timeout debugging for ICAP transactions. Since ICAPXaction
doesn't know anything about its derived classes, also added a
HttpMsg::firstLineBuf() method to be used in the debugging of timeouts.