|
|
|
|
@ -412,7 +412,7 @@ ZT_PeerList *Node::peers() const
|
|
|
|
|
p->versionRev = -1; |
|
|
|
|
} |
|
|
|
|
p->latency = pi->second->latency(); |
|
|
|
|
p->role = RR->topology->isRoot(pi->second->identity()) ? ZT_PEER_ROLE_ROOT : ZT_PEER_ROLE_LEAF; |
|
|
|
|
p->role = RR->topology->isRoot(pi->second->identity()) ? ZT_PEER_ROLE_ROOT : (RR->topology->isUpstream(pi->second->identity()) ? ZT_PEER_ROLE_UPSTREAM : ZT_PEER_ROLE_LEAF); |
|
|
|
|
|
|
|
|
|
std::vector< std::pair< SharedPtr<Path>,bool > > paths(pi->second->paths(_now)); |
|
|
|
|
SharedPtr<Path> bestp(pi->second->getBestPath(_now,false)); |
|
|
|
|
@ -484,6 +484,11 @@ void Node::clearLocalInterfaceAddresses()
|
|
|
|
|
_directPaths.clear(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void Node::setRole(uint64_t ztAddress,ZT_PeerRole role) |
|
|
|
|
{ |
|
|
|
|
RR->topology->setUpstream(Address(ztAddress),(role == ZT_PEER_ROLE_UPSTREAM)); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void Node::setNetconfMaster(void *networkControllerInstance) |
|
|
|
|
{ |
|
|
|
|
RR->localNetworkController = reinterpret_cast<NetworkController *>(networkControllerInstance); |
|
|
|
|
@ -1007,6 +1012,13 @@ void ZT_Node_clearLocalInterfaceAddresses(ZT_Node *node)
|
|
|
|
|
} catch ( ... ) {} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void ZT_Node_setRole(ZT_Node *node,uint64_t ztAddress,ZT_PeerRole role) |
|
|
|
|
{ |
|
|
|
|
try { |
|
|
|
|
reinterpret_cast<ZeroTier::Node *>(node)->setRole(ztAddress,role); |
|
|
|
|
} catch ( ... ) {} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void ZT_Node_setNetconfMaster(ZT_Node *node,void *networkControllerInstance) |
|
|
|
|
{ |
|
|
|
|
try { |
|
|
|
|
|