diff --git a/lib/client/CServerProxy.cpp b/lib/client/CServerProxy.cpp index ce094faf..8436a62a 100644 --- a/lib/client/CServerProxy.cpp +++ b/lib/client/CServerProxy.cpp @@ -66,7 +66,8 @@ CServerProxy::mainLoop() } // check for time out - if (n == (UInt32)-1 || heartbeat.getTime() > kHeartRate) { + if (n == (UInt32)-1 || + (kHeartRate >= 0.0 && heartbeat.getTime() > kHeartRate)) { // send heartbeat CLock lock(&m_mutex); CProtocolUtil::writef(getOutputStream(), kMsgCNoop); diff --git a/lib/server/CClientProxy1_0.cpp b/lib/server/CClientProxy1_0.cpp index 88b8b429..ad0d45f1 100644 --- a/lib/server/CClientProxy1_0.cpp +++ b/lib/server/CClientProxy1_0.cpp @@ -80,12 +80,10 @@ CClientProxy1_0::mainLoop() // check if client has stopped sending heartbeats if (n == (UInt32)-1) { -/* FIXME -- disabled to avoid masking bugs - if (heartTimer.getTime() > kHeartDeath) { + if (kHeartDeath >= 0.0 && heartTimer.getTime() > kHeartDeath) { log((CLOG_NOTE "client \"%s\" is dead", getName().c_str())); return; } -*/ continue; } diff --git a/lib/synergy/ProtocolTypes.h b/lib/synergy/ProtocolTypes.h index 7417b270..d524d98b 100644 --- a/lib/synergy/ProtocolTypes.h +++ b/lib/synergy/ProtocolTypes.h @@ -13,10 +13,11 @@ static const UInt16 kDefaultPort = 24800; // maximum total length for greeting returned by client static const UInt32 kMaxHelloLength = 1024; -// time between heartbeats (in seconds) -static const double kHeartRate = 2.0; +// time between heartbeats (in seconds). negative value disables +// heartbeat. +static const double kHeartRate = -1.0; -// time without a heartbeat that we call death +// time without a heartbeat that constitutes death static const double kHeartDeath = 3.0 * kHeartRate; // direction constants