diff --git a/libtransport/Conversation.cpp b/libtransport/Conversation.cpp index 24656509cd933ef37af3b73df3073bcb422fe3ed..24df395858e30c3ef06e638382b97f882de26739 100644 --- a/libtransport/Conversation.cpp +++ b/libtransport/Conversation.cpp @@ -363,6 +363,13 @@ void Conversation::handleParticipantChanged(const std::string &nick, Conversatio m_conversationManager->getComponent()->getFrontend()->sendMessage(m_subject); m_subject.reset(); } + + // We send error presences only to inform user that he is disconnected + // from the room. This code must be extended in case we start sending error + // presences in other situations. + if (presence->getType() == Swift::Presence::Error) { + m_conversationManager->getUser()->leaveRoom(m_legacyName); + } } }