--wtf; prevent roots from TCP fallback

This commit is contained in:
Adam Ierymenko 2015-10-27 12:21:57 -07:00
parent a1a0ee4edb
commit 0ffbd05c0e
2 changed files with 4 additions and 3 deletions

View file

@ -321,8 +321,8 @@ ZT_ResultCode Node::processBackgroundTasks(uint64_t now,volatile uint64_t *nextB
RR->topology->eachPeer<_PingPeersThatNeedPing &>(pfunc); RR->topology->eachPeer<_PingPeersThatNeedPing &>(pfunc);
// Update online status, post status change as event // Update online status, post status change as event
bool oldOnline = _online; const bool oldOnline = _online;
_online = ((now - pfunc.lastReceiveFromUpstream) < ZT_PEER_ACTIVITY_TIMEOUT); _online = (((now - pfunc.lastReceiveFromUpstream) < ZT_PEER_ACTIVITY_TIMEOUT)||(RR->topology->amRoot()));
if (oldOnline != _online) if (oldOnline != _online)
postEvent(_online ? ZT_EVENT_ONLINE : ZT_EVENT_OFFLINE); postEvent(_online ? ZT_EVENT_ONLINE : ZT_EVENT_OFFLINE);
} catch ( ... ) { } catch ( ... ) {

View file

@ -867,6 +867,7 @@ public:
{ {
#ifdef ZT_ENABLE_CLUSTER #ifdef ZT_ENABLE_CLUSTER
if (sock == _clusterMessageSocket) { if (sock == _clusterMessageSocket) {
_lastDirectReceiveFromGlobal = OSUtils::now();
_node->clusterHandleIncomingMessage(data,len); _node->clusterHandleIncomingMessage(data,len);
return; return;
} }
@ -1030,7 +1031,7 @@ public:
if (from) { if (from) {
ZT_ResultCode rc = _node->processWirePacket( ZT_ResultCode rc = _node->processWirePacket(
OSUtils::now(), OSUtils::now(),
0, &ZT_SOCKADDR_NULL,
reinterpret_cast<struct sockaddr_storage *>(&from), reinterpret_cast<struct sockaddr_storage *>(&from),
data, data,
plen, plen,