mirror of https://github.com/oxen-io/lokinet
don't connect to explored routers
This commit is contained in:
parent
ae1a81a767
commit
10c2d1552d
|
@ -77,9 +77,8 @@ namespace llarp
|
|||
llarp::LogInfo("got ", valuesFound.size(), " routers from exploration");
|
||||
for(const auto &pk : valuesFound)
|
||||
{
|
||||
// try connecting to it we don't know it
|
||||
// this triggers a dht lookup
|
||||
parent->router->TryEstablishTo(pk);
|
||||
// lookup router
|
||||
parent->LookupRouter(pk, std::bind(&llarp_router::HandleDHTLookupForExplore, parent->router, pk, std::placeholders::_1));
|
||||
}
|
||||
}
|
||||
};
|
||||
|
|
|
@ -438,6 +438,24 @@ llarp_router::ConnectionToRouterAllowed(const llarp::RouterID & router) const
|
|||
return true;
|
||||
}
|
||||
|
||||
void
|
||||
llarp_router::HandleDHTLookupForExplore(llarp::RouterID remote, const std::vector< llarp::RouterContact > &results)
|
||||
{
|
||||
if(results.size() == 0)
|
||||
return;
|
||||
for(const auto & rc: results)
|
||||
{
|
||||
if(rc.Verify(&crypto))
|
||||
llarp_nodedb_put_rc(nodedb, rc);
|
||||
else
|
||||
return;
|
||||
}
|
||||
if(ConnectionToRouterAllowed(remote))
|
||||
{
|
||||
TryEstablishTo(remote);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
llarp_router::TryEstablishTo(const llarp::RouterID &remote)
|
||||
{
|
||||
|
|
|
@ -213,6 +213,8 @@ struct llarp_router
|
|||
void
|
||||
PersistSessionUntil(const llarp::RouterID &remote, llarp_time_t until);
|
||||
|
||||
|
||||
|
||||
bool
|
||||
EnsureIdentity();
|
||||
|
||||
|
@ -269,6 +271,9 @@ struct llarp_router
|
|||
void
|
||||
TryEstablishTo(const llarp::RouterID &remote);
|
||||
|
||||
void
|
||||
HandleDHTLookupForExplore(llarp::RouterID remote, const std::vector< llarp::RouterContact > &results);
|
||||
|
||||
void
|
||||
ForEachPeer(
|
||||
std::function< void(const llarp::ILinkSession *, bool) > visit) const;
|
||||
|
|
Loading…
Reference in New Issue