diff options
Diffstat (limited to 'src/Common/RequestHandlers/DisconnectRequestHandler.cpp')
-rw-r--r-- | src/Common/RequestHandlers/DisconnectRequestHandler.cpp | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/src/Common/RequestHandlers/DisconnectRequestHandler.cpp b/src/Common/RequestHandlers/DisconnectRequestHandler.cpp index 6a5ca99..346b6de 100644 --- a/src/Common/RequestHandlers/DisconnectRequestHandler.cpp +++ b/src/Common/RequestHandlers/DisconnectRequestHandler.cpp @@ -18,24 +18,34 @@ */ #include "DisconnectRequestHandler.h" +#include "../Exception.h" #include "../Logger.h" +#include "../XmlPacket.h" #include <Net/Connection.h> -#include <Net/Packets/ErrorPacket.h> namespace Mad { namespace Common { namespace RequestHandlers { -void DisconnectRequestHandler::handlePacket(Net::Connection *connection, const Net::Packet &packet) { - if(packet.getType() != Net::Packet::DISCONNECT) { +void DisconnectRequestHandler::handlePacket(Net::Connection *connection, uint16_t requestId, const XmlPacket &packet) { + if(packet.getType() != "Disconnect") { Logger::log(Logger::ERROR, "Received an unexpected packet."); - connection->send(Net::Packets::ErrorPacket(Net::Packet::ERROR, packet.getRequestId(), Common::Exception(Common::Exception::UNEXPECTED_PACKET))); + + XmlPacket ret; + ret.setType("Error"); + ret.add("ErrorCode", Exception::UNEXPECTED_PACKET); + + connection->send(ret.encode(requestId)); signalFinished().emit(); return; } - connection->send(Net::Packet(Net::Packet::OK, packet.getRequestId())); + XmlPacket ret; + ret.setType("OK"); + + connection->send(ret.encode(requestId)); + connection->disconnect(); signalFinished().emit(); |