summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOliver Wolff <oliver.wolff@qt.io>2018-03-13 12:15:02 +0100
committerOliver Wolff <oliver.wolff@qt.io>2018-03-23 07:13:51 +0000
commit1f77332db07d6a82ac9a8114f3bffa9373df2cea (patch)
tree31c0109193ea3bb005ddac6bb8bdd63bc474a617
parent6696c37e0027108f7d425b2e8c76992e7d2d8a76 (diff)
winrt: Remove partially read datagrams from queue
According to the documentation, datagrams that were not completely read are discarded. Change-Id: Id3a038d8aeeba05e8c8f92b70877f5f5297b89ca Reviewed-by: MÃ¥rten Nordheim <marten.nordheim@qt.io> Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io> Reviewed-by: Andre de la Rocha <andre.rocha@qt.io>
-rw-r--r--src/network/socket/qnativesocketengine_winrt.cpp8
1 files changed, 2 insertions, 6 deletions
diff --git a/src/network/socket/qnativesocketengine_winrt.cpp b/src/network/socket/qnativesocketengine_winrt.cpp
index 474dbdd13c..3ca84ad55a 100644
--- a/src/network/socket/qnativesocketengine_winrt.cpp
+++ b/src/network/socket/qnativesocketengine_winrt.cpp
@@ -1075,14 +1075,10 @@ qint64 QNativeSocketEngine::readDatagram(char *data, qint64 maxlen, QIpPacketHea
*header = datagram.header;
QByteArray readOrigin;
- // Do not read the whole datagram. Put the rest of it back into the "queue"
- if (maxlen < datagram.data.length()) {
+ if (maxlen < datagram.data.length())
readOrigin = datagram.data.left(maxlen);
- datagram.data = datagram.data.remove(0, maxlen);
- d->worker->pendingDatagrams.prepend(datagram);
- } else {
+ else
readOrigin = datagram.data;
- }
if (d->worker->pendingDatagrams.isEmpty()) {
qCDebug(lcNetworkSocket) << this << Q_FUNC_INFO << "That's all folks";
d->worker->emitDataReceived = true;