summaryrefslogtreecommitdiff
path: root/src/network/network_turn.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/network/network_turn.cpp')
-rw-r--r--src/network/network_turn.cpp12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/network/network_turn.cpp b/src/network/network_turn.cpp
index e04bec47c..ae82f3094 100644
--- a/src/network/network_turn.cpp
+++ b/src/network/network_turn.cpp
@@ -108,9 +108,7 @@ NetworkRecvStatus ClientNetworkTurnSocketHandler::CloseConnection(bool error)
{
NetworkTurnSocketHandler::CloseConnection(error);
- /* If our connecter is still pending, shut it down too. Otherwise the
- * callback of the connecter can call into us, and our object is most
- * likely about to be destroyed. */
+ /* Also make sure any pending connecter is killed ASAP. */
if (this->connecter != nullptr) {
this->connecter->Kill();
this->connecter = nullptr;
@@ -119,6 +117,14 @@ NetworkRecvStatus ClientNetworkTurnSocketHandler::CloseConnection(bool error)
return NETWORK_RECV_STATUS_OKAY;
}
+ClientNetworkTurnSocketHandler::~ClientNetworkTurnSocketHandler()
+{
+ if (this->connecter != nullptr) {
+ this->connecter->Kill();
+ this->connecter = nullptr;
+ }
+}
+
/**
* Check whether we received/can send some data from/to the TURN server and
* when that's the case handle it appropriately