}
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();
}
}
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) {
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++;