diff options
Diffstat (limited to 'src/Core/ConnectionManager.cpp')
-rw-r--r-- | src/Core/ConnectionManager.cpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/Core/ConnectionManager.cpp b/src/Core/ConnectionManager.cpp index 72bf07f..9cbda90 100644 --- a/src/Core/ConnectionManager.cpp +++ b/src/Core/ConnectionManager.cpp @@ -20,6 +20,7 @@ #include "ConnectionManager.h" #include "ConfigManager.h" #include "RequestHandlers/CoreStatusRequestHandler.h" +#include "RequestHandlers/DaemonListRequestHandler.h" #include "RequestHandlers/DaemonStatusRequestHandler.h" #include "RequestHandlers/GSSAPIAuthRequestHandler.h" #include "RequestHandlers/IdentifyRequestHandler.h" @@ -66,6 +67,7 @@ ConnectionManager::ConnectionManager() { Common::RequestManager::init(true); Common::RequestManager::getRequestManager()->registerPacketType<RequestHandlers::CoreStatusRequestHandler>(Net::Packet::CORE_STATUS); + Common::RequestManager::getRequestManager()->registerPacketType<RequestHandlers::DaemonListRequestHandler>(Net::Packet::LIST_DAEMONS); Common::RequestManager::getRequestManager()->registerPacketType<RequestHandlers::DaemonStatusRequestHandler>(Net::Packet::DAEMON_STATUS); Common::RequestManager::getRequestManager()->registerPacketType<RequestHandlers::GSSAPIAuthRequestHandler>(Net::Packet::GSSAPI_AUTH); Common::RequestManager::getRequestManager()->registerPacketType<RequestHandlers::IdentifyRequestHandler>(Net::Packet::IDENTIFY); @@ -199,5 +201,16 @@ void ConnectionManager::identifyDaemonConnection(Net::Connection *connection, co std::cerr << "Identified as '" << name << "'." << std::endl; } +std::map<std::string,DaemonInfo> ConnectionManager::getDaemonList() const { + std::map<std::string,DaemonInfo> ret; + + for(std::map<std::string,Net::ServerConnection*>::const_iterator con = identifiedDaemonConnections.begin(); con != identifiedDaemonConnections.end(); ++con) { + if(con->second) + ret.insert(std::make_pair(con->first, daemonInfo.at(con->first))); + } + + return ret; +} + } } |