s->listener = new Comm::ConnAcceptor(fd, true);
s->listener->subscribe(5,5, "httpAccept", new CommAcceptCbPtrFun(httpAccept, s));
- AsyncJob::AsyncStart(s->listener);
+ AsyncJob::Start(s->listener);
debugs(1, 1, "Accepting " <<
(s->intercepted ? " intercepted" : "") <<
s->listener = new Comm::ConnAcceptor(fd, true);
s->listener->subscribe(5,5, "httpsAccept", new CommAcceptCbPtrFun(httpsAccept, s));
- AsyncJob::AsyncStart(s->listener);
+ AsyncJob::Start(s->listener);
debugs(1, 1, "Accepting HTTPS connections at " << s->s << ", FD " << fd << ".");
Comm::ConnOpener *cs = new Comm::ConnOpener(conn, call, Config.Timeout.connect);
cs->setHost("DNS TCP Socket");
- AsyncJob::AsyncStart(cs);
+ AsyncJob::Start(cs);
}
static void
AsyncCall::Pointer call = commCbCall(17,3, "fwdConnectDoneWrapper", CommConnectCbPtrFun(fwdConnectDoneWrapper, this));
Comm::ConnOpener *cs = new Comm::ConnOpener(serverDestinations[0], call, ctimeout);
cs->setHost(host);
- AsyncJob::AsyncStart(cs);
+ AsyncJob::Start(cs);
}
void
AsyncCall::Pointer call = commCbCall(9,3, "FtpStateData::ftpPasvCallback", CommConnectCbPtrFun(FtpStateData::ftpPasvCallback, ftpState));
Comm::ConnOpener *cs = new Comm::ConnOpener(conn, call, Config.Timeout.connect);
cs->setHost(ftpState->data.host);
- AsyncJob::AsyncStart(cs);
+ AsyncJob::Start(cs);
}
/** \ingroup ServerProtocolFTPInternal
AsyncCall::Pointer call = commCbCall(9,3, "FtpStateData::ftpPasvCallback", CommConnectCbPtrFun(FtpStateData::ftpPasvCallback, ftpState));
Comm::ConnOpener *cs = new Comm::ConnOpener(conn, call, Config.Timeout.connect);
cs->setHost(ftpState->data.host);
- AsyncJob::AsyncStart(cs);
+ AsyncJob::Start(cs);
}
void
if (!fallback)
conn->local.SetPort(comm_local_port(conn->fd));
ftpState->data.host = NULL;
- AsyncJob::AsyncStart(ftpState->data.listener);
+ AsyncJob::Start(ftpState->data.listener);
}
ftpState->data.listen_conn = conn;
AsyncCall::Pointer acceptCall = JobCallback(11, 5, acceptDialer, this, FtpStateData::ftpAcceptDataConnection);
data.listener = new Comm::ConnAcceptor(data.listen_conn, false, data.host);
data.listener->subscribe(acceptCall);
- AsyncJob::AsyncStart(data.listener);
+ AsyncJob::Start(data.listener);
return;
}
}
data.listener = new Comm::ConnAcceptor(data.conn, false, data.host);
data.listener->subscribe(acceptCall);
- AsyncJob::AsyncStart(data.listener);
+ AsyncJob::Start(data.listener);
} else {
debugs(9, DBG_IMPORTANT, HERE << "Unexpected reply code "<< std::setfill('0') << std::setw(3) << code);
ftpFail(this);
ftpState->data.listener = new Comm::ConnAcceptor(ftpState->data.conn, false, ftpState->data.host);
ftpState->data.listener->subscribe(acceptCall);
- AsyncJob::AsyncStart(ftpState->data.listener);
+ AsyncJob::Start(ftpState->data.listener);
return;
} else if (!ftpState->flags.tried_nlst && code > 300) {
ftpSendNlst(ftpState);
acceptDialer, ftpState, FtpStateData::ftpAcceptDataConnection);
ftpState->data.listener = new Comm::ConnAcceptor(ftpState->data.conn, false, ftpState->data.host);
ftpState->data.listener->subscribe(acceptCall);
- AsyncJob::AsyncStart(ftpState->data.listener);
+ AsyncJob::Start(ftpState->data.listener);
} else if (code >= 300) {
if (!ftpState->flags.try_slash_hack) {
/* Try this as a directory missing trailing slash... */
typedef CommCbMemFunT<HttpStateData, CommTimeoutCbParams> TimeoutDialer;
AsyncCall::Pointer timeoutCall = JobCallback(11, 5,
TimeoutDialer, this, HttpStateData::httpTimeout);
- commSetTimeout(srverConnection->fd, Config.Timeout.lifetime, timeoutCall);
+ commSetTimeout(serverConnection->fd, Config.Timeout.lifetime, timeoutCall);
flags.do_next_read = 1;
maybeReadVirginBody();
hash_join(ident_hash, &state->hash);
AsyncCall::Pointer call = commCbCall(30,3, "Ident::ConnectDone", CommConnectCbPtrFun(Ident::ConnectDone, state));
- AsyncJob::AsyncStart(new Comm::ConnOpener(state->conn, call, Ident::TheConfig.timeout));
+ AsyncJob::Start(new Comm::ConnOpener(state->conn, call, Ident::TheConfig.timeout));
}
void
AsyncCall::Pointer call = commCbCall(15,3, "peerProbeConnectDone", CommConnectCbPtrFun(peerProbeConnectDone, p));
Comm::ConnOpener *cs = new Comm::ConnOpener(conn, call, ctimeout);
cs->setHost(p->host);
- AsyncJob::AsyncStart(cs);
+ AsyncJob::Start(cs);
}
p->stats.last_connect_probe = squid_curtime;
/// \ingroup PConnAPI
#define PCONN_HIST_SZ (1<<16)
-/// \ingroup PConnAPI
+/** \ingroup PConnAPI
+ * A list of connections currently open to a particular destination end-point.
+ * We currently define the end-point by the FQDN it is serving.
+ */
class IdleConnList
{
public:
/* for hash_table */
#include "hash.h"
-/// \ingroup PConnAPI
+/** \ingroup PConnAPI
+ * A pool of persistent connections for a particular service type.
+ * HTTP servers being one such pool type, ICAP services another etc.
+ */
class PconnPool
{
class StoreEntry;
class PconnPool;
-/// \ingroup PConnAPI
+/** \ingroup PConnAPI
+ * The global registry of persistent connection pools.
+ */
class PconnModule
{
else
hierarchyNote(&tunnelState->request->hier, conn->peerType, tunnelState->getHost());
+ // TODO: merge this into hierarchyNote with a conn parameter instead of peerType
+ request->hier.peer_local_port = conn->local.GetPort(); // for %<lp logging
+
if (status != COMM_OK) {
/* At this point only the TCP handshake has failed. no data has been passed.
* we are allowed to re-try the TCP-level connection to alternate IPs for CONNECT.
AsyncCall::Pointer call = commCbCall(26,3, "tunnelConnectDone", CommConnectCbPtrFun(tunnelConnectDone, tunnelState));
Comm::ConnOpener *cs = new Comm::ConnOpener(tunnelState->serverDestinations[0], call, Config.Timeout.connect);
cs->setHost(tunnelState->url);
- AsyncJob::AsyncStart(cs);
+ AsyncJob::Start(cs);
} else {
err = errorCon(ERR_CONNECT_FAIL, HTTP_SERVICE_UNAVAILABLE, request);
*tunnelState->status_ptr = HTTP_SERVICE_UNAVAILABLE;
statCounter.server.all.requests++;
statCounter.server.other.requests++;
- request->hier.peer_local_port = comm_local_port(sock); // for %<lp logging
-
tunnelState = new TunnelStateData;
#if DELAY_POOLS
tunnelState->server.setDelayId(DelayId::DelayClient(http));
tunnelPeerSelectComplete(Comm::ConnectionList *peer_paths, void *data)
{
TunnelStateData *tunnelState = (TunnelStateData *)data;
- HttpRequest *request = tunnelState->request;
if (peer_paths == NULL || peer_paths->size() < 1) {
ErrorState *err;
- err = errorCon(ERR_CANNOT_FORWARD, HTTP_SERVICE_UNAVAILABLE, request);
+ err = errorCon(ERR_CANNOT_FORWARD, HTTP_SERVICE_UNAVAILABLE, tunnelState->request);
*tunnelState->status_ptr = HTTP_SERVICE_UNAVAILABLE;
err->callback = tunnelErrorComplete;
err->callback_data = tunnelState;
AsyncCall::Pointer call = commCbCall(26,3, "tunnelConnectDone", CommConnectCbPtrFun(tunnelConnectDone, tunnelState));
Comm::ConnOpener *cs = new Comm::ConnOpener(tunnelState->serverDestinations[0], call, Config.Timeout.connect);
cs->setHost(tunnelState->url);
- AsyncJob::AsyncStart(cs);
+ AsyncJob::Start(cs);
}
CBDATA_CLASS_INIT(TunnelStateData);