summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'Swiften/Client/ClientBlockListManager.cpp')
-rw-r--r--Swiften/Client/ClientBlockListManager.cpp16
1 files changed, 10 insertions, 6 deletions
diff --git a/Swiften/Client/ClientBlockListManager.cpp b/Swiften/Client/ClientBlockListManager.cpp
index 6646a5c..d446315 100644
--- a/Swiften/Client/ClientBlockListManager.cpp
+++ b/Swiften/Client/ClientBlockListManager.cpp
@@ -75,7 +75,4 @@ ClientBlockListManager::~ClientBlockListManager() {
blockResponder->stop();
}
- if (getRequest) {
- getRequest->onResponse.disconnect(boost::bind(&ClientBlockListManager::handleBlockListReceived, this, _1, _2));
- }
}
@@ -83,10 +80,17 @@ boost::shared_ptr<BlockList> ClientBlockListManager::getBlockList() {
if (!blockList) {
blockList = boost::make_shared<BlockListImpl>();
+ blockList->setState(BlockList::Init);
+ }
+ return blockList;
+}
+
+boost::shared_ptr<BlockList> ClientBlockListManager::requestBlockList() {
+ if (!blockList) {
+ blockList = boost::make_shared<BlockListImpl>();
+ }
blockList->setState(BlockList::Requesting);
- assert(!getRequest);
- getRequest = boost::make_shared< GenericRequest<BlockListPayload> >(IQ::Get, JID(), boost::make_shared<BlockListPayload>(), iqRouter);
+ boost::shared_ptr<GenericRequest<BlockListPayload> > getRequest = boost::make_shared< GenericRequest<BlockListPayload> >(IQ::Get, JID(), boost::make_shared<BlockListPayload>(), iqRouter);
getRequest->onResponse.connect(boost::bind(&ClientBlockListManager::handleBlockListReceived, this, _1, _2));
getRequest->send();
- }
return blockList;
}