remote lookup limiting of 500ms per address

pull/1151/head
Jeff Becker 4 years ago
parent a09bb89d15
commit 79746e3719
No known key found for this signature in database
GPG Key ID: F357B3B42F6F9B05

@ -184,6 +184,8 @@ namespace llarp
RegenAndPublishIntroSet();
}
m_state->m_RemoteLookupFilter.Decay(now);
// expire snode sessions
EndpointUtil::ExpireSNodeSessions(now, m_state->m_SNodeSessions);
// expire pending tx
@ -418,6 +420,7 @@ namespace llarp
bool
Endpoint::Start()
{
m_state->m_RemoteLookupFilter.DecayInterval(500ms);
// how can I tell if a m_Identity isn't loaded?
if(!m_DataHandler)
{
@ -986,8 +989,10 @@ namespace llarp
Endpoint::EnsurePathToService(const Address remote, PathEnsureHook hook,
llarp_time_t /*timeoutMS*/)
{
/// how many routers to use for lookups
static constexpr size_t NumParallelLookups = 2;
static constexpr size_t RequestsPerLookup = 2;
/// how many requests per router
static constexpr size_t RequestsPerLookup = 2;
LogInfo(Name(), " Ensure Path to ", remote.ToString());
MarkAddressOutbound(remote);
@ -1003,6 +1008,10 @@ namespace llarp
}
}
// filter check for address
if(m_state->m_RemoteLookupFilter.Insert(remote))
return false;
auto& lookups = m_state->m_PendingServiceLookups;
const auto paths =

@ -98,6 +98,8 @@ namespace llarp
std::unordered_map< Tag, CachedTagResult, Tag::Hash > m_PrefetchedTags;
util::DecayingHashSet< Address > m_RemoteLookupFilter;
bool
SetOption(const std::string& k, const std::string& v, Endpoint& ep);

@ -88,7 +88,7 @@ namespace llarp
void
EndpointUtil::TickRemoteSessions(llarp_time_t now, Sessions& remoteSessions,
Sessions& deadSessions, ConvoMap & sessions)
Sessions& deadSessions, ConvoMap& sessions)
{
auto itr = remoteSessions.begin();
while(itr != remoteSessions.end())

@ -23,7 +23,7 @@ namespace llarp
static void
TickRemoteSessions(llarp_time_t now, Sessions& remoteSessions,
Sessions& deadSessions, ConvoMap & sessions);
Sessions& deadSessions, ConvoMap& sessions);
static void
ExpireConvoSessions(llarp_time_t now, ConvoMap& sessions);

Loading…
Cancel
Save