diff --git a/libi2pd/NTCPSession.cpp b/libi2pd/NTCPSession.cpp index d4847448..96d95ab6 100644 --- a/libi2pd/NTCPSession.cpp +++ b/libi2pd/NTCPSession.cpp @@ -1044,7 +1044,7 @@ namespace transport auto timer = std::make_shared(m_Service); auto timeout = NTCP_CONNECT_TIMEOUT * 5; - conn->SetTerminationTimeout(timeout); + conn->SetTerminationTimeout(timeout * 2); timer->expires_from_now (boost::posix_time::seconds(timeout)); timer->async_wait ([conn, timeout](const boost::system::error_code& ecode) { if (ecode != boost::asio::error::operation_aborted) @@ -1136,6 +1136,8 @@ namespace transport } else { + timer->cancel(); + conn->Terminate(); i2p::data::netdb.SetUnreachable (conn->GetRemoteIdentity ()->GetIdentHash (), true); } }