From 09548d6b3b7f845f4b73e1d7925714618bc478e8 Mon Sep 17 00:00:00 2001 From: BenDroid Date: Sat, 14 Apr 2018 23:47:45 +0200 Subject: [PATCH] Fixed disconnect --- src/net/BoostConnection.h | 11 +++++------ src/net/Client.cpp | 5 +++++ 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/net/BoostConnection.h b/src/net/BoostConnection.h index c1863d29..596a2e73 100644 --- a/src/net/BoostConnection.h +++ b/src/net/BoostConnection.h @@ -36,7 +36,7 @@ public: ~BoostConnection() { - disconnect(); + } void connect(const std::string& server, uint16_t port) override @@ -51,6 +51,8 @@ public: boost::bind(&BoostConnection::handleConnect, this->shared_from_this(), boost::asio::placeholders::error)); + + std::thread([this]() { ioService_.run(); }).detach(); } @@ -67,11 +69,8 @@ public: void disconnect() override { - if (isConnected()) { - LOG_DEBUG("[%s:%d] Disconnecting", getConnectedIp().c_str(), getConnectedPort()); - socket_.get().lowest_layer().close(); - } - + LOG_DEBUG("[%s:%d] Disconnecting", getConnectedIp().c_str(), getConnectedPort()); + socket_.get().lowest_layer().close(); ioService_.stop(); } diff --git a/src/net/Client.cpp b/src/net/Client.cpp index fc08f6c5..44687410 100644 --- a/src/net/Client.cpp +++ b/src/net/Client.cpp @@ -322,6 +322,11 @@ void Client::close() { LOG_DEBUG("close"); + if (m_connection && m_connection) { + LOG_DEBUG("disconnecting"); + m_connection->disconnect(); + } + m_connection.reset(); }