Changeset - 6a02de4a2850
[Not reviewed]
0 2 0
HanzZ - 14 years ago 2011-09-02 22:56:02
hanzz.k@gmail.com
don't remove backend in handler
2 files changed with 5 insertions and 4 deletions:
0 comments (0 inline, 0 general)
src/networkpluginserver.cpp
Show inline comments
 
@@ -883,30 +883,30 @@ void NetworkPluginServer::handleUserDestroyed(User *user) {
 

	
 
	std::string message;
 
	logout.SerializeToString(&message);
 

	
 
	WRAP(message, pbnetwork::WrapperMessage_Type_TYPE_LOGOUT);
 
 
 
	Backend *c = (Backend *) user->getData();
 
	if (!c) {
 
		return;
 
	}
 
	send(c->connection, message);
 
	c->users.remove(user);
 
	if (c->users.size() == 0) {
 
		LOG4CXX_INFO(logger, "Disconnecting backend " << c << ". There are no users.");
 
// 	if (c->users.size() == 0) {
 
// 		LOG4CXX_INFO(logger, "Disconnecting backend " << c << ". There are no users.");
 

	
 
		handleSessionFinished(c);
 
// 		handleSessionFinished(c);
 
// 		m_clients.erase(user->connection);
 
	}
 
// 	}
 
}
 

	
 
void NetworkPluginServer::handleMessageReceived(NetworkConversation *conv, boost::shared_ptr<Swift::Message> &msg) {
 
	conv->getConversationManager()->getUser()->updateLastActivity();
 
	boost::shared_ptr<Swift::ChatState> statePayload = msg->getPayload<Swift::ChatState>();
 
	if (statePayload) {
 
		pbnetwork::WrapperMessage_Type type = pbnetwork::WrapperMessage_Type_TYPE_BUDDY_CHANGED;
 
		switch (statePayload->getChatState()) {
 
			case Swift::ChatState::Active:
 
				type = pbnetwork::WrapperMessage_Type_TYPE_BUDDY_STOPPED_TYPING;
 
				break;
 
			case Swift::ChatState::Composing:
src/rostermanager.cpp
Show inline comments
 
@@ -55,24 +55,25 @@ RosterManager::~RosterManager() {
 
	}
 

	
 
	sendUnavailablePresences(m_user->getJID().toBare());
 

	
 
	for (std::map<std::string, Buddy *>::const_iterator it = m_buddies.begin(); it != m_buddies.end(); it++) {
 
		Buddy *buddy = (*it).second;
 
		if (!buddy) {
 
			continue;
 
		}
 
		delete buddy;
 
	}
 

	
 
	LOG4CXX_INFO(logger, "Removing " << m_requests.size() << " unresponded IQs");
 
	BOOST_FOREACH(Swift::SetRosterRequest::ref request, m_requests) {
 
		request->onResponse.disconnect_all_slots();
 
	}
 
	m_requests.clear();
 

	
 
	boost::singleton_pool<boost::pool_allocator_tag, sizeof(unsigned int)>::release_memory();
 

	
 
	if (m_rosterStorage)
 
		delete m_rosterStorage;
 
}
 

	
 
void RosterManager::setBuddy(Buddy *buddy) {
0 comments (0 inline, 0 general)