Fixed RIE for components
This commit is contained in:
parent
93418187e2
commit
ee0b8ee838
1 changed files with 15 additions and 6 deletions
|
@ -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;
|
||||
|
|
Loading…
Add table
Reference in a new issue