diff options
author | Oliver Wolff <oliver.wolff@qt.io> | 2018-03-13 12:15:02 +0100 |
---|---|---|
committer | Oliver Wolff <oliver.wolff@qt.io> | 2018-03-23 07:13:51 +0000 |
commit | 1f77332db07d6a82ac9a8114f3bffa9373df2cea (patch) | |
tree | 31c0109193ea3bb005ddac6bb8bdd63bc474a617 | |
parent | 6696c37e0027108f7d425b2e8c76992e7d2d8a76 (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.cpp | 8 |
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; |