|
|
|
@ -375,17 +375,17 @@ namespace llarp
|
|
|
|
|
|
|
|
|
|
void
|
|
|
|
|
Router::ForEachPeer(
|
|
|
|
|
std::function< void(const ILinkSession *, bool) > visit) const
|
|
|
|
|
std::function< void(const ILinkSession *, bool) > visit, bool randomize) const
|
|
|
|
|
{
|
|
|
|
|
for(const auto &link : outboundLinks)
|
|
|
|
|
{
|
|
|
|
|
link->ForEachSession(
|
|
|
|
|
[visit](const ILinkSession *peer) { visit(peer, true); });
|
|
|
|
|
[visit](const ILinkSession *peer) { visit(peer, true); }, randomize);
|
|
|
|
|
}
|
|
|
|
|
for(const auto &link : inboundLinks)
|
|
|
|
|
{
|
|
|
|
|
link->ForEachSession(
|
|
|
|
|
[visit](const ILinkSession *peer) { visit(peer, false); });
|
|
|
|
|
[visit](const ILinkSession *peer) { visit(peer, false); }, randomize);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -1044,6 +1044,17 @@ namespace llarp
|
|
|
|
|
ep->LookupRouterAnon(remote);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
bool
|
|
|
|
|
Router::IsBootstrapNode(RouterID r) const
|
|
|
|
|
{
|
|
|
|
|
for(const auto & rc : bootstrapRCList)
|
|
|
|
|
{
|
|
|
|
|
if(rc.pubkey == r)
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void
|
|
|
|
|
Router::Tick()
|
|
|
|
|
{
|
|
|
|
@ -1132,11 +1143,14 @@ namespace llarp
|
|
|
|
|
else
|
|
|
|
|
LogError("we have no bootstrap nodes specified");
|
|
|
|
|
}
|
|
|
|
|
if(connected < minConnectedRouters)
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
size_t dlt = minConnectedRouters - connected;
|
|
|
|
|
LogInfo("connecting to ", dlt, " random routers to keep alive");
|
|
|
|
|
ConnectToRandomRouters(dlt);
|
|
|
|
|
if(connected < minConnectedRouters)
|
|
|
|
|
{
|
|
|
|
|
size_t dlt = minConnectedRouters - connected;
|
|
|
|
|
LogInfo("connecting to ", dlt, " random routers to keep alive");
|
|
|
|
|
ConnectToRandomRouters(dlt);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if(!IsServiceNode())
|
|
|
|
|