Implemented empirical determination of external addressing, paritioned per scope.

This commit is contained in:
Adam Ierymenko 2015-04-07 11:56:10 -07:00
parent 817824b88b
commit 52c3b7c34e
10 changed files with 102 additions and 95 deletions

View file

@ -253,36 +253,6 @@ void Topology::clean(uint64_t now)
}
}
/*
bool Topology::updateSurface(const SharedPtr<Peer> &remotePeer,const InetAddress &mirroredAddress,uint64_t now)
{
Mutex::Lock _l(_lock);
if (std::find(_supernodeAddresses.begin(),_supernodeAddresses.end(),remotePeer->address()) == _supernodeAddresses.end())
return false;
if (_surface.update(mirroredAddress)) {
// Clear non-fixed paths for all peers -- will force reconnect on next activity
for(std::map< Address,SharedPtr<Peer> >::const_iterator ap(_activePeers.begin());ap!=_activePeers.end();++ap)
ap->second->clearPaths(false);
// Reset TCP tunneling if our global addressing has changed
if (!mirroredAddress.isLinkLocal())
(const_cast <RuntimeEnvironment *>(RR))->tcpTunnelingEnabled = false;
// Ping supernodes now (other than the one we might have just heard from)
for(std::vector< SharedPtr<Peer> >::const_iterator sn(_supernodePeers.begin());sn!=_supernodePeers.end();++sn) {
if (remotePeer != *sn)
(*sn)->sendPing(RR,now);
}
return true;
}
return false;
}
*/
bool Topology::authenticateRootTopology(const Dictionary &rt)
{
try {