diff options
author | Adam Ierymenko <adam.ierymenko@gmail.com> | 2015-04-13 18:12:45 -0700 |
---|---|---|
committer | Adam Ierymenko <adam.ierymenko@gmail.com> | 2015-04-13 18:12:45 -0700 |
commit | b888e033c075b1f849a5eb27c4b5da52fe3cac32 (patch) | |
tree | 1e550050a47f68a1a15169f92fe21512562df8ac /node | |
parent | ff0eff4b7c7f9f33e0b27ef8a52ac3921d87b0fd (diff) | |
download | infinitytier-b888e033c075b1f849a5eb27c4b5da52fe3cac32.tar.gz infinitytier-b888e033c075b1f849a5eb27c4b5da52fe3cac32.zip |
JSON control plane, almost done...
Diffstat (limited to 'node')
-rw-r--r-- | node/MulticastGroup.hpp | 2 | ||||
-rw-r--r-- | node/Node.cpp | 18 | ||||
-rw-r--r-- | node/Node.hpp | 9 |
3 files changed, 20 insertions, 9 deletions
diff --git a/node/MulticastGroup.hpp b/node/MulticastGroup.hpp index 8bc65f1e..ad0c410c 100644 --- a/node/MulticastGroup.hpp +++ b/node/MulticastGroup.hpp @@ -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); } diff --git a/node/Node.cpp b/node/Node.cpp index 0192c49a..d6b799e9 100644 --- a/node/Node.cpp +++ b/node/Node.cpp @@ -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 { diff --git a/node/Node.hpp b/node/Node.hpp index 7e943820..18baccc4 100644 --- a/node/Node.hpp +++ b/node/Node.hpp @@ -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); |