diff options
author | Franck Dude <enstone83@gmail.com> | 2019-12-07 16:46:52 +0100 |
---|---|---|
committer | Franck Dude <enstone83@gmail.com> | 2019-12-13 20:09:40 +0100 |
commit | cea5603ee1a56bb5d177f35ed3f884345875099e (patch) | |
tree | c7c942c55fc767d8a3f3beed93dcea0bfb8b4b63 /src/websockets/qwebsocket_p.cpp | |
parent | 92cec7af3ee88673d58e70e5b9a84a0cf55aa734 (diff) | |
download | qtwebsockets-cea5603ee1a56bb5d177f35ed3f884345875099e.tar.gz |
Fix websocket handshake request header parsing
Header ends with \r\n\r\n but there might be more data inside the
tcpbuffer
Never read past the header
Task-number: QTBUG-70000
Change-Id: If3d4cb362646e43a91faf00f89e50510ff00fa56
Reviewed-by: MÃ¥rten Nordheim <marten.nordheim@qt.io>
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Diffstat (limited to 'src/websockets/qwebsocket_p.cpp')
-rw-r--r-- | src/websockets/qwebsocket_p.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/websockets/qwebsocket_p.cpp b/src/websockets/qwebsocket_p.cpp index 36aefd9..c9dbb1f 100644 --- a/src/websockets/qwebsocket_p.cpp +++ b/src/websockets/qwebsocket_p.cpp @@ -569,7 +569,7 @@ void QWebSocketPrivate::enableMasking(bool enable) /*! * \internal */ -void QWebSocketPrivate::makeConnections(const QTcpSocket *pTcpSocket) +void QWebSocketPrivate::makeConnections(QTcpSocket *pTcpSocket) { Q_ASSERT(pTcpSocket); Q_Q(QWebSocket); @@ -636,6 +636,10 @@ void QWebSocketPrivate::makeConnections(const QTcpSocket *pTcpSocket) &QWebSocketPrivate::processPong); QObjectPrivate::connect(&m_dataProcessor, &QWebSocketDataProcessor::closeReceived, this, &QWebSocketPrivate::processClose); + + //fire readyread, in case we already have data inside the tcpSocket + if (pTcpSocket->bytesAvailable()) + Q_EMIT pTcpSocket->readyRead(); } /*! |