Changeset - 92fb9a23918a
[Not reviewed]
0 1 0
vitalyster - 9 years ago 2016-03-01 13:28:34
vitalyster@gmail.com
DiscoItemsResponder: respond rooms list only for empty node
1 file changed with 1 insertions and 1 deletions:
0 comments (0 inline, 0 general)
spectrum/src/frontends/xmpp/discoitemsresponder.cpp
Show inline comments
 
@@ -62,48 +62,48 @@ void DiscoItemsResponder::addAdHocCommand(const std::string &node, const std::st
 

	
 
void DiscoItemsResponder::addRoom(const std::string &node, const std::string &name) {
 
	if (m_rooms->getItems().size() > CONFIG_INT(m_component->getConfig(), "service.max_room_list_size")) {
 
		return;
 
	}
 
	m_rooms->addItem(DiscoItems::Item(name, node));
 
	m_discoInfoResponder->addRoom(node, name);
 
}
 

	
 
void DiscoItemsResponder::clearRooms() {
 
	m_rooms = boost::shared_ptr<DiscoItems>(new DiscoItems());
 
	m_discoInfoResponder->clearRooms();
 
}
 

	
 
Swift::CapsInfo &DiscoItemsResponder::getBuddyCapsInfo() {
 
	return m_discoInfoResponder->getBuddyCapsInfo();
 
}
 

	
 

	
 
bool DiscoItemsResponder::handleGetRequest(const Swift::JID& from, const Swift::JID& to, const std::string& id, boost::shared_ptr<Swift::DiscoItems> info) {
 
	LOG4CXX_INFO(logger, "get request received with node " << info->getNode());
 
	if (info->getNode() == "http://jabber.org/protocol/commands") {
 
		sendResponse(from, id, m_commands);
 
	}
 
	else if (to.getNode().empty()) {
 
	else if (to.getNode().empty() && info->getNode().empty()) {
 
		XMPPUser *user = static_cast<XMPPUser *>(m_userManager->getUser(from.toBare().toString()));
 
		if (!user) {
 
			sendResponse(from, id, m_rooms);
 
			return true;
 
		}
 

	
 
		boost::shared_ptr<DiscoItems> rooms = boost::shared_ptr<DiscoItems>(new DiscoItems());
 
		BOOST_FOREACH(const DiscoItems::Item &item, m_rooms->getItems()) {
 
			rooms->addItem(item);
 
		}
 
		BOOST_FOREACH(const DiscoItems::Item &item, user->getRoomList()->getItems()) {
 
			rooms->addItem(item);
 
		}
 

	
 
		sendResponse(from, id, rooms);
 
	}
 
	else {
 
		sendResponse(from, id, boost::shared_ptr<DiscoItems>(new DiscoItems()));
 
	}
 
	return true;
 
}
 

	
 
}
0 comments (0 inline, 0 general)