diff --git a/libi2pd/NetDb.cpp b/libi2pd/NetDb.cpp index e5d3fc09..ac786a29 100644 --- a/libi2pd/NetDb.cpp +++ b/libi2pd/NetDb.cpp @@ -294,6 +294,7 @@ namespace data } else { + r->CancelBufferToDelete (); // since an update received if (CheckLogLevel (eLogDebug)) LogPrint (eLogDebug, "NetDb: RouterInfo is older: ", ident.ToBase64()); updated = false; diff --git a/libi2pd/Transports.cpp b/libi2pd/Transports.cpp index b9971a77..22646d94 100644 --- a/libi2pd/Transports.cpp +++ b/libi2pd/Transports.cpp @@ -560,7 +560,14 @@ namespace transport bool Transports::ConnectToPeer (const i2p::data::IdentHash& ident, std::shared_ptr peer) { if (!peer->router) // reconnect - peer->SetRouter (netdb.FindRouter (ident)); // try to get new one from netdb + { + auto r = netdb.FindRouter (ident); // try to get new one from netdb + if (r) + { + peer->SetRouter (r); + r->CancelBufferToDelete (); + } + } if (peer->router) // we have RI already { if (peer->priority.empty ())