diff --git a/src/user.cpp b/src/user.cpp index cd1ac7032aecbd6f5dd1023a7ac7c0ae06b9827e..d95ad8a90d5757753d85824efc7e81fd5de6064f 100644 --- a/src/user.cpp +++ b/src/user.cpp @@ -226,6 +226,11 @@ void User::handlePresence(Swift::Presence::ref presence) { onReadyToConnect(); } std::string room = Buddy::JIDToLegacyName(presence->getTo()); + if (m_conversationManager->getConversation(room) != NULL) { + LOG4CXX_INFO(logger, m_jid.toString() << ": User has already tried to join room " << room << " as " << presence->getTo().getResource()); + return; + } + LOG4CXX_INFO(logger, m_jid.toString() << ": Going to join room " << room << " as " << presence->getTo().getResource()); std::string password = ""; if (presence->getPayload() != NULL) {