From 113b1f4bbdecfab24ed9781b730a76a442adad6f Mon Sep 17 00:00:00 2001 From: Matthias Schiffer Date: Fri, 19 Sep 2008 11:15:14 +0200 Subject: Exceptions vereinheitlicht --- src/Net/Packets/ErrorPacket.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'src/Net/Packets/ErrorPacket.cpp') diff --git a/src/Net/Packets/ErrorPacket.cpp b/src/Net/Packets/ErrorPacket.cpp index 2a72415..28d364a 100644 --- a/src/Net/Packets/ErrorPacket.cpp +++ b/src/Net/Packets/ErrorPacket.cpp @@ -18,6 +18,7 @@ */ #include "ErrorPacket.h" +#include namespace Mad { namespace Net { @@ -26,18 +27,22 @@ namespace Packets { ErrorPacket::ErrorPacket(Type type, uint16_t requestId, const Common::Exception &exception) : Packet(type, requestId) { - setLength(sizeof(ErrorData)); + setLength(sizeof(ErrorData) + exception.getWhere().length()); errorData = (ErrorData*)&rawData->data; errorData->errorCode = htonl(exception.getErrorCode()); errorData->subCode = htonl(exception.getSubCode()); errorData->subSubCode = htonl(exception.getSubSubCode()); + + std::memcpy(errorData->where, exception.getWhere().c_str(), exception.getWhere().length()); } ErrorPacket& ErrorPacket::operator=(const Packet &p) { Packet::operator=(p); - setLength(sizeof(ErrorData)); + if(getLength() < sizeof(ErrorData)) + setLength(sizeof(ErrorData)); + errorData = (ErrorData*)&rawData->data; return *this; -- cgit v1.2.3