#include <HappyConnOpener.h>


Classes | |
class | Attempt |
a connection opening attempt in progress (or falsy) More... | |
class | CbDialer |
AsyncCall dialer for our callback. Gives us access to callback Answer. More... | |
Public Types | |
typedef HappyConnOpenerAnswer | Answer |
typedef CbcPointer< AsyncJob > | Pointer |
Public Member Functions | |
HappyConnOpener (const ResolvedPeersPointer &, const AsyncCall::Pointer &, HttpRequestPointer &, const time_t aFwdStart, int tries, const AccessLogEntryPointer &al) | |
virtual | ~HappyConnOpener () override |
void | allowPersistent (bool permitted) |
configures reuse of old connections More... | |
void | setRetriable (bool retriable) |
configures whether the request may be retried later if things go wrong More... | |
void | setHost (const char *) |
configures the origin server domain name More... | |
void | noteCandidatesChange () |
reacts to changes in the destinations list More... | |
void | noteGavePrimeItsChance () |
reacts to expired happy_eyeballs_connect_timeout More... | |
void | noteSpareAllowance () |
reacts to satisfying happy_eyeballs_connect_gap and happy_eyeballs_connect_limit More... | |
bool | canBeCalled (AsyncCall &call) const |
whether we can be called More... | |
void | callStart (AsyncCall &call) |
virtual void | callEnd () |
called right after the called job method More... | |
virtual void | callException (const std::exception &e) |
called when the job throws during an async call More... | |
virtual void * | toCbdata ()=0 |
Static Public Member Functions | |
static Pointer | Start (AsyncJob *job) |
starts a freshly created job (i.e., makes the job asynchronous) More... | |
Public Attributes | |
HappyAbsoluteTime | primeStart = 0 |
the start of the first connection attempt for the currentPeer More... | |
Protected Member Functions | |
void | deleteThis (const char *aReason) |
void | mustStop (const char *aReason) |
bool | done () const |
the job is destroyed in callEnd() when done() More... | |
Protected Attributes | |
const char * | stopReason |
reason for forcing done() to be true More... | |
const char * | typeName |
kid (leaf) class name, for debugging More... | |
AsyncCall::Pointer | inCall |
the asynchronous call being handled, if any More... | |
const InstanceId< AsyncJob > | id |
job identifier More... | |
Private Member Functions | |
CBDATA_CHILD (HappyConnOpener) | |
virtual void | start () override |
called by AsyncStart; do not call directly More... | |
virtual bool | doneAll () const override |
whether positive goal has been reached More... | |
virtual void | swanSong () override |
virtual const char * | status () const override |
internal cleanup; do not call directly More... | |
void | maybeOpenAnotherPrimeConnection () |
starts a prime connection attempt if possible or does nothing otherwise More... | |
void | maybeGivePrimeItsChance () |
void | stopGivingPrimeItsChance () |
called when the prime attempt has used up its chance for a solo victory More... | |
void | stopWaitingForSpareAllowance () |
called when the spare attempt should no longer obey spare connection limits More... | |
void | maybeOpenSpareConnection () |
if possible, starts a spare connection attempt More... | |
void | startConnecting (Attempt &, PeerConnectionPointer &) |
starts opening (or reusing) a connection to the given destination More... | |
void | openFreshConnection (Attempt &, PeerConnectionPointer &) |
bool | reuseOldConnection (PeerConnectionPointer &) |
void | connectDone (const CommConnectCbParams &) |
void | checkForNewConnection () |
void | updateSpareWaitAfterPrimeFailure () |
reacts to a prime attempt failure More... | |
void | cancelSpareWait (const char *reason) |
stops waiting for the right conditions to open a spare connection More... | |
bool | ranOutOfTimeOrAttempts () const |
Check for maximum connection tries and forwarding time restrictions. More... | |
ErrorState * | makeError (const err_type type) const |
Answer * | futureAnswer (const PeerConnectionPointer &) |
void | sendSuccess (const PeerConnectionPointer &conn, bool reused, const char *connKind) |
send a successful result to the initiator (if it still needs an answer) More... | |
void | sendFailure () |
inform the initiator about our failure to connect (if needed) More... | |
void | cancelAttempt (Attempt &, const char *reason) |
cancels the in-progress attempt, making its path a future candidate More... | |
Private Attributes | |
const time_t | fwdStart |
requestor start time More... | |
AsyncCall::Pointer | callback_ |
handler to be called on connection completion. More... | |
ResolvedPeersPointer | destinations |
Candidate paths. Shared with the initiator. May not be finalized yet. More... | |
Attempt | prime |
current connection opening attempt on the prime track (if any) More... | |
Attempt | spare |
current connection opening attempt on the spare track (if any) More... | |
Comm::ConnectionPointer | currentPeer |
HappySpareWait | spareWaiting |
preconditions for an attempt to open a spare connection More... | |
AccessLogEntryPointer | ale |
transaction details More... | |
ErrorState * | lastError = nullptr |
last problem details (or nil) More... | |
PeerConnectionPointer | lastFailedConnection |
nil if none has failed More... | |
bool | ignoreSpareRestrictions = false |
whether spare connection attempts disregard happy_eyeballs_* settings More... | |
bool | gotSpareAllowance = false |
whether we have received a permission to open a spare while spares are limited More... | |
bool | allowPconn_ = true |
whether persistent connections are allowed More... | |
bool | retriable_ = true |
whether we are opening connections for a request that may be resent More... | |
const char * | host_ = nullptr |
origin server domain name (or equivalent) More... | |
HttpRequestPointer | cause |
the request that needs a to-server connection More... | |
int | n_tries |
number of connection opening attempts, including those in the requestor More... | |
const char * | ranOutOfTimeOrAttemptsEarlier_ = nullptr |
Reason to ran out of time or attempts. More... | |
Friends | |
class | HappyOrderEnforcer |
Detailed Description
A TCP connection opening algorithm based on Happy Eyeballs (RFC 8305). Maintains two concurrent connection opening tracks: prime and spare. Shares ResolvedPeers list with the job initiator.
Definition at line 102 of file HappyConnOpener.h.
Member Typedef Documentation
◆ Answer
Definition at line 106 of file HappyConnOpener.h.
◆ Pointer
|
inherited |
Definition at line 34 of file AsyncJob.h.
Constructor & Destructor Documentation
◆ HappyConnOpener()
HappyConnOpener::HappyConnOpener | ( | const ResolvedPeersPointer & | dests, |
const AsyncCall::Pointer & | aCall, | ||
HttpRequestPointer & | request, | ||
const time_t | aFwdStart, | ||
int | tries, | ||
const AccessLogEntryPointer & | al | ||
) |
Definition at line 328 of file HappyConnOpener.cc.
References assert, callback_, destinations, and AsyncCall::getDialer().
◆ ~HappyConnOpener()
|
overridevirtual |
Definition at line 341 of file HappyConnOpener.cc.
Member Function Documentation
◆ allowPersistent()
|
inline |
Definition at line 135 of file HappyConnOpener.h.
References allowPconn_.
◆ callEnd()
|
virtualinherited |
called right after the called job method
Reimplemented in Adaptation::Icap::Xaction.
Definition at line 136 of file AsyncJob.cc.
References AsyncCall::debugLevel, debugs, AsyncCall::debugSection, AsyncJob::done(), HERE(), AsyncJob::inCall, NULL, AsyncJob::status(), AsyncJob::swanSong(), and AsyncJob::typeName.
Referenced by Adaptation::Icap::Xaction::callEnd(), and AsyncJob::deleteThis().
◆ callException()
|
virtualinherited |
Reimplemented in ClientHttpRequest, Ftp::Server, Ipc::Inquirer, Ipc::Forwarder, Adaptation::Icap::Xaction, Adaptation::Icap::ServiceRep, Adaptation::Icap::ModXact, and ConnStateData.
Definition at line 127 of file AsyncJob.cc.
References cbdataReferenceValid(), debugs, Must, AsyncJob::mustStop(), and CbdataParent::toCbdata().
Referenced by ConnStateData::callException(), Adaptation::Icap::Xaction::callException(), Ipc::Forwarder::callException(), Ipc::Inquirer::callException(), and Ftp::Server::callException().
◆ callStart()
|
inherited |
called just before the called method
Definition at line 114 of file AsyncJob.cc.
References cbdataReferenceValid(), AsyncCall::debugLevel, debugs, AsyncCall::debugSection, AsyncJob::inCall, Must, AsyncJob::status(), CbdataParent::toCbdata(), and AsyncJob::typeName.
◆ canBeCalled()
|
inherited |
Definition at line 101 of file AsyncJob.cc.
References AsyncCall::cancel(), debugs, HERE(), AsyncJob::inCall, and NULL.
◆ cancelAttempt()
|
private |
Definition at line 484 of file HappyConnOpener.cc.
References HappyConnOpener::Attempt::cancel(), destinations, Must, HappyConnOpener::Attempt::path, and ResolvedPeers::reinstatePath().
Referenced by swanSong().
◆ cancelSpareWait()
|
private |
Definition at line 665 of file HappyConnOpener.cc.
References HappySpareWait::clear(), debugs, HappySpareWait::forSpareAllowance, Must, spareWaiting, stopGivingPrimeItsChance(), stopWaitingForSpareAllowance(), and HappySpareWait::toGivePrimeItsChance.
Referenced by checkForNewConnection(), swanSong(), and updateSpareWaitAfterPrimeFailure().
◆ CBDATA_CHILD()
|
private |
◆ checkForNewConnection()
|
private |
Called when an external event changes initiator interest, destinations, prime, spare, or spareWaiting. Leaves HappyConnOpener in one of these (mutually exclusive beyond the exceptional state #0) "stable" states:
0. Exceptional termination: done()
- Processing a single peer: currentPeer 1.1. Connecting: prime || spare 1.2. Waiting for spare gap and/or paths: !prime && !spare
- Waiting for a new peer: destinations->empty() && !destinations->destinationsFinalized && !currentPeer
- Finished: destinations->empty() && destinations->destinationsFinalized && !currentPeer
Definition at line 690 of file HappyConnOpener.cc.
References cancelSpareWait(), current_dtime, currentPeer, debugs, destinations, ResolvedPeers::destinationsFinalized, AsyncJob::done(), doneAll(), ResolvedPeers::doneWithPeer(), ResolvedPeers::doneWithSpares(), ResolvedPeers::empty(), ResolvedPeers::extractFront(), HappySpareWait::forNewPeer, gotSpareAllowance, ignoreSpareRestrictions, maybeGivePrimeItsChance(), maybeOpenAnotherPrimeConnection(), maybeOpenSpareConnection(), Must, prime, primeStart, ranOutOfTimeOrAttempts(), spare, spareWaiting, and startConnecting().
Referenced by connectDone(), noteCandidatesChange(), noteGavePrimeItsChance(), and start().
◆ connectDone()
|
private |
called by Comm::ConnOpener objects after a prime or spare connection attempt completes (successfully or not)
Definition at line 579 of file HappyConnOpener.cc.
References checkForNewConnection(), Comm::Connection::close(), CommCommonCbParams::conn, debugs, ERR_CONNECT_FAIL, HappyConnOpener::Attempt::finish(), CommCommonCbParams::flag, Comm::Connection::getPeer(), gotSpareAllowance, SpareAllowanceGiver::jobUsedAllowance(), lastError, lastFailedConnection, makeError(), Must, Comm::OK, HappyConnOpener::Attempt::path, peerConnectFailed(), prime, sendSuccess(), spare, spareWaiting, TheSpareAllowanceGiver, updateSpareWaitAfterPrimeFailure(), CommCommonCbParams::xerrno, and ErrorState::xerrno.
Referenced by openFreshConnection().
◆ deleteThis()
|
protectedinherited |
Definition at line 49 of file AsyncJob.cc.
References asyncCall(), AsyncJob::callEnd(), debugs, AsyncJob::inCall, JobMemFun(), Must, NULL, AsyncJob::stopReason, and AsyncJob::typeName.
Referenced by ConnStateData::connStateClosed().
◆ done()
|
protectedinherited |
Definition at line 90 of file AsyncJob.cc.
References AsyncJob::doneAll(), NULL, and AsyncJob::stopReason.
Referenced by AsyncJob::callEnd(), checkForNewConnection(), and Downloader::downloadFinished().
◆ doneAll()
|
overrideprivatevirtual |
Reimplemented from AsyncJob.
Definition at line 363 of file HappyConnOpener.cc.
References callback_, AsyncCall::canceled(), destinations, ResolvedPeers::destinationsFinalized, ResolvedPeers::empty(), prime, ranOutOfTimeOrAttempts(), and spare.
Referenced by checkForNewConnection().
◆ futureAnswer()
|
private |
- Returns
- pre-filled Answer if the initiator needs an answer (or nil)
Definition at line 457 of file HappyConnOpener.cc.
References assert, callback_, AsyncCall::canceled(), conn, AsyncCall::getDialer(), and n_tries.
Referenced by sendFailure(), and sendSuccess().
◆ makeError()
|
private |
Create "503 Service Unavailable" or "504 Gateway Timeout" error depending on whether this is a validation request. RFC 7234 section 5.2.2 says that we MUST reply with "504 Gateway Timeout" if validation fails and cached reply has proxy-revalidate, must-revalidate or s-maxage Cache-Control directive.
Definition at line 448 of file HappyConnOpener.cc.
References ale, cause, HttpRequest::flags, RefCount< C >::getRaw(), RequestFlags::needValidation, Http::scGatewayTimeout, Http::scServiceUnavailable, and type.
Referenced by connectDone(), and sendFailure().
◆ maybeGivePrimeItsChance()
|
private |
starts waiting for a spare permission (if spare connections may be possible) or does nothing (otherwise)
Definition at line 798 of file HappyConnOpener.cc.
References Config, SquidConfig::connect_limit, currentPeer, debugs, destinations, ResolvedPeers::doneWithSpares(), HappyOrderEnforcer::enqueue(), HappySpareWait::forNewPeer, HappySpareWait::forPrimesToFail, SquidConfig::happyEyeballs, Must, prime, PrimeChanceGiver::readyNow(), spare, spareWaiting, ThePrimeChanceGiver, and HappySpareWait::toGivePrimeItsChance.
Referenced by checkForNewConnection().
◆ maybeOpenAnotherPrimeConnection()
|
private |
Definition at line 787 of file HappyConnOpener.cc.
References currentPeer, destinations, ResolvedPeers::extractPrime(), Must, prime, and startConnecting().
Referenced by checkForNewConnection().
◆ maybeOpenSpareConnection()
|
private |
Definition at line 829 of file HappyConnOpener.cc.
References currentPeer, destinations, HappyOrderEnforcer::enqueue(), ResolvedPeers::extractSpare(), HappySpareWait::forSpareAllowance, gotSpareAllowance, ResolvedPeers::haveSpare(), ignoreSpareRestrictions, SpareAllowanceGiver::jobGotInstantAllowance(), Must, ranOutOfTimeOrAttempts(), SpareAllowanceGiver::readyNow(), spare, spareWaiting, startConnecting(), and TheSpareAllowanceGiver.
Referenced by checkForNewConnection().
◆ mustStop()
|
protectedinherited |
Definition at line 69 of file AsyncJob.cc.
References debugs, AsyncJob::inCall, Must, NULL, AsyncJob::stopReason, and AsyncJob::typeName.
Referenced by HttpStateData::abortAll(), AsyncJob::callException(), HttpStateData::continueAfterParsingHeader(), HttpStateData::drop1xx(), HttpStateData::handleMoreRequestBodyAvailable(), HttpStateData::httpStateConnClosed(), HttpStateData::httpTimeout(), Comm::ConnOpener::noteAbort(), HttpStateData::proceedAfter1xx(), ConnStateData::proxyProtocolError(), HttpStateData::readReply(), HttpStateData::start(), and HttpStateData::wroteLast().
◆ noteCandidatesChange()
void HappyConnOpener::noteCandidatesChange | ( | ) |
Definition at line 508 of file HappyConnOpener.cc.
References checkForNewConnection(), destinations, and ResolvedPeers::notificationPending.
◆ noteGavePrimeItsChance()
void HappyConnOpener::noteGavePrimeItsChance | ( | ) |
Definition at line 760 of file HappyConnOpener.cc.
References checkForNewConnection(), HappySpareWait::clear(), Must, spareWaiting, and HappySpareWait::toGivePrimeItsChance.
◆ noteSpareAllowance()
void HappyConnOpener::noteSpareAllowance | ( | ) |
Definition at line 768 of file HappyConnOpener.cc.
References HappySpareWait::clear(), currentPeer, destinations, ResolvedPeers::extractSpare(), HappySpareWait::forSpareAllowance, gotSpareAllowance, SpareAllowanceGiver::jobDroppedAllowance(), Must, ranOutOfTimeOrAttempts(), spare, spareWaiting, startConnecting(), and TheSpareAllowanceGiver.
◆ openFreshConnection()
|
private |
opens a fresh connection to the given destination must be called via startConnecting()
Definition at line 549 of file HappyConnOpener.cc.
References cause, connectDone(), HappyConnOpener::Attempt::connector, Comm::Connection::connectTimeout(), fwdStart, GetMarkingsToServer(), Comm::Connection::getPeer(), RefCount< C >::getRaw(), host_, JobCallback, Comm::Connection::local, n_tries, HappyConnOpener::Attempt::opener, HappyConnOpener::Attempt::path, Ip::Address::port(), Comm::ConnOpener::setHost(), and AsyncJob::Start().
Referenced by startConnecting().
◆ ranOutOfTimeOrAttempts()
|
private |
Definition at line 864 of file HappyConnOpener.cc.
References Config, debugs, SquidConfig::forward_max_tries, FwdState::ForwardTimeout(), fwdStart, n_tries, and ranOutOfTimeOrAttemptsEarlier_.
Referenced by checkForNewConnection(), doneAll(), maybeOpenSpareConnection(), and noteSpareAllowance().
◆ reuseOldConnection()
|
private |
reuses a persistent connection to the given destination (if possible)
- Returns
- true if and only if reuse was possible must be called via startConnecting()
Definition at line 532 of file HappyConnOpener.cc.
References allowPconn_, assert, PeerConnectionPointer::finalize(), fwdPconnPool, host_, n_tries, PconnPool::pop(), retriable_, and sendSuccess().
Referenced by startConnecting().
◆ sendFailure()
|
private |
Definition at line 493 of file HappyConnOpener.cc.
References assert, callback_, debugs, ERR_GATEWAY_FAILURE, futureAnswer(), lastError, lastFailedConnection, makeError(), and ScheduleCallHere.
Referenced by swanSong().
◆ sendSuccess()
|
private |
Definition at line 471 of file HappyConnOpener.cc.
References assert, callback_, conn, debugs, futureAnswer(), and ScheduleCallHere.
Referenced by connectDone(), and reuseOldConnection().
◆ setHost()
void HappyConnOpener::setHost | ( | const char * | h | ) |
Definition at line 348 of file HappyConnOpener.cc.
◆ setRetriable()
|
inline |
Definition at line 138 of file HappyConnOpener.h.
References retriable_.
◆ start()
|
overrideprivatevirtual |
Reimplemented from AsyncJob.
Definition at line 356 of file HappyConnOpener.cc.
References checkForNewConnection(), destinations, and ResolvedPeers::notificationPending.
◆ Start()
|
staticinherited |
Definition at line 23 of file AsyncJob.cc.
References CallJobHere, and AsyncJob::start().
Referenced by Ftp::Server::AcceptCtrlConnection(), Ftp::Server::checkDataConnPre(), clientListenerConnectionOpened(), Ftp::Client::connectDataChannel(), FwdState::connectStart(), Adaptation::Icap::Xaction::dnsLookupDone(), Log::TcpLogger::doConnect(), FwdState::establishTunnelThruProxy(), TunnelStateData::establishTunnelThruProxy(), Ipc::Coordinator::handleCacheMgrRequest(), PeerPoolMgr::handleOpenedConnection(), Ipc::Coordinator::handleSnmpRequest(), httpAccept(), httpsAccept(), httpStart(), idnsInitVC(), Ftp::Gateway::listenForDataChannel(), Ftp::Server::listenForDataConnection(), Adaptation::Icap::Xaction::noteCommConnected(), Log::TcpLogger::Open(), openFreshConnection(), PeerPoolMgr::openNewConnection(), peerProbeConnect(), Mgr::FunAction::respond(), Mgr::InfoAction::respond(), FwdState::secureConnectionToPeer(), TunnelStateData::secureConnectionToPeer(), Ipc::SendMessage(), Mgr::Inquirer::sendResponse(), snmpConstructReponse(), SquidMain(), CacheManager::start(), Ident::Start(), Adaptation::AccessCheck::Start(), Rock::Rebuild::Start(), Security::PeerConnector::startCertDownloading(), TunnelStateData::startConnecting(), Ftp::StartGateway(), Ftp::StartRelay(), PeerPoolMgrsRr::syncConfig(), and Rock::SwapDir::updateHeaders().
◆ startConnecting()
|
private |
Definition at line 516 of file HappyConnOpener.cc.
References allowPconn_, cause, HappyConnOpener::Attempt::connector, HttpRequest::flags, Comm::Connection::getPeer(), Must, openFreshConnection(), HappyConnOpener::Attempt::path, reuseOldConnection(), and RequestFlags::sslBumped.
Referenced by checkForNewConnection(), maybeOpenAnotherPrimeConnection(), maybeOpenSpareConnection(), and noteSpareAllowance().
◆ status()
|
overrideprivatevirtual |
for debugging, starts with space
Reimplemented from AsyncJob.
Definition at line 414 of file HappyConnOpener.cc.
References buf, HappyConnOpener::Attempt::connector, Comm::Connection::fd, AsyncCall::id, Comm::Connection::isOpen(), n_tries, HappyConnOpener::Attempt::path, prime, spare, AsyncJob::stopReason, and InstanceId< Class, ValueType >::value.
◆ stopGivingPrimeItsChance()
|
private |
Definition at line 646 of file HappyConnOpener.cc.
References HappyOrderEnforcer::dequeue(), Must, spareWaiting, ThePrimeChanceGiver, and HappySpareWait::toGivePrimeItsChance.
Referenced by cancelSpareWait(), and updateSpareWaitAfterPrimeFailure().
◆ stopWaitingForSpareAllowance()
|
private |
Definition at line 654 of file HappyConnOpener.cc.
References HappySpareWait::callback, HappyOrderEnforcer::dequeue(), HappySpareWait::forSpareAllowance, SpareAllowanceGiver::jobDroppedAllowance(), Must, spareWaiting, and TheSpareAllowanceGiver.
Referenced by cancelSpareWait().
◆ swanSong()
|
overrideprivatevirtual |
Reimplemented from AsyncJob.
Definition at line 386 of file HappyConnOpener.cc.
References callback_, cancelAttempt(), AsyncCall::canceled(), cancelSpareWait(), debugs, gotSpareAllowance, SpareAllowanceGiver::jobDroppedAllowance(), prime, sendFailure(), spare, spareWaiting, AsyncJob::swanSong(), and TheSpareAllowanceGiver.
◆ toCbdata()
|
pure virtualinherited |
Implemented in HttpStateData, ClientHttpRequest, and BodySink.
Referenced by AsyncJob::callException(), and AsyncJob::callStart().
◆ updateSpareWaitAfterPrimeFailure()
|
private |
Definition at line 625 of file HappyConnOpener.cc.
References cancelSpareWait(), currentPeer, destinations, ResolvedPeers::doneWithPrimes(), ignoreSpareRestrictions, Must, prime, spareWaiting, stopGivingPrimeItsChance(), and HappySpareWait::toGivePrimeItsChance.
Referenced by connectDone().
Friends And Related Function Documentation
◆ HappyOrderEnforcer
|
friend |
Definition at line 228 of file HappyConnOpener.h.
Member Data Documentation
◆ ale
|
private |
Definition at line 230 of file HappyConnOpener.h.
Referenced by makeError().
◆ allowPconn_
|
private |
Definition at line 242 of file HappyConnOpener.h.
Referenced by allowPersistent(), reuseOldConnection(), and startConnecting().
◆ callback_
|
private |
Definition at line 211 of file HappyConnOpener.h.
Referenced by HappyConnOpener(), doneAll(), futureAnswer(), sendFailure(), sendSuccess(), and swanSong().
◆ cause
|
private |
Definition at line 251 of file HappyConnOpener.h.
Referenced by makeError(), openFreshConnection(), and startConnecting().
◆ currentPeer
|
private |
CachePeer and IP address family of the peer we are trying to connect to now (or, if we are just waiting for paths to a new peer, nil)
Definition at line 224 of file HappyConnOpener.h.
Referenced by checkForNewConnection(), maybeGivePrimeItsChance(), maybeOpenAnotherPrimeConnection(), maybeOpenSpareConnection(), noteSpareAllowance(), and updateSpareWaitAfterPrimeFailure().
◆ destinations
|
private |
Definition at line 214 of file HappyConnOpener.h.
Referenced by HappyConnOpener(), cancelAttempt(), checkForNewConnection(), doneAll(), maybeGivePrimeItsChance(), maybeOpenAnotherPrimeConnection(), maybeOpenSpareConnection(), noteCandidatesChange(), noteSpareAllowance(), start(), and updateSpareWaitAfterPrimeFailure().
◆ fwdStart
|
private |
Definition at line 209 of file HappyConnOpener.h.
Referenced by openFreshConnection(), and ranOutOfTimeOrAttempts().
◆ gotSpareAllowance
|
private |
Definition at line 239 of file HappyConnOpener.h.
Referenced by checkForNewConnection(), connectDone(), maybeOpenSpareConnection(), noteSpareAllowance(), and swanSong().
◆ host_
|
private |
Definition at line 248 of file HappyConnOpener.h.
Referenced by ~HappyConnOpener(), openFreshConnection(), reuseOldConnection(), and setHost().
◆ id
|
protectedinherited |
Definition at line 72 of file AsyncJob.h.
◆ ignoreSpareRestrictions
|
private |
Definition at line 236 of file HappyConnOpener.h.
Referenced by checkForNewConnection(), maybeOpenSpareConnection(), and updateSpareWaitAfterPrimeFailure().
◆ inCall
|
protectedinherited |
Definition at line 71 of file AsyncJob.h.
Referenced by AsyncJob::callEnd(), AsyncJob::callStart(), AsyncJob::canBeCalled(), AsyncJob::deleteThis(), and AsyncJob::mustStop().
◆ lastError
|
private |
Definition at line 232 of file HappyConnOpener.h.
Referenced by ~HappyConnOpener(), connectDone(), and sendFailure().
◆ lastFailedConnection
|
private |
Definition at line 233 of file HappyConnOpener.h.
Referenced by connectDone(), and sendFailure().
◆ n_tries
|
private |
Definition at line 254 of file HappyConnOpener.h.
Referenced by futureAnswer(), openFreshConnection(), ranOutOfTimeOrAttempts(), reuseOldConnection(), and status().
◆ prime
|
private |
Definition at line 217 of file HappyConnOpener.h.
Referenced by checkForNewConnection(), connectDone(), doneAll(), maybeGivePrimeItsChance(), maybeOpenAnotherPrimeConnection(), status(), swanSong(), and updateSpareWaitAfterPrimeFailure().
◆ primeStart
HappyAbsoluteTime HappyConnOpener::primeStart = 0 |
Definition at line 153 of file HappyConnOpener.h.
Referenced by checkForNewConnection(), and PrimeChanceGiver::readyNow().
◆ ranOutOfTimeOrAttemptsEarlier_
|
mutableprivate |
Definition at line 257 of file HappyConnOpener.h.
Referenced by ranOutOfTimeOrAttempts().
◆ retriable_
|
private |
Definition at line 245 of file HappyConnOpener.h.
Referenced by reuseOldConnection(), and setRetriable().
◆ spare
|
private |
Definition at line 220 of file HappyConnOpener.h.
Referenced by checkForNewConnection(), connectDone(), doneAll(), maybeGivePrimeItsChance(), maybeOpenSpareConnection(), noteSpareAllowance(), status(), and swanSong().
◆ spareWaiting
|
private |
Definition at line 227 of file HappyConnOpener.h.
Referenced by cancelSpareWait(), checkForNewConnection(), connectDone(), HappyOrderEnforcer::dequeue(), HappyOrderEnforcer::enqueue(), maybeGivePrimeItsChance(), maybeOpenSpareConnection(), noteGavePrimeItsChance(), noteSpareAllowance(), stopGivingPrimeItsChance(), stopWaitingForSpareAllowance(), swanSong(), and updateSpareWaitAfterPrimeFailure().
◆ stopReason
|
protectedinherited |
Definition at line 69 of file AsyncJob.h.
Referenced by AsyncJob::deleteThis(), AsyncJob::done(), AsyncJob::mustStop(), AsyncJob::status(), and status().
◆ typeName
|
protectedinherited |
Definition at line 70 of file AsyncJob.h.
Referenced by AsyncJob::AsyncJob(), Adaptation::Icap::Xaction::Xaction(), AsyncJob::~AsyncJob(), AsyncJob::callEnd(), AsyncJob::callStart(), AsyncJob::deleteThis(), and AsyncJob::mustStop().
The documentation for this class was generated from the following files:
- src/HappyConnOpener.h
- src/HappyConnOpener.cc