summaryrefslogtreecommitdiff
path: root/node
diff options
context:
space:
mode:
authorAdam Ierymenko <adam.ierymenko@gmail.com>2015-04-13 18:12:45 -0700
committerAdam Ierymenko <adam.ierymenko@gmail.com>2015-04-13 18:12:45 -0700
commitb888e033c075b1f849a5eb27c4b5da52fe3cac32 (patch)
tree1e550050a47f68a1a15169f92fe21512562df8ac /node
parentff0eff4b7c7f9f33e0b27ef8a52ac3921d87b0fd (diff)
downloadinfinitytier-b888e033c075b1f849a5eb27c4b5da52fe3cac32.tar.gz
infinitytier-b888e033c075b1f849a5eb27c4b5da52fe3cac32.zip
JSON control plane, almost done...
Diffstat (limited to 'node')
-rw-r--r--node/MulticastGroup.hpp2
-rw-r--r--node/Node.cpp18
-rw-r--r--node/Node.hpp9
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);