diff options
Diffstat (limited to 'src/network/network_turn.cpp')
-rw-r--r-- | src/network/network_turn.cpp | 12 |
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 |