summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/ZeroTierOne.h10
-rw-r--r--node/Node.cpp2
-rw-r--r--node/Peer.cpp17
-rw-r--r--node/Peer.hpp20
-rw-r--r--service/ControlPlane.cpp4
-rw-r--r--service/README.md2
6 files changed, 13 insertions, 42 deletions
diff --git a/include/ZeroTierOne.h b/include/ZeroTierOne.h
index 17112e90..d0fef1f1 100644
--- a/include/ZeroTierOne.h
+++ b/include/ZeroTierOne.h
@@ -1019,16 +1019,6 @@ typedef struct
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
*/
int versionMajor;
diff --git a/node/Node.cpp b/node/Node.cpp
index db9b8ea0..9314478f 100644
--- a/node/Node.cpp
+++ b/node/Node.cpp
@@ -405,8 +405,6 @@ ZT_PeerList *Node::peers() const
for(std::vector< std::pair< Address,SharedPtr<Peer> > >::iterator pi(peers.begin());pi!=peers.end();++pi) {
ZT_Peer *p = &(pl->peers[pl->peerCount++]);
p->address = pi->second->address().toInt();
- p->lastUnicastFrame = pi->second->lastUnicastFrame();
- p->lastMulticastFrame = pi->second->lastMulticastFrame();
if (pi->second->remoteVersionKnown()) {
p->versionMajor = pi->second->remoteVersionMajor();
p->versionMinor = pi->second->remoteVersionMinor();
diff --git a/node/Peer.cpp b/node/Peer.cpp
index 87882dad..94fb5298 100644
--- a/node/Peer.cpp
+++ b/node/Peer.cpp
@@ -42,8 +42,7 @@ static uint32_t _natKeepaliveBuf = 0;
Peer::Peer(const RuntimeEnvironment *renv,const Identity &myIdentity,const Identity &peerIdentity) :
_lastReceive(0),
- _lastUnicastFrame(0),
- _lastMulticastFrame(0),
+ _lastNontrivialReceive(0),
_lastDirectPathPushSent(0),
_lastDirectPathPushReceive(0),
_lastCredentialRequestSent(0),
@@ -128,10 +127,16 @@ void Peer::received(
#endif
_lastReceive = now;
- if ((verb == Packet::VERB_FRAME)||(verb == Packet::VERB_EXT_FRAME))
- _lastUnicastFrame = now;
- else if (verb == Packet::VERB_MULTICAST_FRAME)
- _lastMulticastFrame = now;
+ switch (verb) {
+ case Packet::VERB_FRAME:
+ case Packet::VERB_EXT_FRAME:
+ case Packet::VERB_NETWORK_CONFIG_REQUEST:
+ case Packet::VERB_NETWORK_CONFIG:
+ case Packet::VERB_MULTICAST_FRAME:
+ _lastNontrivialReceive = now;
+ break;
+ default: break;
+ }
if (trustEstablished) {
_lastTrustEstablishedPacketReceived = now;
diff --git a/node/Peer.hpp b/node/Peer.hpp
index d0589ccf..be05aa3a 100644
--- a/node/Peer.hpp
+++ b/node/Peer.hpp
@@ -227,24 +227,9 @@ public:
inline bool isAlive(const uint64_t now) const { return ((now - _lastReceive) < ZT_PEER_ACTIVITY_TIMEOUT); }
/**
- * @return Time of most recent unicast frame received
- */
- inline uint64_t lastUnicastFrame() const { return _lastUnicastFrame; }
-
- /**
- * @return Time of most recent multicast frame received
- */
- inline uint64_t lastMulticastFrame() const { return _lastMulticastFrame; }
-
- /**
- * @return Time of most recent frame of any kind (unicast or multicast)
- */
- inline uint64_t lastFrame() const { return std::max(_lastUnicastFrame,_lastMulticastFrame); }
-
- /**
* @return True if this peer has sent us real network traffic recently
*/
- inline uint64_t isActive(uint64_t now) const { return ((now - lastFrame()) < ZT_PEER_ACTIVITY_TIMEOUT); }
+ inline uint64_t isActive(uint64_t now) const { return ((now - _lastNontrivialReceive) < ZT_PEER_ACTIVITY_TIMEOUT); }
/**
* @return Latency in milliseconds or 0 if unknown
@@ -469,8 +454,7 @@ private:
uint8_t _key[ZT_PEER_SECRET_KEY_LENGTH];
uint8_t _remoteClusterOptimal6[16];
uint64_t _lastReceive; // direct or indirect
- uint64_t _lastUnicastFrame;
- uint64_t _lastMulticastFrame;
+ uint64_t _lastNontrivialReceive; // frames, things like netconf, etc.
uint64_t _lastDirectPathPushSent;
uint64_t _lastDirectPathPushReceive;
uint64_t _lastCredentialRequestSent;
diff --git a/service/ControlPlane.cpp b/service/ControlPlane.cpp
index 5c135636..f14bae54 100644
--- a/service/ControlPlane.cpp
+++ b/service/ControlPlane.cpp
@@ -222,8 +222,6 @@ static void _jsonAppend(unsigned int depth,std::string &buf,const ZT_Peer *peer)
Utils::snprintf(json,sizeof(json),
"%s{\n"
"%s\t\"address\": \"%.10llx\",\n"
- "%s\t\"lastUnicastFrame\": %llu,\n"
- "%s\t\"lastMulticastFrame\": %llu,\n"
"%s\t\"versionMajor\": %d,\n"
"%s\t\"versionMinor\": %d,\n"
"%s\t\"versionRev\": %d,\n"
@@ -234,8 +232,6 @@ static void _jsonAppend(unsigned int depth,std::string &buf,const ZT_Peer *peer)
"%s}",
prefix,
prefix,peer->address,
- prefix,peer->lastUnicastFrame,
- prefix,peer->lastMulticastFrame,
prefix,peer->versionMajor,
prefix,peer->versionMinor,
prefix,peer->versionRev,
diff --git a/service/README.md b/service/README.md
index 1c71fbdc..f487f2bc 100644
--- a/service/README.md
+++ b/service/README.md
@@ -114,8 +114,6 @@ Getting /peer returns an array of peer objects for all current peers. See below
<table>
<tr><td><b>Field</b></td><td><b>Type</b></td><td><b>Description</b></td><td><b>Writable</b></td></tr>
<tr><td>address</td><td>string</td><td>10-digit hex ZeroTier address</td><td>no</td></tr>
-<tr><td>lastUnicastFrame</td><td>integer</td><td>Time of last unicast frame in ms since epoch</td><td>no</td></tr>
-<tr><td>lastMulticastFrame</td><td>integer</td><td>Time of last multicast frame in ms since epoch</td><td>no</td></tr>
<tr><td>versionMajor</td><td>integer</td><td>Major version of remote if known</td><td>no</td></tr>
<tr><td>versionMinor</td><td>integer</td><td>Minor version of remote if known</td><td>no</td></tr>
<tr><td>versionRev</td><td>integer</td><td>Revision of remote if known</td><td>no</td></tr>