Changeset - ee0b8ee838e3
[Not reviewed]
0 1 0
Jan Kaluza - 14 years ago 2011-12-08 12:14:13
hanzz.k@gmail.com
Fixed RIE for components
1 file changed with 15 insertions and 6 deletions:
0 comments (0 inline, 0 general)
src/rostermanager.cpp
Show inline comments
 
@@ -116,9 +116,18 @@ void RosterManager::sendBuddyRosterPush(Buddy *buddy) {
 

	
 
	payload->addItem(item);
 

	
 
	std::vector<Swift::Presence::ref> 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());
 
	// In server mode we have to send pushes to all resources, but in gateway-mode we send it only to bare JID
 
	if (m_component->inServerMode()) {
 
		std::vector<Swift::Presence::ref> 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);
 
		}
 
	}
 
	else {
 
		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);
 
@@ -332,8 +341,8 @@ void RosterManager::handleSubscription(Swift::Presence::ref presence) {
 
	else {
 
		Swift::Presence::ref response = Swift::Presence::create();
 
		Swift::Presence::ref currentPresence;
 
		response->setTo(presence->getFrom());
 
		response->setFrom(presence->getTo());
 
		response->setTo(presence->getFrom().toBare());
 
		response->setFrom(presence->getTo().toBare().toString() + "/bot");
 

	
 
		Buddy *buddy = getBuddy(Buddy::JIDToLegacyName(presence->getTo()));
 
		if (buddy) {
 
@@ -355,7 +364,7 @@ void RosterManager::handleSubscription(Swift::Presence::ref presence) {
 
					break;
 
				// just send response
 
				case Swift::Presence::Unsubscribed:
 
// 					response->setType(Swift::Presence::Unsubscribe);
 
					response->setType(Swift::Presence::Unsubscribe);
 
					break;
 
				default:
 
					return;
0 comments (0 inline, 0 general)