From 33ad3deaee06df288731064aa0663cb2806ebea0 Mon Sep 17 00:00:00 2001 From: Adam Ierymenko Date: Fri, 21 Mar 2014 13:46:55 -0700 Subject: Builds with new Path code. --- node/NodeConfig.cpp | 28 +++++++++++++--------------- 1 file changed, 13 insertions(+), 15 deletions(-) (limited to 'node/NodeConfig.cpp') diff --git a/node/NodeConfig.cpp b/node/NodeConfig.cpp index 57c655b7..6f122498 100644 --- a/node/NodeConfig.cpp +++ b/node/NodeConfig.cpp @@ -156,20 +156,18 @@ public: } inline void operator()(Topology &t,const SharedPtr &p) { - InetAddress v4(p->ipv4ActivePath(now)); - InetAddress v6(p->ipv6ActivePath(now)); - if ((v4)||(v6)) { - ipcc->printf("200 listpeers %s %s %s %u %s"ZT_EOL_S, - p->address().toString().c_str(), - ((v4) ? v4.toString().c_str() : "-"), - ((v6) ? v6.toString().c_str() : "-"), - p->latency(), - p->remoteVersion().c_str()); - } else { - ipcc->printf("200 listpeers %s - - - %s"ZT_EOL_S, - p->address().toString().c_str(), - p->remoteVersion().c_str()); + std::vector pp(p->paths()); + std::string pathsStr; + for(std::vector::const_iterator ppp(pp.begin());ppp!=pp.end();++ppp) { + if (pathsStr.length()) + pathsStr.push_back(','); + pathsStr.append(ppp->toString()); } + ipcc->printf("200 listpeers %s %s %u %s"ZT_EOL_S, + p->address().toString().c_str(), + ((pathsStr.length() > 0) ? pathsStr.c_str() : "-"), + p->latency(), + p->remoteVersion().c_str()); } IpcConnection *ipcc; uint64_t now; @@ -216,7 +214,7 @@ void NodeConfig::_doCommand(IpcConnection *ipcc,const char *commandLine) std::vector< SharedPtr > snp(_r->topology->supernodePeers()); for(std::vector< SharedPtr >::const_iterator sn(snp.begin());sn!=snp.end();++sn) { uint64_t lastRec = (*sn)->lastDirectReceive(); - if ((lastRec)&&(lastRec > since)&&((now - lastRec) < ZT_PEER_LINK_ACTIVITY_TIMEOUT)) { + if ((lastRec)&&(lastRec > since)&&((now - lastRec) < ZT_PEER_PATH_ACTIVITY_TIMEOUT)) { isOnline = true; break; } @@ -224,7 +222,7 @@ void NodeConfig::_doCommand(IpcConnection *ipcc,const char *commandLine) ipcc->printf("200 info %s %s %s"ZT_EOL_S,_r->identity.address().toString().c_str(),(isOnline ? "ONLINE" : "OFFLINE"),Node::versionString()); } else if (cmd[0] == "listpeers") { - ipcc->printf("200 listpeers "ZT_EOL_S); + ipcc->printf("200 listpeers "ZT_EOL_S); _r->topology->eachPeer(_DumpPeerStatistics(ipcc)); } else if (cmd[0] == "listnetworks") { Mutex::Lock _l(_networks_m); -- cgit v1.2.3