find router with specified caps

This commit is contained in:
orignal 2014-03-19 15:58:57 -04:00
parent fb9d351600
commit 59d195c6da
4 changed files with 9 additions and 6 deletions

View file

@ -601,7 +601,7 @@ namespace data
}
}
const RouterInfo * NetDb::GetRandomRouter (const RouterInfo * compatibleWith, bool floodfillOnly) const
const RouterInfo * NetDb::GetRandomRouter (const RouterInfo * compatibleWith, uint8_t caps) const
{
CryptoPP::RandomNumberGenerator& rnd = i2p::context.GetRandomNumberGenerator ();
uint32_t ind = rnd.GenerateWord32 (0, m_RouterInfos.size () - 1);
@ -614,7 +614,7 @@ namespace data
{
if (!it.second->IsUnreachable () &&
(!compatibleWith || it.second->IsCompatible (*compatibleWith)) &&
(!floodfillOnly || it.second->IsFloodfill ()))
(!caps || (it.second->GetCaps () & caps) == caps))
return it.second;
}
else