exclude routers from the same family from next hop

This commit is contained in:
orignal
2026-03-29 11:20:41 -04:00
parent ea27bd2fe3
commit e6d6699dfb
3 changed files with 4 additions and 8 deletions
+2 -2
View File
@@ -1155,7 +1155,7 @@ namespace data
router->IsReachableFrom (*compatibleWith)) && !router->IsNAT2NATOnly (*compatibleWith) &&
router->GetVersion () >= NETDB_MIN_ALLOWED_VERSION &&
router->IsECIES () && !router->IsHighCongestion (clientTunnel) &&
(!i2p::transport::transports.IsCheckReserved () || !router->IsSameSubnet (*compatibleWith)) &&
(!i2p::transport::transports.IsCheckReserved () || (!router->IsSameFamily (*compatibleWith) && !router->IsSameSubnet (*compatibleWith))) &&
(!checkIsReal || router->GetProfile ()->IsReal ()) &&
(!endpoint || (router->IsV4 () && (!reverse || router->IsPublished (true)))); // endpoint must be ipv4 and published if inbound(reverse)
});
@@ -1195,7 +1195,7 @@ namespace data
(router->GetCaps () & RouterInfo::eHighBandwidth) &&
router->GetVersion () >= NETDB_MIN_HIGHBANDWIDTH_VERSION &&
router->IsECIES () && !router->IsHighCongestion (true) &&
(!i2p::transport::transports.IsCheckReserved () || !router->IsSameSubnet (*compatibleWith)) &&
(!i2p::transport::transports.IsCheckReserved () || (!router->IsSameFamily (*compatibleWith) && !router->IsSameSubnet (*compatibleWith))) &&
(!checkIsReal || router->GetProfile ()->IsReal ()) &&
(!endpoint || (router->IsV4 () && (!reverse || router->IsPublished (true)))); // endpoint must be ipv4 and published if inbound(reverse)
-5
View File
@@ -511,11 +511,6 @@ namespace data
return true;
}
bool RouterInfo::IsFamily (FamilyID famid) const
{
return m_FamilyID == famid;
}
void RouterInfo::ExtractCaps (std::string_view value)
{
for (auto cap: value)
+2 -1
View File
@@ -322,7 +322,8 @@ namespace data
bool IsNewer (const uint8_t * buf, size_t len) const;
/** return true if we are in a router family and the signature is valid */
bool IsFamily (FamilyID famid) const;
bool IsFamily (FamilyID famid) const { return m_FamilyID && m_FamilyID == famid; };
bool IsSameFamily (const RouterInfo& other) const { return IsFamily (other.m_FamilyID); };
// implements RoutingDestination
std::shared_ptr<const IdentityEx> GetIdentity () const { return m_RouterIdentity; };