diff --git a/spectrum/src/sample.cfg b/spectrum/src/sample.cfg index 4f85c13209fd9df2045451cbb331c2cd457b6586..532a33f00a4c74c0adef693c7b1045111cc7b884 100644 --- a/spectrum/src/sample.cfg +++ b/spectrum/src/sample.cfg @@ -9,8 +9,8 @@ backend_port=10001 users_per_backend=2 backend=../../backends/libpurple/libpurple_backend #backend=../../backends/libircclient-qt/libircclient-qt_backend -protocol=prpl-jabber -#protocol=prpl-msn +#protocol=prpl-jabber +protocol=prpl-msn #protocol=prpl-icq [database] diff --git a/src/conversation.cpp b/src/conversation.cpp index e2cd51126f57a7370efede4a621744f8ea765980..524afdb494f253aec7f5138979d4de23b861530f 100644 --- a/src/conversation.cpp +++ b/src/conversation.cpp @@ -36,7 +36,6 @@ Conversation::Conversation(ConversationManager *conversationManager, const std:: } Conversation::~Conversation() { - m_conversationManager->removeConversation(this); } void Conversation::handleMessage(boost::shared_ptr &message, const std::string &nickname) { diff --git a/src/networkpluginserver.cpp b/src/networkpluginserver.cpp index ec4edf96acb29d42a6d8ec423b218ad5b13dbc83..88cf6d2d8ff84e7fd4d7271f7b02e838077f3b46 100644 --- a/src/networkpluginserver.cpp +++ b/src/networkpluginserver.cpp @@ -172,7 +172,7 @@ void NetworkPluginServer::handleSessionFinished(Client *c) { // Execute new session only if there's no free one after this crash/disconnection for (std::list::const_iterator it = m_clients.begin(); it != m_clients.end(); it++) { - if ((*it)->users.size() < 1) { + if ((*it)->users.size() < CONFIG_INT(m_config, "service.users_per_backend")) { return; } } @@ -530,6 +530,8 @@ void NetworkPluginServer::handleRoomLeft(User *user, const std::string &r) { return; } + user->getConversationManager()->removeConversation(conv); + delete conv; }