diff --git a/SAM.h b/SAM.h index 32cc80fe..b632028d 100644 --- a/SAM.h +++ b/SAM.h @@ -72,14 +72,15 @@ namespace client SAMSocket (SAMBridge& owner); ~SAMSocket (); - void CloseStream (); // TODO: implement it better - + void CloseStream (); // TODO: implement it better + boost::asio::ip::tcp::socket& GetSocket () { return m_Socket; }; void ReceiveHandshake (); + void SetSocketType (SAMSocketType socketType) { m_SocketType = socketType; }; private: - void Terminate (); + void Terminate (); void HandleHandshakeReceived (const boost::system::error_code& ecode, std::size_t bytes_transferred); void HandleHandshakeReplySent (const boost::system::error_code& ecode, std::size_t bytes_transferred); void HandleMessage (const boost::system::error_code& ecode, std::size_t bytes_transferred); @@ -126,6 +127,12 @@ namespace client { ClientDestination * localDestination; std::list > sockets; + + ~SAMSession () + { + for (auto it: sockets) + it->SetSocketType (eSAMSocketTypeTerminated); + } }; class SAMBridge