X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcore%2Fcorenetwork.h;h=095e0fed90b70a3b8f3061244f39e9fef129dca8;hp=f50717b0f06804a75d0a34813a28bc601b46236d;hb=a71514b17a3e533454d3accfc367b48f6358aa18;hpb=32c550d8f25392616de13fe761285ac13cf5e0d9 diff --git a/src/core/corenetwork.h b/src/core/corenetwork.h index f50717b0..095e0fed 100644 --- a/src/core/corenetwork.h +++ b/src/core/corenetwork.h @@ -75,7 +75,7 @@ public: inline QString channelKey(const QString &channel) const { return _channelKeys.value(channel.toLower(), QString()); } - inline bool isAutoWhoInProgress(const QString &channel) const { return _autoWhoInProgress.value(channel.toLower(), 0); } + inline bool isAutoWhoInProgress(const QString &channel) const { return _autoWhoPending.value(channel.toLower(), 0); } inline UserId userId() const { return _coreSession->user(); } @@ -106,8 +106,7 @@ public slots: Server usedServer() const; - inline void resetPong() { _gotPong = true; } - inline bool gotPong() { return _gotPong; } + inline void resetPingTimeout() { _pingCount = 0; } signals: void recvRawServerMsg(QString); @@ -135,6 +134,8 @@ private slots: void restoreUserModes(); void doAutoReconnect(); void sendPing(); + void enablePingTimeout(); + void disablePingTimeout(); void sendAutoWho(); void startAutoWhoCycle(); @@ -176,18 +177,20 @@ private: int _lastUsedServerIndex; QTimer _pingTimer; - bool _gotPong; + uint _lastPingTime; + uint _maxPingCount; + uint _pingCount; bool _autoWhoEnabled; QStringList _autoWhoQueue; - QHash _autoWhoInProgress; + QHash _autoWhoPending; int _autoWhoInterval; int _autoWhoNickLimit; int _autoWhoDelay; QTimer _autoWhoTimer, _autoWhoCycleTimer; QTimer _tokenBucketTimer; - int _messagesPerSecond; // token refill speed + int _messageDelay; // token refill speed in ms int _burstSize; // size of the token bucket int _tokenBucket; // the virtual bucket that holds the tokens QList _msgQueue;