From 97513984bfb9f50354942390803d4c75fededc53 Mon Sep 17 00:00:00 2001 From: Marcus Eggenberger Date: Thu, 4 Sep 2008 17:51:42 +0200 Subject: [PATCH] fixing buffered backlog replay for reconnects --- src/client/client.cpp | 1 + src/client/clientbacklogmanager.cpp | 6 ++++++ src/client/clientbacklogmanager.h | 2 ++ 3 files changed, 9 insertions(+) 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; -- 2.20.1