From 28ab57b97aadb3639e3a374c63bd516389c5288f Mon Sep 17 00:00:00 2001 From: Jan Kaluza Date: Wed, 5 Oct 2011 13:25:56 +0200 Subject: [PATCH] Send SetRosterRequest to full jid --- src/rostermanager.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/rostermanager.cpp b/src/rostermanager.cpp index 945becd3..dc024b7a 100644 --- a/src/rostermanager.cpp +++ b/src/rostermanager.cpp @@ -111,10 +111,13 @@ void RosterManager::sendBuddyRosterPush(Buddy *buddy) { payload->addItem(item); - Swift::SetRosterRequest::ref request = Swift::SetRosterRequest::create(payload, m_user->getJID().toBare(), m_component->getIQRouter()); - request->onResponse.connect(boost::bind(&RosterManager::handleBuddyRosterPushResponse, this, _1, request, buddy->getName())); - request->send(); - m_requests.push_back(request); + std::vector presences = m_component->getPresenceOracle()->getAllPresence(m_user->getJID().toBare()); + BOOST_FOREACH(Swift::Presence::ref presence, presences) { + Swift::SetRosterRequest::ref request = Swift::SetRosterRequest::create(payload, presence->getFrom(), m_component->getIQRouter()); + request->onResponse.connect(boost::bind(&RosterManager::handleBuddyRosterPushResponse, this, _1, request, buddy->getName())); + request->send(); + m_requests.push_back(request); + } } void RosterManager::sendBuddySubscribePresence(Buddy *buddy) {