From b14a7efd629895a03cdbfa433905509b5f014906 Mon Sep 17 00:00:00 2001 From: Lorn Potter Date: Mon, 20 Feb 2023 10:44:54 +1000 Subject: wasm: make sure connection is closed before being deleted MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Pick-to: 6.5 Fixes: QTBUG-111248 Change-Id: I94a033fedf546c4d7f36af6c82a166dc33800f1f Reviewed-by: MÃ¥rten Nordheim --- src/websockets/qwebsocket_p.cpp | 8 +++++++- src/websockets/qwebsocket_wasm_p.cpp | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/websockets/qwebsocket_p.cpp b/src/websockets/qwebsocket_p.cpp index e5d0698..2f1f534 100644 --- a/src/websockets/qwebsocket_p.cpp +++ b/src/websockets/qwebsocket_p.cpp @@ -177,8 +177,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); -- cgit v1.2.1