summaryrefslogtreecommitdiffstats
path: root/src/network/socket/qnativesocketengine_winrt_p.h
diff options
context:
space:
mode:
authorOliver Wolff <oliver.wolff@qt.io>2018-03-15 08:54:25 +0100
committerOliver Wolff <oliver.wolff@qt.io>2018-04-06 05:31:03 +0000
commit29b21e83ba4af67e8ea4925e7a10bc9c6f5a13f6 (patch)
tree8cf8cc4079e5ab3e0e676dcbce0349771a7cc914 /src/network/socket/qnativesocketengine_winrt_p.h
parent20d2f024851d1b4c335d6288bd9aa6942ed02d4e (diff)
winrt: process pending data before closing a socket connection
If data is received and the remote immediately closes the connection, it was possible that data was lost. If a remote closes the connection make sure that any pending data is processed, before signaling closing of the socket. Change-Id: Ia94a616a31184fd28695919baaff99811fe0f1dd Reviewed-by: Andre de la Rocha <andre.rocha@qt.io> Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
Diffstat (limited to 'src/network/socket/qnativesocketengine_winrt_p.h')
-rw-r--r--src/network/socket/qnativesocketengine_winrt_p.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/network/socket/qnativesocketengine_winrt_p.h b/src/network/socket/qnativesocketengine_winrt_p.h
index f47e2a7dd7..6688bfe35c 100644
--- a/src/network/socket/qnativesocketengine_winrt_p.h
+++ b/src/network/socket/qnativesocketengine_winrt_p.h
@@ -184,6 +184,7 @@ private slots:
WinRTSocketEngine::ErrorString errorString);
void handleNewData();
void handleTcpError(QAbstractSocket::SocketError error);
+ void processReadReady();
private:
Q_DECLARE_PRIVATE(QNativeSocketEngine)
@@ -228,6 +229,7 @@ private:
EventRegistrationToken connectionToken;
bool emitReadReady = true;
+ bool pendingReadNotification = false;
HRESULT handleClientConnection(ABI::Windows::Networking::Sockets::IStreamSocketListener *tcpListener,
ABI::Windows::Networking::Sockets::IStreamSocketListenerConnectionReceivedEventArgs *args);