adrian [Wed, 13 Sep 2006 21:54:21 +0000 (21:54 +0000)]
Fix a bug which resulted in objects being released after forwarding was complete.
This may have been my fault; but the forward code is all a bit weird at
the present time. Bring the forward logic back into line with squid-2.6.
This does need to be verified to be sure its doing the right thing.
It is, at least, resulting in cachable objects once again and hasn't
broken the FTP error page generation.
adrian [Sun, 10 Sep 2006 09:20:37 +0000 (09:20 +0000)]
Bug 1579, 1475 - fix unlinkd to reduce the number of fd_set references
Squid_MaxFD is limited to FD_SETSIZE because of the fd_set uses outside of
the select(unix/windows) code. This patch removes one of the last
remaining uses.
adrian [Sun, 10 Sep 2006 07:53:00 +0000 (07:53 +0000)]
Rework the transaction completion/aborting in the ftp code to fix bug 1592
The main problems in the code were:
* fwd->complete() was being called more than once
* everything was being funned through transactionComplete() which just
wouldn't call abort handlers in the case of an abort.
So, transactionAbort() will call comm_close() to properly kill the
transaction the squid-2 way. this is ugly and should be replaced by some
object state to indicate the connection has been closed and the object
is on its way out; the current way will end up deleting the class data
before the code stack is fully unwound!
transactionForwardComplete() is just a wrapper that makes sure fwd->complete()
is called -once-.
adrian [Thu, 7 Sep 2006 07:00:03 +0000 (07:00 +0000)]
Bug 1754: BodyReader was reading too much data from the socket buffer.
Fix the BodyReader read routine to only empty enough data to satisfy the
given Content-Length; rather than emptying the buffer entirely.
Some clients have a habit of stuffing a \r\n at the end of a POST body and
this was being (over)read and hitting an assertion.
Bugfix 1750 - support tunnelling of RTSP and other protocols that abuse HTTP by sending just the headers and then waiting for out of band indicators to finish the reply.
Valgrind support. Mainly rearranging of cbdata to make malloc debugging
easier.
Also adds a new environment variable MEMPOOLS replacing the -mc command line option
for disabling the use of memory pools. A lot of the pools is created
automatically before main() is started so command line options was
a bit too late.
Fix library link order in tests to more closely match what is used for the main
program. Notably this was causing problems for libsnmp, where the tests picked
up a system provided libsnmp instead of ours..
* break out the connection completion code away from the FwdState destructor
* place into ::completed
* Add a flag which goes true when completed has been called; add some
debugging to indicate (loudly!) if this condition is kicked off
* call ::completed via ::complete if the connection isn't being forwarded;
mirroring the fwdStateFree() semantics in fwdComplete() from squid-2
Bug #1716: Squid 2.6-STABLE2 does not compile with newer versions of OpenSSL
This patch partially drops the support for OpenSSL 0.9.7x:
When using gcc 3.3.x and OpenSSL 0.9.7x sometimes a compile error can occur.
This is caused by an unpredicatble gcc behaviour on a cast of the first argument
of PEM_ASN1_write(). For this reason this code section is disabled. To enable it,
define ALLOW_ALWAYS_SSL_SESSION_DETAIL=1.
Fix bug 772, by reading aborted data from connections when there is a pending POST on the connection. This is still lacking an automated test to prevent regressions occuring again. Additionally the BodyReader API can possibly be tightened up to make this easier to read and implement.
Address bug 951 by changing the assert to a debug statement. This may cause
memory leaks but will no longer take squid down presumptively. We still not
have the right information to reproduce it, but it should at worst leak memory.
serassio [Tue, 29 Aug 2006 21:46:36 +0000 (21:46 +0000)]
Bug #1744: squid-2.6.STABLE3 - fakeauth_auth.core
The base64 decode of the NTLM blob is done only when -d option is specified:
the error introduced in the recent core restructure of fake_aut. Now fixed.
Also ran indent.