From e7d8e749a9ea0b9791ae855bc730d9453534a82e Mon Sep 17 00:00:00 2001 From: Othmar Gsenger Date: Thu, 28 Feb 2008 22:23:51 +0000 Subject: another sync fix --- syncClientSocket.cpp | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/syncClientSocket.cpp b/syncClientSocket.cpp index 6b791bc..a6f03f4 100644 --- a/syncClientSocket.cpp +++ b/syncClientSocket.cpp @@ -49,16 +49,22 @@ void SyncClientSocket::OnRawData(const char *buf,size_t len) } while (1) { - if(missing_chars==-1 && iss_.str().size()>5) + if(missing_chars==-1 && iss_.str().length()>5) { - iss_>>missing_chars; + char * buffer = new char [missing_chars]; + iss_.read(buffer,missing_chars); + std::stringstream tmp; + tmp.write(buffer,missing_chars); + tmp>>missing_chars; + cLog.msg(Log::PRIO_NOTICE) << "recieved sync inforamtaion from " << GetRemoteHostname() <<" "<0 && missing_chars(iss_.str().size())) + if(missing_chars>0 && missing_chars<=static_cast(iss_.str().length())) { - char * buffer = new char [missing_chars+1]; - iss_.read(buffer,missing_chars+1); + char * buffer = new char [missing_chars]; + iss_.read(buffer,missing_chars); std::stringstream tmp; - tmp.write(buffer+1,missing_chars); + tmp.write(buffer,missing_chars); cLog.msg(Log::PRIO_NOTICE) << "recieved sync inforamtaion from " << GetRemoteHostname() <<" \""<