diff --git a/I2PTunnel.cpp b/I2PTunnel.cpp index ae1b4d95..e48ef64b 100644 --- a/I2PTunnel.cpp +++ b/I2PTunnel.cpp @@ -30,6 +30,7 @@ namespace stream void I2PTunnelConnection::Terminate () { + m_Socket->close (); // TODO: remove from I2PTunnel } @@ -58,7 +59,14 @@ namespace stream void I2PTunnelConnection::HandleWrite (const boost::system::error_code& ecode) { - StreamReceive (); + if (ecode) + { + LogPrint ("I2PTunnel write error: ", ecode.message ()); + m_Stream->Close (); + Terminate (); + } + else + StreamReceive (); } void I2PTunnelConnection::StreamReceive ()