diff options
Diffstat (limited to 'src/Daemon/RequestHandlers/CommandRequestHandler.cpp')
-rw-r--r-- | src/Daemon/RequestHandlers/CommandRequestHandler.cpp | 41 |
1 files changed, 6 insertions, 35 deletions
diff --git a/src/Daemon/RequestHandlers/CommandRequestHandler.cpp b/src/Daemon/RequestHandlers/CommandRequestHandler.cpp index 208d6e0..d00c415 100644 --- a/src/Daemon/RequestHandlers/CommandRequestHandler.cpp +++ b/src/Daemon/RequestHandlers/CommandRequestHandler.cpp @@ -18,53 +18,24 @@ */ #include "CommandRequestHandler.h" -#include <Net/Exception.h> -#include <Common/Logger.h> #include <Common/SystemManager.h> namespace Mad { namespace Daemon { namespace RequestHandlers { -void CommandRequestHandler::handlePacket(boost::shared_ptr<const Common::XmlPacket> packet) { - if(packet->getType() != "Command") { - Common::Logger::log(Common::Logger::ERROR, "Received an unexpected packet."); - - Common::XmlPacket ret; - ret.setType("Error"); - ret.add("ErrorCode", Net::Exception::UNEXPECTED_PACKET); - - sendPacket(ret); - - signalFinished(); - return; - } - +void CommandRequestHandler::handleRequest(boost::shared_ptr<const Common::XmlPacket> packet, Common::XmlPacket *ret) { // TODO Require authentication // TODO Error handling std::string command = (*packet)["command"]; - Common::XmlPacket ret; - - try { - if(command == "reboot") - Common::SystemManager::get()->shutdown(); - else - Common::SystemManager::get()->reboot(); - - ret.setType("OK"); - } - catch(Net::Exception e) { - ret.setType("Error"); - ret.add("ErrorCode", e.getErrorCode()); - ret.add("SubCode", e.getSubCode()); - ret.add("SubSubCode", e.getSubSubCode()); - ret.add("Where", e.getWhere()); - } + if(command == "reboot") + Common::SystemManager::get()->reboot(); + else + Common::SystemManager::get()->shutdown(); - sendPacket(ret); - signalFinished(); + ret->setType("OK"); } } |