]> git.ipfire.org Git - thirdparty/squid.git/commit
Do not let cache manager requests kill SMP Squid using isOpen() assertion.
authorAlex Rousskov <rousskov@measurement-factory.com>
Thu, 15 Sep 2011 18:16:59 +0000 (12:16 -0600)
committerAlex Rousskov <rousskov@measurement-factory.com>
Thu, 15 Sep 2011 18:16:59 +0000 (12:16 -0600)
commitf7c5a63628cbe8aac60adb8250f29623bbca232c
tree1a6319448779094088b96ef5218c6207bcb9c8e1
parent0f2cd2672f4f5b831b7102765348866516e4ae57
Do not let cache manager requests kill SMP Squid using isOpen() assertion.

As the comment above the close call implies, we have not imported the foreign
socket descriptor into our fd_table yet. We must use raw close(2), just like
the corresponding Mgr::Request::Request(msg) code that allocates request.conn,
uses raw assignment to give that half-baked connection a descriptor.

TODO: This direct manipulation of Connection::fd is ugly, and this half-baked
connection will most likely cause more [hidden] problems down the road. For
example, Mgr::Request destructor will assert in a similar way if the request
object is destroyed before Action::respond() is called.
src/mgr/Action.cc