Changeset - cbf6db2a6125
[Not reviewed]
0 4 0
Jan Kaluza - 14 years ago 2011-08-03 13:58:55
hanzz.k@gmail.com
better AdminInterface
4 files changed with 17 insertions and 9 deletions:
0 comments (0 inline, 0 general)
include/transport/networkpluginserver.h
Show inline comments
 
@@ -69,7 +69,7 @@ class NetworkPluginServer {
 

	
 
		void collectBackend();
 

	
 
		void moveToLongRunBackend(User *user);
 
		bool moveToLongRunBackend(User *user);
 

	
 
		void handleMessageReceived(NetworkConversation *conv, boost::shared_ptr<Swift::Message> &message);
 

	
spectrum/src/sample.cfg
Show inline comments
 
@@ -8,7 +8,7 @@ backend_host=localhost # < this option doesn't work yet
 
backend_port=10001
 
admin_username=admin
 
admin_password=test
 
#idle_reconnect_time=10
 
idle_reconnect_time=10
 
#cert= #patch to PKCS#12 certificate
 
#cert_password= #password to that certificate if any
 
users_per_backend=10
src/admininterface.cpp
Show inline comments
 
@@ -107,14 +107,20 @@ void AdminInterface::handleMessageReceived(Swift::Message::ref message) {
 
		const std::list <NetworkPluginServer::Backend *> &backends = m_server->getBackends();
 
		for (std::list <NetworkPluginServer::Backend *>::const_iterator b = backends.begin(); b != backends.end(); b++) {
 
			NetworkPluginServer::Backend *backend = *b;
 
			lst += "Backend " + boost::lexical_cast<std::string>(id) + ":\n";
 
			lst += "Backend " + boost::lexical_cast<std::string>(id);
 
			lst += backend->acceptUsers ? "" : " - not-accepting";
 
			lst += backend->longRun ? " - long-running" : "";
 
			lst += ":\n";
 
			if (backend->users.size() == 0) {
 
				lst += "   waiting for users\n";
 
			}
 
			else {
 
				time_t now = time(NULL);
 
				for (std::list<User *>::const_iterator u = backend->users.begin(); u != backend->users.end(); u++) {
 
					User *user = *u;
 
					lst += "   " + user->getJID().toBare().toString() + "\n";
 
					lst += "   " + user->getJID().toBare().toString();
 
					lst += " - non-active for " + boost::lexical_cast<std::string>(now - user->getLastActivity()) + " seconds";
 
					lst += "\n";
 
				}
 
			}
 
			id++;
src/networkpluginserver.cpp
Show inline comments
 
@@ -612,7 +612,8 @@ void NetworkPluginServer::pingTimeout() {
 

	
 
	BOOST_FOREACH(User *u, usersToMove) {
 
		LOG4CXX_INFO(logger, "Moving user " << u->getJID().toString() << " to long-running backend");
 
		moveToLongRunBackend(u);
 
		if (!moveToLongRunBackend(u))
 
			break;
 
	}
 
	
 

	
 
@@ -655,18 +656,18 @@ void NetworkPluginServer::collectBackend() {
 
	}
 
}
 

	
 
void NetworkPluginServer::moveToLongRunBackend(User *user) {
 
bool NetworkPluginServer::moveToLongRunBackend(User *user) {
 
	// Check if user has already some backend
 
	Backend *old = (Backend *) user->getData();
 
	if (!old) {
 
		LOG4CXX_INFO(logger, "User " << user->getJID().toString() << " does not have old backend. Not moving.");
 
		return;
 
		return true;
 
	}
 

	
 
	// if he's already on long run, do nothing
 
	if (old->longRun) {
 
		LOG4CXX_INFO(logger, "User " << user->getJID().toString() << " is already on long-running backend. Not moving.");
 
		return;
 
		return true;
 
	}
 

	
 
	// Get free longrun backend, if there's no longrun backend, create one and wait
 
@@ -674,7 +675,7 @@ void NetworkPluginServer::moveToLongRunBackend(User *user) {
 
	Backend *backend = getFreeClient(false, true);
 
	if (!backend) {
 
		LOG4CXX_INFO(logger, "No free long-running backend for user " << user->getJID().toString() << ". Will try later");
 
		return;
 
		return false;
 
	}
 

	
 
	// old backend will trigger disconnection which has to be ignored to keep user online
 
@@ -690,6 +691,7 @@ void NetworkPluginServer::moveToLongRunBackend(User *user) {
 

	
 
	// connect him
 
	handleUserReadyToConnect(user);
 
	return true;
 
}
 

	
 
void NetworkPluginServer::handleUserCreated(User *user) {
0 comments (0 inline, 0 general)