X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fclient%2Fclientbacklogmanager.cpp;h=476fa103ab4cf99bd3abc2863cd27d80f68bef2e;hp=7753842929d44fb6699c82f4a547f7e2213d3a34;hb=c230f7bd892b78b09710cf5746c2bf12a73d6b9b;hpb=333f91c1a27e7183869d50903a5e111e1971d716 diff --git a/src/client/clientbacklogmanager.cpp b/src/client/clientbacklogmanager.cpp index 77538429..476fa103 100644 --- a/src/client/clientbacklogmanager.cpp +++ b/src/client/clientbacklogmanager.cpp @@ -77,7 +77,7 @@ void ClientBacklogManager::receiveBacklogAll(MsgId first, MsgId last, int limit, } void ClientBacklogManager::requestInitialBacklog() { - if(_requester) { + if(_requester && !_buffersRequested.isEmpty()) { qWarning() << "ClientBacklogManager::requestInitialBacklog() called twice in the same session! (Backlog has already been requested)"; return; } @@ -103,9 +103,11 @@ void ClientBacklogManager::requestInitialBacklog() { BufferIdList ClientBacklogManager::filterNewBufferIds(const BufferIdList &bufferIds) { BufferIdList newBuffers; + QSet availableBuffers = Client::networkModel()->allBufferIds().toSet(); foreach(BufferId bufferId, bufferIds) { - if(!_buffersRequested.contains(bufferId)) - newBuffers << bufferId; + if(_buffersRequested.contains(bufferId) || !availableBuffers.contains(bufferId)) + continue; + newBuffers << bufferId; } return newBuffers; }