Send unavailable presences to particular resource which disconnects
This commit is contained in:
parent
2814db5bd6
commit
8e1c2b43a6
1 changed files with 18 additions and 1 deletions
19
src/user.cpp
19
src/user.cpp
|
@ -215,7 +215,24 @@ void User::handlePresence(Swift::Presence::ref presence) {
|
|||
return;
|
||||
}
|
||||
|
||||
sendCurrentPresence();
|
||||
|
||||
// User wants to disconnect this resource
|
||||
if (!m_component->inServerMode()) {
|
||||
if (presence->getType() == Swift::Presence::Unavailable) {
|
||||
// Send unavailable presences for online contacts
|
||||
m_rosterManager->sendUnavailablePresences(presence->getFrom());
|
||||
|
||||
// Send unavailable presence for transport contact itself
|
||||
Swift::Presence::ref response = Swift::Presence::create();
|
||||
response->setTo(presence->getFrom());
|
||||
response->setFrom(m_component->getJID());
|
||||
response->setType(Swift::Presence::Unavailable);
|
||||
m_component->getStanzaChannel()->sendPresence(response);
|
||||
}
|
||||
else {
|
||||
sendCurrentPresence();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Change legacy network presence
|
||||
|
|
Loading…
Add table
Reference in a new issue