Work in progress on Cluster for new root infrastructure, multi-homing.
This commit is contained in:
parent
c312ae221f
commit
619e113748
10 changed files with 794 additions and 16 deletions
|
@ -136,7 +136,7 @@ SharedPtr<Peer> Topology::addPeer(const SharedPtr<Peer> &peer)
|
|||
|
||||
SharedPtr<Peer> &p = _peers.set(peer->address(),peer);
|
||||
p->use(now);
|
||||
_saveIdentity(p->identity());
|
||||
saveIdentity(p->identity());
|
||||
|
||||
return p;
|
||||
}
|
||||
|
@ -172,6 +172,26 @@ SharedPtr<Peer> Topology::getPeer(const Address &zta)
|
|||
return SharedPtr<Peer>();
|
||||
}
|
||||
|
||||
Identity Topology::getIdentity(const Address &zta)
|
||||
{
|
||||
{
|
||||
Mutex::Lock _l(_lock);
|
||||
SharedPtr<Peer> &ap = _peers[zta];
|
||||
if (ap)
|
||||
return ap->identity();
|
||||
}
|
||||
return _getIdentity(zta);
|
||||
}
|
||||
|
||||
void saveIdentity(const Identity &id)
|
||||
{
|
||||
if (id) {
|
||||
char p[128];
|
||||
Utils::snprintf(p,sizeof(p),"iddb.d/%.10llx",(unsigned long long)id.address().toInt());
|
||||
RR->node->dataStorePut(p,id.toString(false),false);
|
||||
}
|
||||
}
|
||||
|
||||
SharedPtr<Peer> Topology::getBestRoot(const Address *avoid,unsigned int avoidCount,bool strictAvoid)
|
||||
{
|
||||
SharedPtr<Peer> bestRoot;
|
||||
|
@ -315,15 +335,6 @@ Identity Topology::_getIdentity(const Address &zta)
|
|||
return Identity();
|
||||
}
|
||||
|
||||
void Topology::_saveIdentity(const Identity &id)
|
||||
{
|
||||
if (id) {
|
||||
char p[128];
|
||||
Utils::snprintf(p,sizeof(p),"iddb.d/%.10llx",(unsigned long long)id.address().toInt());
|
||||
RR->node->dataStorePut(p,id.toString(false),false);
|
||||
}
|
||||
}
|
||||
|
||||
void Topology::_setWorld(const World &newWorld)
|
||||
{
|
||||
// assumed _lock is locked (or in constructor)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue