]> git.ipfire.org Git - thirdparty/squid.git/commit
Bug 2581, Bug 3081, Bug 2948: various TCP socket connection problems
authorAmos Jeffries <squid3@treenet.co.nz>
Wed, 26 Jan 2011 03:47:13 +0000 (16:47 +1300)
committerAmos Jeffries <squid3@treenet.co.nz>
Wed, 26 Jan 2011 03:47:13 +0000 (16:47 +1300)
commitcbff89ba6b249941fe47ad28d4ac2ed50e286b94
tree37ec8cf63457f5c9cd0918311b7c8f4c080d4ceb
parent12489dcbb6acd160728a01a830044ae8635a5533
Bug 2581, Bug 3081, Bug 2948: various TCP socket connection problems

Bug 3081:
  During conversion of listening socket handlers to AsyncCalls a violation
of the AsyncCall API was introduced. Resulting in occasional crashes from
invalid re-use of call objects.

This implements a TcpAcceptor async job which receives a listening socket
and a CallSubscription. For every connection attempt on the listener socket
a new AsyncCall is spawned from the subscription template.

Initial users are the HTTP and HTTPS listening sockets and FTP data channel.

In order to implement this job in FTP the logics surrounding data channel
handling had to be extended and reworked. Fixing bug 2948 and 2581 in the
process.
14 files changed:
src/CommCalls.h
src/ProtoPort.cc
src/ProtoPort.h
src/base/AsyncCall.h
src/base/Subscription.h
src/client_side.cc
src/comm.cc
src/comm/AcceptLimiter.cc
src/comm/AcceptLimiter.h
src/comm/ListenStateData.h [deleted file]
src/comm/Makefile.am
src/comm/TcpAcceptor.cc [moved from src/comm/ListenStateData.cc with 54% similarity]
src/comm/TcpAcceptor.h [new file with mode: 0644]
src/ftp.cc