diff --git a/src/networkpluginserver.cpp b/src/networkpluginserver.cpp index 9cf79934..4ea242e6 100644 --- a/src/networkpluginserver.cpp +++ b/src/networkpluginserver.cpp @@ -1453,6 +1453,8 @@ void NetworkPluginServer::handleUserPresenceChanged(User *user, Swift::Presence: if (presence->getShow() == Swift::StatusShow::None) return; + handleRawPresenceReceived(presence); + UserInfo userInfo = user->getUserInfo(); pbnetwork::Status status; diff --git a/src/user.cpp b/src/user.cpp index 9afab31a..301031b8 100644 --- a/src/user.cpp +++ b/src/user.cpp @@ -258,6 +258,8 @@ void User::handlePresence(Swift::Presence::ref presence, bool forceJoin) { delete conv; } } + + return; } else if (isMUC) { // force connection to legacy network to let backend to handle auto-join on connect. @@ -315,8 +317,11 @@ void User::handlePresence(Swift::Presence::ref presence, bool forceJoin) { onRawPresenceReceived(presence); onRoomJoined(presence->getFrom(), room, presence->getTo().getResource(), password); + + return; } - return; + + onRawPresenceReceived(presence); } int currentResourcesCount = m_presenceOracle->getAllPresence(m_jid).size();