diff options
author | Simon Rettberg | 2016-09-09 16:31:04 +0200 |
---|---|---|
committer | Simon Rettberg | 2016-09-09 16:31:04 +0200 |
commit | a39269e11e7c2d1843a4a4bf67749ae0224e4830 (patch) | |
tree | 9870de008a4ecd0fcf3902668cffb3f574e17ba4 /src/server/net/client.cpp | |
parent | Rename lock/unlock scripts to kb-lock and kb-unlock so you know it's for the ... (diff) | |
download | pvs2-a39269e11e7c2d1843a4a4bf67749ae0224e4830.tar.gz pvs2-a39269e11e7c2d1843a4a4bf67749ae0224e4830.tar.xz pvs2-a39269e11e7c2d1843a4a4bf67749ae0224e4830.zip |
Fix infinite loop when receiving incomplete headers
Diffstat (limited to 'src/server/net/client.cpp')
-rw-r--r-- | src/server/net/client.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/server/net/client.cpp b/src/server/net/client.cpp index e55fb3b..5086ea1 100644 --- a/src/server/net/client.cpp +++ b/src/server/net/client.cpp @@ -122,14 +122,16 @@ void Client::onDataArrival() } bool ret; - while (_socket->bytesAvailable()) + while (_socket->bytesAvailable() > 0) { ret = _fromClient.readMessage(_socket); // let the message read data from socket - if (!ret) // error parsing msg, disconnect client! + if (ret == NM_READ_FAILED) // error parsing msg, disconnect client! { this->disconnect(); return; } + if (ret == NM_READ_INCOMPLETE) + return; if (_fromClient.readComplete()) // message is complete { this->handleMsg(); |