X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcommon%2Fsignalproxy.cpp;h=8becae8d800717d788d239f024d08fa9b5df1716;hp=b3410e644dc572f69c832920108467892392947a;hb=5e9a649d94d1832e0b4f3f296e8a2df2d8741d9b;hpb=e00e92ca69d45637f8e4d55d7cbd5913f45169cd diff --git a/src/common/signalproxy.cpp b/src/common/signalproxy.cpp index b3410e64..8becae8d 100644 --- a/src/common/signalproxy.cpp +++ b/src/common/signalproxy.cpp @@ -271,10 +271,13 @@ void SignalProxy::setProxyMode(ProxyMode mode) { } void SignalProxy::init() { + _heartBeatInterval = 0; + _maxHeartBeatCount = 0; _signalRelay = new SignalRelay(this); connect(&_heartBeatTimer, SIGNAL(timeout()), this, SLOT(sendHeartBeat())); setHeartBeatInterval(30); setMaxHeartBeatCount(2); + _heartBeatTimer.start(); _secure = false; updateSecureState(); } @@ -333,13 +336,7 @@ void SignalProxy::setHeartBeatInterval(int secs) { } void SignalProxy::setMaxHeartBeatCount(int max) { - if(max < 0) - _heartBeatTimer.stop(); - else { - _maxHeartBeatCount = max; - if(!_heartBeatTimer.isActive()) - _heartBeatTimer.start(); - } + _maxHeartBeatCount = max; } bool SignalProxy::addPeer(SignalProxy* proxy) { @@ -960,7 +957,7 @@ void SignalProxy::sendHeartBeat() { if(ioPeer->sentHeartBeats > 0) { updateLag(ioPeer, ioPeer->sentHeartBeats * _heartBeatTimer.interval()); } - if(ioPeer->sentHeartBeats >= maxHeartBeatCount()) + if(maxHeartBeatCount() >= 0 && ioPeer->sentHeartBeats >= maxHeartBeatCount()) toClose.append(ioPeer); else ioPeer->sentHeartBeats++;