From 0f026c5da29a8277d3212fda7564b44671a65c06 Mon Sep 17 00:00:00 2001 From: Benjamin Sergeant Date: Fri, 24 Jul 2020 10:03:29 -0700 Subject: [PATCH] (websocket client) reset WebSocketTransport onClose callback in the WebSocket destructor --- docs/CHANGELOG.md | 4 ++++ ixwebsocket/IXWebSocket.cpp | 1 + ixwebsocket/IXWebSocketTransport.cpp | 5 ++++- ixwebsocket/IXWebSocketVersion.h | 2 +- 4 files changed, 10 insertions(+), 2 deletions(-) diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index 832e3992..8a9f5668 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -1,6 +1,10 @@ # Changelog All changes to this project will be documented in this file. +## [9.10.2] - 2020-07-24 + +(websocket client) reset WebSocketTransport onClose callback in the WebSocket destructor + ## [9.10.1] - 2020-07-24 (websocket server) reset client websocket callback when the connection is closed diff --git a/ixwebsocket/IXWebSocket.cpp b/ixwebsocket/IXWebSocket.cpp index 864482ea..94c3ecb1 100644 --- a/ixwebsocket/IXWebSocket.cpp +++ b/ixwebsocket/IXWebSocket.cpp @@ -46,6 +46,7 @@ namespace ix WebSocket::~WebSocket() { stop(); + _ws.setOnCloseCallback(nullptr); } void WebSocket::setUrl(const std::string& url) diff --git a/ixwebsocket/IXWebSocketTransport.cpp b/ixwebsocket/IXWebSocketTransport.cpp index d95f56be..dbe7dd65 100644 --- a/ixwebsocket/IXWebSocketTransport.cpp +++ b/ixwebsocket/IXWebSocketTransport.cpp @@ -180,7 +180,10 @@ namespace ix if (readyState == ReadyState::CLOSED) { std::lock_guard lock(_closeDataMutex); - _onCloseCallback(_closeCode, _closeReason, _closeWireSize, _closeRemote); + if (_onCloseCallback) + { + _onCloseCallback(_closeCode, _closeReason, _closeWireSize, _closeRemote); + } _closeCode = WebSocketCloseConstants::kInternalErrorCode; _closeReason = WebSocketCloseConstants::kInternalErrorMessage; _closeWireSize = 0; diff --git a/ixwebsocket/IXWebSocketVersion.h b/ixwebsocket/IXWebSocketVersion.h index 3a801255..2402ec52 100644 --- a/ixwebsocket/IXWebSocketVersion.h +++ b/ixwebsocket/IXWebSocketVersion.h @@ -6,4 +6,4 @@ #pragma once -#define IX_WEBSOCKET_VERSION "9.10.1" +#define IX_WEBSOCKET_VERSION "9.10.2"