Disconnect removeTimeout once it's fired
This commit is contained in:
parent
090a7e5e23
commit
0f888d07d9
1 changed files with 2 additions and 1 deletions
|
@ -188,7 +188,7 @@ void UserManager::handlePresence(Swift::Presence::ref presence) {
|
|||
Swift::Presence::ref highest = m_component->getPresenceOracle()->getHighestPriorityPresence(presence->getFrom().toBare());
|
||||
// There's no presence for this user, so disconnect
|
||||
if (!highest || (highest && highest->getType() == Swift::Presence::Unavailable)) {
|
||||
m_removeTimer->onTick.connect(boost::bind(&UserManager::handleRemoveTimeout, this, user->getJID().toBare().toString()));
|
||||
m_removeTimer->onTick.connect(boost::bind(&UserManager::handleRemoveTimeout, this, user->getJID().toBare().toString()));
|
||||
m_removeTimer->start();
|
||||
}
|
||||
}
|
||||
|
@ -200,6 +200,7 @@ void UserManager::handlePresence(Swift::Presence::ref presence) {
|
|||
}
|
||||
|
||||
void UserManager::handleRemoveTimeout(const std::string jid) {
|
||||
m_removeTimer->onTick.disconnect(boost::bind(&UserManager::handleRemoveTimeout, this, jid));
|
||||
User *user = getUser(jid);
|
||||
if (user) {
|
||||
removeUser(user);
|
||||
|
|
Loading…
Add table
Reference in a new issue