diff options
Diffstat (limited to 'client-qt/udm-client-qt/client_session.cpp')
-rw-r--r-- | client-qt/udm-client-qt/client_session.cpp | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/client-qt/udm-client-qt/client_session.cpp b/client-qt/udm-client-qt/client_session.cpp index 60f462c..c034aa1 100644 --- a/client-qt/udm-client-qt/client_session.cpp +++ b/client-qt/udm-client-qt/client_session.cpp @@ -59,9 +59,10 @@ tcp::socket& client_session::socket() return socket_; } -void client_session::client_connect(QString host, int port) +void client_session::client_connect(QString host, QString password, int port) { //TODO: settings for connection timeout + this->pasword = password; boost::asio::ip::tcp::resolver r(io_service_); boost::asio::ip::tcp::endpoint ep; ep.port(port); @@ -77,6 +78,7 @@ void client_session::handle_connect(const boost::system::error_code &e) //TODO: settings for reconnect count and timeout emit client_connected(false, QString::fromStdString(e.message())); BOOST_LOG_TRIVIAL(error)<<__FILE__<<":"<<__LINE__<<"\t"<<typeid(this).name()<<"::"<<__func__<<"\terror: "<<e.message(); + delete this; //suicide } else { @@ -159,6 +161,15 @@ void client_session::run_io_service() io_service_.run(); } +client_session::~client_session() +{ + //TODO: check this, reimplement + io_service_.stop(); + boost::asio::io_service *s = &io_service_; + delete s; + emit terminate_thread(); +} + /*boost::asio::io_service &client_session::io_service() { return io_service_; |