From daaec84c6be11b57572ff57c97efd993385890fd Mon Sep 17 00:00:00 2001 From: Adam Ierymenko Date: Wed, 26 Mar 2014 15:35:15 -0700 Subject: Add TCP channel support for supernode list, make Peer pick the first path if all paths are equally dead. --- node/Topology.cpp | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) (limited to 'node/Topology.cpp') diff --git a/node/Topology.cpp b/node/Topology.cpp index 2211d126..75784849 100644 --- a/node/Topology.cpp +++ b/node/Topology.cpp @@ -50,7 +50,7 @@ Topology::~Topology() _dumpPeers(); } -void Topology::setSupernodes(const std::map< Identity,std::vector > &sn) +void Topology::setSupernodes(const std::map< Identity,std::vector< std::pair > > &sn) { Mutex::Lock _l(_supernodes_m); @@ -59,14 +59,13 @@ void Topology::setSupernodes(const std::map< Identity,std::vector > _supernodePeers.clear(); uint64_t now = Utils::now(); - for(std::map< Identity,std::vector >::const_iterator i(sn.begin());i!=sn.end();++i) { + for(std::map< Identity,std::vector< std::pair > >::const_iterator i(sn.begin());i!=sn.end();++i) { if (i->first != _r->identity) { SharedPtr p(getPeer(i->first.address())); if (!p) p = addPeer(SharedPtr(new Peer(_r->identity,i->first))); - for(std::vector::const_iterator j(i->second.begin());j!=i->second.end();++j) { - p->addPath(Path(*j,false,true)); - } + for(std::vector< std::pair >::const_iterator j(i->second.begin());j!=i->second.end();++j) + p->addPath(Path(j->first,j->second,true)); p->use(now); _supernodePeers.push_back(p); } -- cgit v1.2.3