diff options
author | Ryan Chu <ryan.chu@qt.io> | 2019-06-28 14:37:05 +0200 |
---|---|---|
committer | Ryan Chu <ryan.chu@qt.io> | 2019-08-23 15:28:46 +0200 |
commit | b14f5f59a3ae96949e6a33302385a751d6448182 (patch) | |
tree | 5594f3816864eaf6757bcadeecebb84a67b8c2e7 /src/websockets/qwebsocketdataprocessor_p.h | |
parent | 24894c032719157a2d738f03e0c70d3ff0cf1782 (diff) | |
download | qtwebsockets-b14f5f59a3ae96949e6a33302385a751d6448182.tar.gz |
Remove waitForReadyRead from QWebSocketFrame::readFrame
Asynchronously process socket frame in QWebSocketDataProcessor::process.
If the processing of QWebSocketFrame is not done and waiting for more
data, QWebSocketDataProcessor::process will return the control and wait
for next readyRead signal to continue processing the unfinished socket
frame. QWebSocketDataProcessor::process gets timeout after 5 seconds,
and then an errorEncountered signal will be emitted.
Fixes: QTBUG-74464
Change-Id: I03b7f874c1c266617e7eadf59c59ae43fa8540ce
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: MÃ¥rten Nordheim <marten.nordheim@qt.io>
Diffstat (limited to 'src/websockets/qwebsocketdataprocessor_p.h')
-rw-r--r-- | src/websockets/qwebsocketdataprocessor_p.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/websockets/qwebsocketdataprocessor_p.h b/src/websockets/qwebsocketdataprocessor_p.h index 1d8024e..41226d6 100644 --- a/src/websockets/qwebsocketdataprocessor_p.h +++ b/src/websockets/qwebsocketdataprocessor_p.h @@ -55,6 +55,7 @@ #include <QtCore/QByteArray> #include <QtCore/QString> #include <QtCore/QTextCodec> +#include <QTimer> #include "qwebsocketframe_p.h" #include "qwebsocketprotocol.h" #include "qwebsocketprotocol_p.h" @@ -113,8 +114,10 @@ private: QTextCodec::ConverterState *m_pConverterState; QTextCodec *m_pTextCodec; QWebSocketFrame frame; + QTimer waitTimer; bool processControlFrame(const QWebSocketFrame &frame); + void timeout(); }; QT_END_NAMESPACE |