void OverlayManagerImpl::connectTo(PeerRecord& pr) { if (pr.mPort == 0) { CLOG(ERROR, "Overlay") << "Invalid port: " << pr.toString(); return; } if (!pr.mIP.size()) { CLOG(ERROR, "Overlay") << "OverlayManagerImpl::connectTo Invalid IP "; return; } mConnectionsAttempted.Mark(); if (!getConnectedPeer(pr.mIP, pr.mPort)) { pr.backOff(mApp.getClock()); pr.storePeerRecord(mApp.getDatabase()); addConnectedPeer(TCPPeer::initiate(mApp, pr.mIP, pr.mPort)); } else { CLOG(ERROR, "Overlay") << "trying to connect to a node we're already connected to" << pr.toString(); } }
void OverlayManagerImpl::storeConfigPeers() { // compute normalized mPreferredPeers std::vector<std::string> ppeers; for (auto const& s : mApp.getConfig().PREFERRED_PEERS) { PeerRecord pr; if (PeerRecord::parseIPPort(s, mApp, pr)) { auto r = mPreferredPeers.insert(pr.toString()); if (r.second) { ppeers.push_back(*r.first); } } } storePeerList(mApp.getConfig().KNOWN_PEERS, true); storePeerList(ppeers, true); }