Add some additional detail to the peer record in CAPI and JSON control plane.

This commit is contained in:
Adam Ierymenko 2015-04-15 19:00:26 -07:00
parent 91ca238163
commit d2503172d8
4 changed files with 32 additions and 10 deletions

View file

@ -560,6 +560,16 @@ typedef struct
*/ */
uint64_t address; uint64_t address;
/**
* Time we last received a unicast frame from this peer
*/
uint64_t lastUnicastFrame;
/**
* Time we last received a multicast rame from this peer
*/
uint64_t lastMulticastFrame;
/** /**
* Remote major version or -1 if not known * Remote major version or -1 if not known
*/ */

View file

@ -343,6 +343,8 @@ ZT1_PeerList *Node::peers() const
for(std::map< Address,SharedPtr<Peer> >::iterator pi(peers.begin());pi!=peers.end();++pi) { for(std::map< Address,SharedPtr<Peer> >::iterator pi(peers.begin());pi!=peers.end();++pi) {
ZT1_Peer *p = &(pl->peers[pl->peerCount++]); ZT1_Peer *p = &(pl->peers[pl->peerCount++]);
p->address = pi->second->address().toInt(); p->address = pi->second->address().toInt();
p->lastUnicastFrame = pi->second->lastUnicastFrame();
p->lastMulticastFrame = pi->second->lastMulticastFrame();
if (pi->second->remoteVersionKnown()) { if (pi->second->remoteVersionKnown()) {
p->versionMajor = pi->second->remoteVersionMajor(); p->versionMajor = pi->second->remoteVersionMajor();
p->versionMinor = pi->second->remoteVersionMinor(); p->versionMinor = pi->second->remoteVersionMinor();

26
one.cpp
View file

@ -675,16 +675,6 @@ int main(int argc,char **argv)
return 0; // forked return 0; // forked
// else p == 0, so we are daemonized // else p == 0, so we are daemonized
} }
{
// Write .pid file to home folder
std::string pidPath(homeDir + ZT_PATH_SEPARATOR_S + ZT1_PID_PATH);
FILE *pf = fopen(pidPath.c_str(),"w");
if (pf) {
fprintf(pf,"%ld",(long)getpid());
fclose(pf);
}
}
#endif // __UNIX_LIKE__ #endif // __UNIX_LIKE__
#ifdef __WINDOWS__ #ifdef __WINDOWS__
@ -723,6 +713,18 @@ int main(int argc,char **argv)
} }
#endif // ZT_ENABLE_NETWORK_CONTROLLER #endif // ZT_ENABLE_NETWORK_CONTROLLER
#ifdef __UNIX_LIKE__
std::string pidPath(homeDir + ZT_PATH_SEPARATOR_S + ZT1_PID_PATH);
{
// Write .pid file to home folder
FILE *pf = fopen(pidPath.c_str(),"w");
if (pf) {
fprintf(pf,"%ld",(long)getpid());
fclose(pf);
}
}
#endif // __UNIX_LIKE__
unsigned int returnValue = 0; unsigned int returnValue = 0;
try { try {
@ -762,5 +764,9 @@ int main(int argc,char **argv)
zt1Service = (OneService *)0; zt1Service = (OneService *)0;
delete controller; delete controller;
#ifdef __UNIX_LIKE__
OSUtils::rm(pidPath.c_str());
#endif
return returnValue; return returnValue;
} }

View file

@ -177,6 +177,8 @@ static void _jsonAppend(std::string &buf,const ZT1_Peer *peer)
Utils::snprintf(json,sizeof(json), Utils::snprintf(json,sizeof(json),
"{" "{"
"\"address\": \"%.10llx\"," "\"address\": \"%.10llx\","
"\"lastUnicastFrame\": %llu,"
"\"lastMulticastFrame\": %llu,"
"\"versionMajor\": %d," "\"versionMajor\": %d,"
"\"versionMinor\": %d," "\"versionMinor\": %d,"
"\"versionRev\": %d," "\"versionRev\": %d,"
@ -186,6 +188,8 @@ static void _jsonAppend(std::string &buf,const ZT1_Peer *peer)
"\"paths\": %s" "\"paths\": %s"
"}", "}",
peer->address, peer->address,
peer->lastUnicastFrame,
peer->lastMulticastFrame,
peer->versionMajor, peer->versionMajor,
peer->versionMinor, peer->versionMinor,
peer->versionRev, peer->versionRev,