Network - char[] unpacking.

Fixed correct unpacking on char[].
Fixed not clearing string in translator unpack function.
This commit is contained in:
Pontus Fransson 2013-12-18 00:04:25 +01:00
parent 7c029a5242
commit 4df33b759c
2 changed files with 6 additions and 2 deletions

View File

@ -44,7 +44,7 @@ struct Translator::PrivateData
headerString.push_back(it->second.type); headerString.push_back(it->second.type);
} }
message.PackShort(size, bytes); message.PackShort(headerString.size(), bytes);
size += 2; size += 2;
for(int i = 0; i < (int)headerString.size(); i++) for(int i = 0; i < (int)headerString.size(); i++)
@ -221,6 +221,8 @@ void Translator::Pack(OysterByte &bytes, CustomNetProtocol& protocol)
bool Translator::Unpack(CustomNetProtocol& protocol, OysterByte &bytes) bool Translator::Unpack(CustomNetProtocol& protocol, OysterByte &bytes)
{ {
privateData->headerString.clear();
if(!privateData->UnpackHeader(protocol, bytes)) if(!privateData->UnpackHeader(protocol, bytes))
{ {
return false; return false;

View File

@ -282,7 +282,7 @@ namespace Oyster
char* UnpackCStr(unsigned char buffer[]) char* UnpackCStr(unsigned char buffer[])
{ {
short len = UnpackS(buffer); short len = UnpackS(buffer);
char* str = new char[len]; char* str = new char[len+1];
buffer += 2; buffer += 2;
for(int i = 0; i < len; i++) for(int i = 0; i < len; i++)
@ -290,6 +290,8 @@ namespace Oyster
str[i] = buffer[i]; str[i] = buffer[i];
} }
str[len] = '\0';
return str; return str;
} }