summaryrefslogtreecommitdiffstats
path: root/src/server
diff options
context:
space:
mode:
authorChristian Klinger2016-09-12 12:02:10 +0200
committerChristian Klinger2016-09-12 12:02:10 +0200
commit16bf058f598b308d53fd2da095f7373adaec0a13 (patch)
tree88a098fa59e00ac23e62ac6df9daaebedc081756 /src/server
parentAdded support for a label field inside each room section + UTF8 (diff)
parentFix infinite loop when receiving incomplete headers (diff)
downloadpvs2-16bf058f598b308d53fd2da095f7373adaec0a13.tar.gz
pvs2-16bf058f598b308d53fd2da095f7373adaec0a13.tar.xz
pvs2-16bf058f598b308d53fd2da095f7373adaec0a13.zip
Merge branch 'master' of git.openslx.org:pvs2
Diffstat (limited to 'src/server')
-rw-r--r--src/server/net/client.cpp6
-rw-r--r--src/server/net/discoverylistener.cpp2
2 files changed, 5 insertions, 3 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();
diff --git a/src/server/net/discoverylistener.cpp b/src/server/net/discoverylistener.cpp
index e205c77..892ca53 100644
--- a/src/server/net/discoverylistener.cpp
+++ b/src/server/net/discoverylistener.cpp
@@ -145,7 +145,7 @@ void DiscoveryListener::onReadyRead()
}
++_packetCounter[bucket];
_packet.reset();
- if (!_packet.readMessage(data, (quint32)size))
+ if (_packet.readMessage(data, (quint32)size) != NM_READ_OK)
continue;
// Valid packet, process it:
const QByteArray iplist(_packet.getFieldBytes(_IPLIST));