]> git.ipfire.org Git - thirdparty/squid.git/commit - src/http.cc
Fixed a bug and some confusion with ACLChecklist::fastCheck()
authorwessels <>
Fri, 9 Dec 2005 03:08:46 +0000 (03:08 +0000)
committerwessels <>
Fri, 9 Dec 2005 03:08:46 +0000 (03:08 +0000)
commit108d65b2f8eddf61ed1c2663a5b90e03b142ee02
tree6ada887ae2cb2850c7851817e2dfda4fcfb10490
parent95000c891f9e3b9db1c38cd76fb9c0f57e2f3f8c
Fixed a bug and some confusion with ACLChecklist::fastCheck()

- Added cbdataReferenceDone(accessList) call to fastCheck() in the
  "if finished()" block.

- peerAllowedToUse() was setting accessList = NULL after calling
  fastCheck().  Since neither fastCheck() nor peerAllowedToUse()
  were calling cbdataReferenceDone(), the cbdata lock_count would
  never decrease and eventually hit an assertion.

- In general, the fastCheck() callers do not need to call
  cbdataReferenceDone, nor set accessList to NULL.  The
  cbdataReferenceDone() call should always happen in fastCheck().
  If not, it will happen in the ACLCheckList destructor.

- It might be even better if fastCheck() called cbdataReference()
  as well, to avoid this situation where locking happens in one
  place and unlocking in another.  This is future work, however.
src/ACLChecklist.cc
src/DelayId.cc
src/cbdata.cc
src/client_side.cc
src/forward.cc
src/http.cc
src/icp_v2.cc
src/neighbors.cc
src/snmp_core.cc
src/tunnel.cc