bool OverlayManagerImpl::isPeerPreferred(Peer::pointer peer) { std::string pstr = peer->toString(); if (mPreferredPeers.find(pstr) != mPreferredPeers.end()) { CLOG(DEBUG, "Overlay") << "Peer " << pstr << " is preferred"; return true; } if (peer->isAuthenticated()) { std::string kstr = PubKeyUtils::toStrKey(peer->getPeerID()); std::vector<std::string> const& pk = mApp.getConfig().PREFERRED_PEER_KEYS; if (std::find(pk.begin(), pk.end(), kstr) != pk.end()) { CLOG(DEBUG, "Overlay") << "Peer key " << mApp.getConfig().toStrKey(peer->getPeerID()) << " is preferred"; return true; } } CLOG(DEBUG, "Overlay") << "Peer " << pstr << " is not preferred"; return false; }
void OverlayManagerImpl::dropPeer(Peer::pointer peer) { mConnectionsDropped.Mark(); CLOG(INFO, "Overlay") << "Dropping peer " << mApp.getConfig().toShortString(peer->getPeerID()) << "@" << peer->toString(); auto iter = find(mPeers.begin(), mPeers.end(), peer); if (iter != mPeers.end()) mPeers.erase(iter); else CLOG(WARNING, "Overlay") << "Dropping unlisted peer"; mPeersSize.set_count(mPeers.size()); }