JSON control plane, almost done...

This commit is contained in:
Adam Ierymenko 2015-04-13 18:12:45 -07:00
commit b888e033c0
8 changed files with 413 additions and 26 deletions

View file

@ -111,7 +111,7 @@ public:
inline std::string toString() const
{
char buf[64];
Utils::snprintf(buf,sizeof(buf),"%.2x%.2x%.2x%.2x%.2x%.2x/%.4x",(unsigned int)_mac[0],(unsigned int)_mac[1],(unsigned int)_mac[2],(unsigned int)_mac[3],(unsigned int)_mac[4],(unsigned int)_mac[5],(unsigned int)_adi);
Utils::snprintf(buf,sizeof(buf),"%.2x%.2x%.2x%.2x%.2x%.2x/%.8lx",(unsigned int)_mac[0],(unsigned int)_mac[1],(unsigned int)_mac[2],(unsigned int)_mac[3],(unsigned int)_mac[4],(unsigned int)_mac[5],(unsigned long)_adi);
return std::string(buf);
}

View file

@ -317,7 +317,12 @@ ZT1_ResultCode Node::multicastUnsubscribe(uint64_t nwid,uint64_t multicastGroup,
return ZT1_RESULT_OK;
}
void Node::status(ZT1_NodeStatus *status)
uint64_t Node::address() const
{
return RR->identity.address().toInt();
}
void Node::status(ZT1_NodeStatus *status) const
{
status->address = RR->identity.address().toInt();
status->publicIdentity = RR->publicIdentityStr.c_str();
@ -325,7 +330,7 @@ void Node::status(ZT1_NodeStatus *status)
status->online = _online ? 1 : 0;
}
ZT1_PeerList *Node::peers()
ZT1_PeerList *Node::peers() const
{
std::map< Address,SharedPtr<Peer> > peers(RR->topology->allPeers());
@ -365,7 +370,7 @@ ZT1_PeerList *Node::peers()
return pl;
}
ZT1_VirtualNetworkConfig *Node::networkConfig(uint64_t nwid)
ZT1_VirtualNetworkConfig *Node::networkConfig(uint64_t nwid) const
{
Mutex::Lock _l(_networks_m);
std::map< uint64_t,SharedPtr<Network> >::iterator nw(_networks.find(nwid));
@ -377,7 +382,7 @@ ZT1_VirtualNetworkConfig *Node::networkConfig(uint64_t nwid)
return (ZT1_VirtualNetworkConfig *)0;
}
ZT1_VirtualNetworkList *Node::networks()
ZT1_VirtualNetworkList *Node::networks() const
{
Mutex::Lock _l(_networks_m);
@ -601,6 +606,11 @@ enum ZT1_ResultCode ZT1_Node_multicastUnsubscribe(ZT1_Node *node,uint64_t nwid,u
}
}
uint64_t ZT1_Node_address(ZT1_Node *node)
{
return reinterpret_cast<ZeroTier::Node *>(node)->address();
}
void ZT1_Node_status(ZT1_Node *node,ZT1_NodeStatus *status)
{
try {

View file

@ -99,10 +99,11 @@ public:
ZT1_ResultCode leave(uint64_t nwid);
ZT1_ResultCode multicastSubscribe(uint64_t nwid,uint64_t multicastGroup,unsigned long multicastAdi);
ZT1_ResultCode multicastUnsubscribe(uint64_t nwid,uint64_t multicastGroup,unsigned long multicastAdi);
void status(ZT1_NodeStatus *status);
ZT1_PeerList *peers();
ZT1_VirtualNetworkConfig *networkConfig(uint64_t nwid);
ZT1_VirtualNetworkList *networks();
uint64_t address(ZT1_Node *node) const;
void status(ZT1_NodeStatus *status) const;
ZT1_PeerList *peers() const;
ZT1_VirtualNetworkConfig *networkConfig(uint64_t nwid) const;
ZT1_VirtualNetworkList *networks() const;
void freeQueryResult(void *qr);
void setNetconfMaster(void *networkConfigMasterInstance);