X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fcore%2Fcorenetwork.h;h=095e0fed90b70a3b8f3061244f39e9fef129dca8;hb=18c308a2857b86e882e2865c4a35319bdeb9d7eb;hp=f50717b0f06804a75d0a34813a28bc601b46236d;hpb=32c550d8f25392616de13fe761285ac13cf5e0d9;p=quassel.git 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;