From: Marcus Eggenberger Date: Thu, 4 Sep 2008 15:51:42 +0000 (+0200) Subject: fixing buffered backlog replay for reconnects X-Git-Tag: 0.3.1~292 X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=commitdiff_plain;h=97513984bfb9f50354942390803d4c75fededc53 fixing buffered backlog replay for reconnects --- diff --git a/src/client/client.cpp b/src/client/client.cpp index ce734cc5..a53d07d7 100644 --- a/src/client/client.cpp +++ b/src/client/client.cpp @@ -294,6 +294,7 @@ void Client::disconnectFromCore() { emit disconnected(); emit coreConnectionStateChanged(false); + backlogManager()->reset(); messageProcessor()->reset(); // Clear internal data. Hopefully nothing relies on it at this point. diff --git a/src/client/clientbacklogmanager.cpp b/src/client/clientbacklogmanager.cpp index 29af54c4..b485726d 100644 --- a/src/client/clientbacklogmanager.cpp +++ b/src/client/clientbacklogmanager.cpp @@ -77,3 +77,9 @@ void ClientBacklogManager::requestInitialBacklog() { FixedBacklogRequester backlogRequester(this); backlogRequester.requestBacklog(); } + +void ClientBacklogManager::reset() { + _buffer = true; + _messageBuffer.clear(); + _buffersWaiting.clear(); +} diff --git a/src/client/clientbacklogmanager.h b/src/client/clientbacklogmanager.h index 2f0fcf36..ae6b1475 100644 --- a/src/client/clientbacklogmanager.h +++ b/src/client/clientbacklogmanager.h @@ -37,6 +37,8 @@ public slots: virtual QVariantList requestBacklog(BufferId bufferId, int lastMsgs = -1, int offset = -1); void requestInitialBacklog(); + void reset(); + private: bool _buffer; QList _messageBuffer;