summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLorn Potter <lorn.potter@gmail.com>2023-02-20 10:44:54 +1000
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2023-02-21 23:04:34 +0000
commita2480aa46daf55e2a28269dbbc9b708581e811ae (patch)
treee6351d9a80b55d87cdd3773b31181b3c780dc751
parentfe5ddf433fb45b3e66b79eed17a61a25f13fbe68 (diff)
downloadqtwebsockets-a2480aa46daf55e2a28269dbbc9b708581e811ae.tar.gz
wasm: make sure connection is closed before being deleted
Fixes: QTBUG-111248 Change-Id: I94a033fedf546c4d7f36af6c82a166dc33800f1f Reviewed-by: MÃ¥rten Nordheim <marten.nordheim@qt.io> (cherry picked from commit b14a7efd629895a03cdbfa433905509b5f014906) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
-rw-r--r--src/websockets/qwebsocket_p.cpp8
-rw-r--r--src/websockets/qwebsocket_wasm_p.cpp2
2 files changed, 8 insertions, 2 deletions
diff --git a/src/websockets/qwebsocket_p.cpp b/src/websockets/qwebsocket_p.cpp
index 9fef0c3..92df309 100644
--- a/src/websockets/qwebsocket_p.cpp
+++ b/src/websockets/qwebsocket_p.cpp
@@ -173,8 +173,14 @@ void QWebSocketPrivate::init()
QWebSocketPrivate::~QWebSocketPrivate()
{
#ifdef Q_OS_WASM
- if (m_socketContext)
+ if (m_socketContext) {
+ uint16_t m_readyState;
+ emscripten_websocket_get_ready_state(m_socketContext, &m_readyState);
+ if (m_readyState == 1 || m_readyState == 0) {
+ emscripten_websocket_close(m_socketContext, 1000,"");
+ }
emscripten_websocket_delete(m_socketContext);
+ }
#endif
}
diff --git a/src/websockets/qwebsocket_wasm_p.cpp b/src/websockets/qwebsocket_wasm_p.cpp
index c861fcf..e4d566b 100644
--- a/src/websockets/qwebsocket_wasm_p.cpp
+++ b/src/websockets/qwebsocket_wasm_p.cpp
@@ -120,7 +120,7 @@ void QWebSocketPrivate::close(QWebSocketProtocol::CloseCode closeCode, QString r
emscripten_websocket_get_ready_state(m_socketContext, &m_readyState);
- if (m_readyState == 1) {
+ if (m_readyState == 1 || m_readyState == 0) {
emscripten_websocket_close(m_socketContext, (int)closeCode, reason.toUtf8());
}
setSocketState(QAbstractSocket::UnconnectedState);