From 4428ede6248cde7e9ccc82080f02b5decea8a5ff Mon Sep 17 00:00:00 2001 From: Charles Lohr Date: Wed, 30 Jun 2004 07:16:08 +0000 Subject: [PATCH] Fixed net-order stuff, and readpack function. --- stepmania/src/ezsockets.cpp | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/stepmania/src/ezsockets.cpp b/stepmania/src/ezsockets.cpp index 772ac786c5..3a8ebd0688 100644 --- a/stepmania/src/ezsockets.cpp +++ b/stepmania/src/ezsockets.cpp @@ -8,10 +8,12 @@ Windows-Based OSes. ********************************************/ -// We need the WinSock32 Library on Windows +// StepMania only includes #include "global.h" + #include "ezsockets.h" +// We need the WinSock32 Library on Windows #if defined(_XBOX) #elif defined(_WINDOWS) #pragma comment(lib,"wsock32.lib") @@ -274,7 +276,8 @@ int EzSockets::PeekData(char *data, unsigned int bytes) //Packet system (for structures and classes) void EzSockets::SendPack(char * data, unsigned int bytes) { - SendData ((char *)&bytes,sizeof(int)); + unsigned int SendSize = htonl(bytes); + SendData ((char *)&SendSize,sizeof(int)); SendData (data,bytes); } @@ -282,10 +285,7 @@ int EzSockets::ReadPack(char * data, unsigned int max) { int size = PeekPack(data,max); if (size!=-1) - { - int tSize = (int)((inBuffer.substr(0,4)).c_str()); - inBuffer = inBuffer.substr(tSize+4); - } + inBuffer = inBuffer.substr(size+4); return size; } @@ -302,7 +302,8 @@ int EzSockets::PeekPack(char * data, unsigned int max) } unsigned int size=0; - PeekData((char*)size,4); + PeekData((char*)&size,4); + size = ntohl(size); while ((inBuffer.length()<(size+4)) && !IsError()) { @@ -323,6 +324,7 @@ int EzSockets::PeekPack(char * data, unsigned int max) { unsigned int size=0; PeekData((char*)size,4); + size = ntohl(size); if (inBuffer.length()<(size+4)) return (-1);