#include "squid.h"
#include "acl/FilledChecklist.h"
#include "anyp/PortCfg.h"
#include "base/EnumIterator.h"
#include "base/IoManip.h"
#include "base/PackableStream.h"
#include "base/PrecomputedCodeContext.h"
#include "CacheDigest.h"
#include "CachePeer.h"
#include "CachePeers.h"
#include "comm/Connection.h"
#include "comm/ConnOpener.h"
#include "debug/Messages.h"
#include "event.h"
#include "FwdState.h"
#include "globals.h"
#include "htcp.h"
#include "HttpRequest.h"
#include "icmp/net_db.h"
#include "ICP.h"
#include "int.h"
#include "ip/Address.h"
#include "ip/tools.h"
#include "ipcache.h"
#include "MemObject.h"
#include "mgr/Registration.h"
#include "multicast.h"
#include "neighbors.h"
#include "NeighborTypeDomainList.h"
#include "pconn.h"
#include "PeerDigest.h"
#include "PeerPoolMgr.h"
#include "PeerSelectState.h"
#include "RequestFlags.h"
#include "SquidConfig.h"
#include "SquidMath.h"
#include "stat.h"
#include "Store.h"
#include "store_key_md5.h"
#include "tools.h"
![](neighbors_8cc__incl.png)
Go to the source code of this file.
Macros | |
#define | MCAST_COUNT_RATE 900 |
Variables | |
static IPH | peerDNSConfigure |
static CNCB | peerProbeConnectDone |
static IRCB | peerCountHandleIcpReply |
static OBJH | neighborDumpPeers |
static unsigned short | echo_port |
static int | NLateReplies = 0 |
Macro Definition Documentation
◆ MCAST_COUNT_RATE
#define MCAST_COUNT_RATE 900 |
Definition at line 53 of file neighbors.cc.
Function Documentation
◆ dump_peer_options()
void dump_peer_options | ( | StoreEntry * | sentry, |
CachePeer * | p | ||
) |
Definition at line 1382 of file neighbors.cc.
References CachePeer::allow_miss, CachePeer::background_ping, CachePeer::carp, CachePeer::closest_only, CachePeer::connect_fail_limit, CachePeer::connect_timeout_raw, CachePeer::connection_auth, CachePeer::default_parent, CachePeer::digest_url, CachePeer::domain, Security::PeerOptions::dumpCfg(), CachePeer::htcp, CachePeer::htcp_forward_clr, CachePeer::htcp_no_clr, CachePeer::htcp_no_purge_clr, CachePeer::htcp_oldsquid, CachePeer::htcp_only_clr, CachePeer::limit, CachePeer::login, CachePeer::max_conn, CachePeer::mcast, CachePeer::mcast_responder, CachePeer::mcast_siblings, CachePeer::no_delay, CachePeer::no_digest, CachePeer::no_netdb_exchange, CachePeer::no_query, CachePeer::no_tproxy, CachePeer::options, CachePeer::originserver, PEER_TCP_MAGIC_COUNT, AsList< Container >::prefixedBy(), CachePeer::proxy_only, CachePeer::roundrobin, CachePeer::secure, CachePeer::sourcehash, CachePeer::standby, CachePeer::ttl, CachePeer::userhash, CachePeer::weight, and CachePeer::weighted_roundrobin.
Referenced by dump_peer(), and dump_peers().
◆ dump_peers()
|
static |
Definition at line 1505 of file neighbors.cc.
References assert, dump_peer_options(), Time::FormatHttpd(), icp_opcode_str, Math::intPercent(), MAX_IPSTRLEN, neighborTypeStr(), neighborUp(), squid_curtime, and storeAppendPrintf().
Referenced by neighborDumpPeers().
◆ findCachePeerByName()
CachePeer* findCachePeerByName | ( | const char *const | name | ) |
Definition at line 1048 of file neighbors.cc.
References CurrentCachePeers().
Referenced by ConfigParser::cachePeer(), and parse_peer().
◆ getDefaultParent()
CachePeer* getDefaultParent | ( | PeerSelector * | ps | ) |
Definition at line 468 of file neighbors.cc.
References assert, CurrentCachePeers(), debugs, neighborType(), PEER_PARENT, peerHTTPOkay(), PeerSelector::request, and HttpRequest::url.
Referenced by PeerSelector::selectAllParents(), and PeerSelector::selectSomeParent().
◆ getFirstUpParent()
CachePeer* getFirstUpParent | ( | PeerSelector * | ps | ) |
Definition at line 281 of file neighbors.cc.
References assert, CurrentCachePeers(), debugs, neighborType(), neighborUp(), PEER_PARENT, peerHTTPOkay(), PeerSelector::request, and HttpRequest::url.
Referenced by PeerSelector::selectSomeParent().
◆ getRoundRobinParent()
CachePeer* getRoundRobinParent | ( | PeerSelector * | ps | ) |
Definition at line 307 of file neighbors.cc.
References assert, CurrentCachePeers(), debugs, neighborType(), PEER_PARENT, peerHTTPOkay(), RawPointer(), PeerSelector::request, CachePeer::rr_count, HttpRequest::url, and CachePeer::weight.
Referenced by PeerSelector::selectSomeParent().
◆ getWeightedRoundRobinParent()
CachePeer* getWeightedRoundRobinParent | ( | PeerSelector * | ps | ) |
Definition at line 349 of file neighbors.cc.
References assert, CachePeer::basetime, CurrentCachePeers(), debugs, neighborType(), PEER_PARENT, peerHTTPOkay(), RawPointer(), PeerSelector::request, CachePeer::rr_count, CachePeer::rtt, CachePeer::stats, HttpRequest::url, and CachePeer::weight.
Referenced by PeerSelector::selectSomeParent().
◆ ignoreMulticastReply()
|
static |
Definition at line 905 of file neighbors.cc.
References CachePeer::mcast_responder, CachePeer::options, and peerHTTPOkay().
Referenced by neighborsHtcpReply(), and neighborsUdpAck().
◆ neighborAlive()
|
static |
Definition at line 829 of file neighbors.cc.
References CachePeer::icp_::counts, CachePeer::icp, ICP_END, int, icp_common_t::opcode, peerAlive(), CachePeer::pings_acked, CachePeer::stats, icp_common_t::version, and CachePeer::icp_::version.
Referenced by neighborsUdpAck().
◆ neighborAliveHtcp()
|
static |
Definition at line 866 of file neighbors.cc.
References CachePeer::counts, HtcpReplyData::hit, CachePeer::htcp, peerAlive(), CachePeer::pings_acked, CachePeer::stats, HtcpReplyData::version, and CachePeer::version.
Referenced by neighborsHtcpReply().
◆ neighborCountIgnored()
|
static |
Definition at line 877 of file neighbors.cc.
References CachePeer::ignored_replies, NLateReplies, and CachePeer::stats.
Referenced by neighborsHtcpReply(), and neighborsUdpAck().
◆ neighborDumpPeers()
|
static |
Definition at line 1376 of file neighbors.cc.
References Config, dump_peers(), and SquidConfig::peers.
◆ neighborIgnoreNonPeer()
|
static |
Definition at line 888 of file neighbors.cc.
References DBG_IMPORTANT, debugs, Debug::Extra(), icp_opcode_str, and isPowTen().
Referenced by neighborsUdpAck().
◆ neighbors_init()
void neighbors_init | ( | void | ) |
Definition at line 504 of file neighbors.cc.
References CurrentCachePeers(), DBG_IMPORTANT, debugs, DeleteConfigured(), echo_port, Debug::Extra(), getMyHostname(), HttpPortList, icpIncomingConn, Comm::IsConnOpen(), neighborsRegisterWithCacheManager(), and peerDnsRefreshStart().
Referenced by mainInitialize(), and mainReconfigureFinish().
◆ neighborsCount()
int neighborsCount | ( | PeerSelector * | ps | ) |
Definition at line 267 of file neighbors.cc.
References CurrentCachePeers(), debugs, and peerWouldBePinged().
Referenced by peerSelectIcpPing().
◆ neighborsDigestSelect()
CachePeer* neighborsDigestSelect | ( | PeerSelector * | ps | ) |
Definition at line 749 of file neighbors.cc.
References assert, Config, debugs, HttpRequest::flags, HttpRequest::hier, RequestFlags::hierarchical, LOOKUP_HIT, LOOKUP_MISS, LOOKUP_NONE, HierarchyLogEntry::n_choices, HierarchyLogEntry::n_ichoices, netdbHostRtt(), CachePeers::nextPeerToPing(), peerDigestLookup(), peerNoteDigestLookup(), SquidConfig::peers, PeerSelector::request, CachePeers::size(), and storeKeyPublicByRequest().
Referenced by PeerSelector::selectSomeNeighbor().
◆ neighborsHtcpClear()
void neighborsHtcpClear | ( | StoreEntry * | e, |
HttpRequest * | req, | ||
const HttpRequestMethod & | method, | ||
htcp_clr_reason | reason | ||
) |
Definition at line 1675 of file neighbors.cc.
References CurrentCachePeers(), debugs, HTCP_CLR_PURGE, and htcpClear().
Referenced by httpMaybeRemovePublic(), purgeEntriesByUrl(), and clientReplyContext::purgeEntry().
◆ neighborsHtcpReply()
void neighborsHtcpReply | ( | const cache_key * | key, |
HtcpReplyData * | htcp, | ||
const Ip::Address & | from | ||
) |
Definition at line 1601 of file neighbors.cc.
References DBG_IMPORTANT, debugs, EBIT_TEST, ENTRY_DISPATCHED, Store::Controller::findCallbackXXX(), StoreEntry::flags, HtcpReplyData::hit, ignoreMulticastReply(), MemObject::ircb_data, StoreEntry::locked(), StoreEntry::mem_obj, neighborAliveHtcp(), neighborCountIgnored(), neighborType(), neighborUpdateRtt(), PEER_NONE, MemObject::ping_reply_callback, StoreEntry::ping_status, PING_WAITING, AnyP::PROTO_HTCP, MemObject::request, Store::Root(), storeKeyText(), HttpRequest::url, and whichPeer().
Referenced by htcpHandleTstResponse().
◆ neighborsRegisterWithCacheManager()
|
static |
Definition at line 496 of file neighbors.cc.
References neighborDumpPeers, and Mgr::RegisterAction().
Referenced by neighbors_init().
◆ neighborsUdpAck()
void neighborsUdpAck | ( | const cache_key * | key, |
icp_common_t * | header, | ||
const Ip::Address & | from | ||
) |
I should attach these records to the entry. We take the first hit we get our wait until everyone misses. The timeout handler call needs to nip this shopping list or call one of the misses.
If a hit process is already started, then sobeit
Definition at line 927 of file neighbors.cc.
References CachePeer::icp_::counts, DBG_CRITICAL, DBG_IMPORTANT, debug_trap(), debugs, DeleteConfigured(), EBIT_TEST, ENTRY_DISPATCHED, StoreEntry::flags, CachePeer::icp, ICP_DECHO, ICP_DENIED, ICP_END, ICP_HIT, ICP_MISS, ICP_MISS_NOFETCH, icp_opcode_str, ICP_SECHO, ignoreMulticastReply(), MemObject::ircb_data, StoreEntry::locked(), StoreEntry::mem_obj, neighborAlive(), neighborCountIgnored(), neighborIgnoreNonPeer(), neighborType(), neighborUpdateRtt(), icp_common_t::opcode, PEER_NONE, PEER_SIBLING, MemObject::ping_reply_callback, StoreEntry::ping_status, PING_WAITING, CachePeer::pings_acked, AnyP::PROTO_ICP, RawPointer(), MemObject::request, Store::Root(), CachePeer::stats, storeKeyText(), HttpRequest::url, and whichPeer().
Referenced by icp_common_t::handleReply().
◆ neighborsUdpPing()
int neighborsUdpPing | ( | HttpRequest * | request, |
StoreEntry * | entry, | ||
IRCB * | callback, | ||
PeerSelector * | ps, | ||
int * | exprep, | ||
int * | timeout | ||
) |
Definition at line 544 of file neighbors.cc.
References assert, Config, CodeContext::Current(), current_time, DBG_CRITICAL, DBG_IMPORTANT, debugs, echo_port, Comm::Connection::fd, StoreEntry::getMD5Text(), StoreEntry::hasDisk(), SquidConfig::htcp, htcpQuery(), SquidConfig::icp, ICP_DECHO, ICP_FLAG_SRC_RTT, ICP_QUERY, SquidConfig::icp_query, SquidConfig::icp_query_max, SquidConfig::icp_query_min, ICP_VERSION_2, icpCreateAndSend(), icpOutgoingConn, icpSetCacheKey(), MemObject::ircb_data, Comm::IsConnOpen(), hash_link::key, mcastSetTtl(), StoreEntry::mem_obj, neighborType(), neighborTypeStr(), neighborUp(), CachePeers::nextPeerToPing(), SquidConfig::onoff, PEER_ALIVE, PEER_DEAD, PEER_MULTICAST, PEER_PARENT, SquidConfig::peers, peerWouldBePinged(), MemObject::ping_reply_callback, SquidConfig::Port, SquidConfig::query_icmp, CodeContext::Reset(), CachePeers::size(), squid_curtime, MemObject::start_ping, SquidConfig::Timeout, HttpRequest::url, and StoreEntry::url().
Referenced by PeerSelector::selectSomeNeighbor().
◆ neighborType()
Definition at line 116 of file neighbors.cc.
References NeighborTypeDomainList::domain, AnyP::Uri::host(), matchDomainName(), CachePeer::mcast_siblings, NeighborTypeDomainList::next, CachePeer::options, PEER_MULTICAST, PEER_NONE, PEER_SIBLING, NeighborTypeDomainList::type, CachePeer::type, and CachePeer::typelist.
Referenced by findUsableParentAtHostname(), getDefaultParent(), getFirstUpParent(), getRoundRobinParent(), getWeightedRoundRobinParent(), neighborsHtcpReply(), neighborsUdpAck(), neighborsUdpPing(), peerAllowedToUse(), PeerSelector::selectAllParents(), PeerSelector::selectSomeNeighbor(), and HttpStateData::sendRequest().
◆ neighborTypeStr()
const char* neighborTypeStr | ( | const CachePeer * | p | ) |
Definition at line 83 of file neighbors.cc.
References PEER_MULTICAST, PEER_NONE, PEER_SIBLING, and CachePeer::type.
Referenced by dump_peer(), dump_peers(), neighborsUdpPing(), CachePeer::noteFailure(), peerAlive(), and peerDNSConfigure().
◆ neighborUp()
Definition at line 1058 of file neighbors.cc.
References CallService(), Config, SquidConfig::deadPeer, debugs, CachePeer::n_addresses, CachePeer::no_query, CachePeer::options, CachePeer::probe_start, CachePeer::probeCodeContext, squid_curtime, CachePeer::stats, CachePeer::tcp_up, and SquidConfig::Timeout.
Referenced by dump_peers(), getFirstUpParent(), neighborsUdpPing(), PeerPoolMgr::openNewConnection(), peerHTTPOkay(), peerWouldBePinged(), and snmp_meshPtblFn().
◆ neighborUpdateRtt()
Definition at line 841 of file neighbors.cc.
References current_time, Math::intAverage(), CachePeer::options, CachePeer::pings_acked, CachePeer::rtt, RTT_AV_FACTOR, RTT_BACKGROUND_AV_FACTOR, MemObject::start_ping, CachePeer::stats, tvSubMsec(), and CachePeer::weighted_roundrobin.
Referenced by neighborsHtcpReply(), and neighborsUdpAck().
◆ peerAlive()
void peerAlive | ( | CachePeer * | ) |
Updates protocol-agnostic CachePeer state after an indication of a successful contact with the given cache_peer.
Definition at line 449 of file neighbors.cc.
References PeerPoolMgr::Checkpoint(), DBG_IMPORTANT, debugs, CachePeer::host, ipcache_nbgethostbyname(), CachePeer::last_reply, CachePeer::logged_state, CachePeer::mgr, CachePeer::n_addresses, neighborTypeStr(), PEER_ALIVE, PEER_DEAD, peerClearRR(), peerDNSConfigure, CachePeer::probe_start, squid_curtime, CachePeer::standby, CachePeer::stats, and CachePeer::tcp_up.
Referenced by neighborAlive(), neighborAliveHtcp(), and CachePeer::noteSuccess().
◆ peerAllowedToUse()
bool peerAllowedToUse | ( | const CachePeer * | p, |
PeerSelector * | ps | ||
) |
- Returns
- Whether it is appropriate to fetch REQUEST from PEER.
Definition at line 137 of file neighbors.cc.
References CachePeer::access, PeerSelector::al, Acl::Answer::allowed(), assert, AnyP::Uri::authority(), debugs, ACLChecklist::fastCheck(), HttpRequest::flags, CachePeer::http_port, RequestFlags::loopDetected, CachePeer::mcast_siblings, HttpRequest::method, Http::METHOD_CONNECT, RequestFlags::needValidation, neighborType(), RequestFlags::noCache, CachePeer::options, CachePeer::originserver, PEER_MULTICAST, PEER_SIBLING, AnyP::Uri::port(), RequestFlags::refresh, PeerSelector::request, ACLFilledChecklist::syncAle(), CachePeer::type, ACLFilledChecklist::updateAle(), and HttpRequest::url.
Referenced by peerHTTPOkay(), peerWouldBePinged(), and PeerSelector::selectPinned().
◆ peerCanOpenMore()
bool peerCanOpenMore | ( | const CachePeer * | p | ) |
Definition at line 217 of file neighbors.cc.
References CachePeer::conn_open, debugs, CachePeer::max_conn, Squid_MaxFD, and CachePeer::stats.
Referenced by PeerPoolMgr::openNewConnection(), peerConnClosed(), and peerHTTPOkay().
◆ peerClearRR()
void peerClearRR | ( | ) |
Called whenever the round-robin counters need to be reset to a sane state. So far those times are:
- On startup and reconfigure - to set the counters to sane initial settings.
- When a CachePeer has revived from dead, to prevent the revived CachePeer being flooded with requests which it has 'missed' during the down period.
Definition at line 442 of file neighbors.cc.
References CurrentCachePeers().
Referenced by peerAlive(), and peerClearRRLoop().
◆ peerClearRRLoop()
|
static |
This gets called every 5 minutes to clear the round-robin counter. The exact timing is an arbitrary default, set on estimate timing of a large number of requests in a high-performance environment during the period. The larger the number of requests between cycled resets the more balanced the operations.
- Parameters
-
data unused
TODO: Make the reset timing a selectable parameter in squid.conf
Definition at line 413 of file neighbors.cc.
References eventAdd(), and peerClearRR().
Referenced by peerClearRRStart().
◆ peerClearRRStart()
void peerClearRRStart | ( | void | ) |
This gets called on startup and restart to kick off the CachePeer round-robin maintenance event. It ensures that no matter how many times its called no more than one event is scheduled.
Definition at line 425 of file neighbors.cc.
References peerClearRRLoop().
Referenced by parse_peer().
◆ peerConnClosed()
void peerConnClosed | ( | CachePeer * | p | ) |
Definition at line 241 of file neighbors.cc.
References PeerPoolMgr::Checkpoint(), CachePeer::conn_open, CachePeer::mgr, peerCanOpenMore(), CachePeer::standby, CachePeer::stats, and CachePeer::waitingForClose.
Referenced by Comm::Connection::noteClosure().
◆ peerCountHandleIcpReply()
|
static |
Definition at line 1357 of file neighbors.cc.
References assert, current_time, Math::intAverage(), StoreEntry::mem_obj, CachePeer::options, AnyP::PROTO_ICP, CachePeer::rtt, RTT_AV_FACTOR, RTT_BACKGROUND_AV_FACTOR, MemObject::start_ping, CachePeer::stats, tvSubMsec(), and CachePeer::weighted_roundrobin.
◆ peerCountMcastPeersAbort()
|
static |
ends counting of multicast ICP replies to the ICP query initiated by peerCountMcastPeersCreateAndSend()
Definition at line 1335 of file neighbors.cc.
References StoreEntry::abort(), CachePeer::avg_n_members, cbdataReferenceDone, cbdataReferenceValid(), DBG_IMPORTANT, debugs, Math::doubleAverage(), PeerSelector::entry, CachePeer::flags, int, CachePeer::mcast, StoreEntry::mem_obj, ping_data::n_recv, CachePeer::n_replies_expected, CachePeer::n_times_counted, PeerSelector::peerCountMcastPeerXXX, PeerSelector::ping, MemObject::request, CachePeer::rtt, CachePeer::stats, and StoreEntry::unlock().
◆ peerCountMcastPeersCreateAndSend()
|
static |
Definition at line 1277 of file neighbors.cc.
References assert, cbdataReference, Config, current_time, eventAdd(), Comm::Connection::fd, CachePeer::flags, HttpRequest::FromUrlXXX(), HTTPMSGLOCK(), ICP_QUERY, icpCreateAndSend(), icpOutgoingConn, icpSetCacheKey(), CachePeer::id, MemObject::id, CachePeer::in_addr, MemObject::ircb_data, hash_link::key, LOCAL_ARRAY, MAX_URL, CachePeer::mcast, SquidConfig::mcast_icp_query, mcastSetTtl(), StoreEntry::mem_obj, Http::METHOD_GET, PEER_MULTICAST, peerCountHandleIcpReply, peerCountMcastPeersDone(), MemObject::ping_reply_callback, StoreEntry::ping_status, PING_WAITING, MemObject::request, CodeContext::Reset(), MemObject::start_ping, storeCreateEntry(), SquidConfig::Timeout, Ip::Address::toUrl(), CachePeer::ttl, and CachePeer::type.
Referenced by peerCountMcastPeersStart().
◆ peerCountMcastPeersDone()
|
static |
Definition at line 1323 of file neighbors.cc.
References CallBack().
Referenced by peerCountMcastPeersCreateAndSend().
◆ peerCountMcastPeersSchedule()
|
static |
Definition at line 1252 of file neighbors.cc.
References eventAdd(), CachePeer::flags, CachePeer::mcast, and peerCountMcastPeersStart().
Referenced by peerCountMcastPeersStart(), and peerDNSConfigure().
◆ peerCountMcastPeersStart()
|
static |
Definition at line 1266 of file neighbors.cc.
References CallContextCreator(), MCAST_COUNT_RATE, peerCountMcastPeersCreateAndSend(), and peerCountMcastPeersSchedule().
Referenced by peerCountMcastPeersSchedule().
◆ peerDigestLookup()
lookup_t peerDigestLookup | ( | CachePeer * | p, |
PeerSelector * | ps | ||
) |
Definition at line 703 of file neighbors.cc.
References assert, PeerDigest::cd, CacheDigest::contains(), debugs, CachePeer::digest, PeerDigest::flags, LOOKUP_HIT, LOOKUP_MISS, LOOKUP_NONE, PeerDigest::needed, peerDigestNeeded(), peerHTTPOkay(), PeerSelector::request, PeerDigest::requested, storeKeyPublicByRequest(), and PeerDigest::usable.
Referenced by PeerSelector::handleIcpReply(), and neighborsDigestSelect().
◆ peerDNSConfigure()
|
static |
Definition at line 1098 of file neighbors.cc.
References CachePeer::addresses, PeerPoolMgr::Checkpoint(), DBG_CRITICAL, DBG_IMPORTANT, debugs, eventAddIsh(), Dns::CachedIps::goodAndBad(), IamWorkerProcess(), CachePeer::icp, Important, CachePeer::in_addr, CachePeer::mcast, CachePeer::mgr, CachePeer::n_addresses, neighborTypeStr(), netdbExchangeStart(), CachePeer::no_netdb_exchange, CachePeer::options, PEER_MAX_ADDRESSES, PEER_MULTICAST, peerCountMcastPeersSchedule(), peerProbeConnect(), CachePeer::icp_::port, Ip::Address::port(), Ip::Address::setEmpty(), CachePeer::standby, CachePeer::ttl, and CachePeer::type.
◆ peerDnsRefreshCheck()
|
static |
Definition at line 1163 of file neighbors.cc.
References peerDnsRefreshStart(), peerScheduleDnsRefreshCheck(), and statSawRecentRequests().
Referenced by peerScheduleDnsRefreshCheck().
◆ peerDnsRefreshStart()
|
static |
Definition at line 1175 of file neighbors.cc.
References CodeContext::Current(), CurrentCachePeers(), ipcache_nbgethostbyname(), peerDNSConfigure, peerScheduleDnsRefreshCheck(), and CodeContext::Reset().
Referenced by neighbors_init(), and peerDnsRefreshCheck().
◆ peerHasConnAvailable()
bool peerHasConnAvailable | ( | const CachePeer * | p | ) |
Definition at line 226 of file neighbors.cc.
References PconnPool::count(), debugs, CachePeer::pool, and CachePeer::standby.
Referenced by peerHTTPOkay().
◆ peerHTTPOkay()
int peerHTTPOkay | ( | const CachePeer * | p, |
PeerSelector * | ps | ||
) |
Definition at line 252 of file neighbors.cc.
References neighborUp(), peerAllowedToUse(), peerCanOpenMore(), and peerHasConnAvailable().
Referenced by carpSelectParent(), findUsableParentAtHostname(), getDefaultParent(), getFirstUpParent(), getRoundRobinParent(), getWeightedRoundRobinParent(), ignoreMulticastReply(), peerDigestLookup(), peerSourceHashSelectParent(), peerUserHashSelectParent(), and PeerSelector::selectAllParents().
◆ peerNoteDigestLookup()
void peerNoteDigestLookup | ( | HttpRequest * | request, |
CachePeer * | p, | ||
lookup_t | lookup | ||
) |
Definition at line 811 of file neighbors.cc.
References HierarchyLogEntry::cd_host, HierarchyLogEntry::cd_lookup, debugs, HttpRequest::hier, CachePeer::host, lookup_t_str, and RawPointer().
Referenced by PeerSelector::handleIcpReply(), and neighborsDigestSelect().
◆ peerProbeConnect()
|
static |
Definition at line 1205 of file neighbors.cc.
References CachePeer::addresses, commCbCall(), CachePeer::connectTimeout(), getOutgoingAddress(), CachePeer::host, CachePeer::http_port, CachePeer::last_connect_probe, CachePeer::n_addresses, peerProbeConnectDone, peerProbeIsBusy(), Ip::Address::port(), Comm::Connection::remote, CachePeer::reprobe, Comm::ConnOpener::setHost(), Comm::Connection::setPeer(), squid_curtime, AsyncJob::Start(), CachePeer::stats, and CachePeer::testing_now.
Referenced by peerDNSConfigure(), and peerProbeConnectDone().
◆ peerProbeConnectDone()
|
static |
Definition at line 1234 of file neighbors.cc.
References Comm::Connection::close(), CachePeer::noteFailure(), CachePeer::noteSuccess(), Comm::OK, peerProbeConnect(), CachePeer::reprobe, and CachePeer::testing_now.
◆ peerProbeIsBusy()
|
static |
Definition at line 1189 of file neighbors.cc.
References debugs, CachePeer::last_connect_probe, squid_curtime, CachePeer::stats, and CachePeer::testing_now.
Referenced by peerProbeConnect().
◆ peerScheduleDnsRefreshCheck()
|
static |
Definition at line 1155 of file neighbors.cc.
References eventAddIsh(), eventDelete(), eventFind(), and peerDnsRefreshCheck().
Referenced by peerDnsRefreshCheck(), and peerDnsRefreshStart().
◆ peerWouldBePinged()
|
static |
Definition at line 177 of file neighbors.cc.
References assert, CachePeer::background_ping, SquidConfig::backgroundPingRate, Config, SquidConfig::deadPeer, HttpRequest::flags, RequestFlags::hierarchical, CachePeer::icp, CachePeer::last_query, CachePeer::mcast_responder, CachePeer::n_addresses, neighborUp(), CachePeer::no_query, CachePeer::options, PEER_SIBLING, peerAllowedToUse(), CachePeer::icp_::port, PeerSelector::request, squid_curtime, CachePeer::stats, SquidConfig::Timeout, and CachePeer::type.
Referenced by neighborsCount(), and neighborsUdpPing().
◆ positiveTimeout()
time_t positiveTimeout | ( | const time_t | timeout | ) |
- Returns
- max(1, timeout)
Definition at line 1092 of file neighbors.cc.
References max().
Referenced by FwdState::connectingTimeout(), and PeerPoolMgr::handleOpenedConnection().
◆ whichPeer()
CachePeer* whichPeer | ( | const Ip::Address & | from | ) |
Definition at line 98 of file neighbors.cc.
References CurrentCachePeers(), debugs, and Ip::Address::port().
Referenced by PeerSelector::checkNetdbDirect(), neighborsHtcpReply(), neighborsUdpAck(), and PeerSelector::selectSomeNeighborReplies().
Variable Documentation
◆ echo_port
|
static |
Definition at line 78 of file neighbors.cc.
Referenced by neighbors_init(), and neighborsUdpPing().
◆ neighborDumpPeers
|
static |
Definition at line 75 of file neighbors.cc.
Referenced by neighborsRegisterWithCacheManager().
◆ NLateReplies
|
static |
Definition at line 80 of file neighbors.cc.
Referenced by neighborCountIgnored().
◆ peerCountHandleIcpReply
|
static |
Definition at line 72 of file neighbors.cc.
Referenced by peerCountMcastPeersCreateAndSend().
◆ peerDNSConfigure
|
static |
Definition at line 64 of file neighbors.cc.
Referenced by peerAlive(), and peerDnsRefreshStart().
◆ peerProbeConnectDone
|
static |
Definition at line 66 of file neighbors.cc.
Referenced by peerProbeConnect().
Introduction
- About Squid
- Why Squid?
- Squid Developers
- How to Donate
- How to Help Out
- Getting Squid
- Squid Source Packages
- Squid Deployment Case-Studies
- Squid Software Foundation
Documentation
- Quick Setup
- Configuration:
- FAQ and Wiki
- Guide Books:
- Non-English
- More...
Support
- Security Advisories
- Bugzilla Database
- Mailing lists
- Contacting us
- Commercial services
- Project Sponsors
- Squid-based products