diff --git a/libi2pd/NTCP2.cpp b/libi2pd/NTCP2.cpp index 1138db3e..bf65c4cf 100644 --- a/libi2pd/NTCP2.cpp +++ b/libi2pd/NTCP2.cpp @@ -1020,6 +1020,12 @@ namespace transport SendTerminationAndTerminate (eNTCP2Message3Error); return; } + if (ri.GetVersion () < i2p::data::NETDB_MIN_ALLOWED_VERSION && !ri.IsHighBandwidth ()) + { + LogPrint (eLogInfo, "NTCP2: Router version ", ri.GetVersion (), " is too old in SessionConfirmed"); + SendTerminationAndTerminate (eNTCP2Banned); + return; + } // update RouterInfo in netdb auto ri1 = i2p::data::netdb.AddRouterInfo (ri.GetBuffer (), ri.GetBufferLen ()); // ri1 points to one from netdb now if (!ri1) @@ -1077,12 +1083,6 @@ namespace transport Terminate (); return; } - if (ri1->GetVersion () < i2p::data::NETDB_MIN_ALLOWED_VERSION && !ri1->IsHighBandwidth ()) - { - LogPrint (eLogInfo, "NTCP2: Router version ", ri1->GetVersion (), " is too old in SessionConfirmed"); - SendTerminationAndTerminate (eNTCP2Banned); - return; - } // TODO: process options block // ready to communicate diff --git a/libi2pd/SSU2Session.cpp b/libi2pd/SSU2Session.cpp index a71315bc..91ceb28b 100644 --- a/libi2pd/SSU2Session.cpp +++ b/libi2pd/SSU2Session.cpp @@ -1177,6 +1177,11 @@ namespace transport LogPrint (eLogError, "SSU2: RouterInfo in SessionConfirmed is from future for ", (ri->GetTimestamp () - ts)/1000LL, " seconds"); return false; } + if (ri->GetVersion () < i2p::data::NETDB_MIN_ALLOWED_VERSION && !ri->IsHighBandwidth ()) + { + LogPrint (eLogInfo, "SSU2: Router version ", ri->GetVersion (), " is too old in SessionConfirmed"); + return false; + } // update RouterInfo in netdb auto ri1 = i2p::data::netdb.AddRouterInfo (ri->GetBuffer (), ri->GetBufferLen ()); // ri points to one from netdb now if (!ri1) @@ -1227,11 +1232,6 @@ namespace transport i2p::transport::transports.AddBan (m_RemoteEndpoint.address ()); return false; } - if (ri->GetVersion () < i2p::data::NETDB_MIN_ALLOWED_VERSION && !ri->IsHighBandwidth ()) - { - LogPrint (eLogInfo, "SSU2: Router version ", ri->GetVersion (), " is too old in SessionConfirmed"); - return false; - } if (!m_Address->published) { if (ri->HasProfile ())