diff --git a/llarp/service/endpoint.cpp b/llarp/service/endpoint.cpp index 72a0a02cf..6577bc24c 100644 --- a/llarp/service/endpoint.cpp +++ b/llarp/service/endpoint.cpp @@ -1465,7 +1465,7 @@ namespace llarp path->Endpoint(), order, GenTXID(), - timeout + (2 * path->intro.latency)); + timeout + (2 * path->intro.latency) + IntrosetLookupGraceInterval); LogInfo( "doing lookup for ", remote, diff --git a/llarp/service/hidden_service_address_lookup.hpp b/llarp/service/hidden_service_address_lookup.hpp index 2e656a885..164b365d2 100644 --- a/llarp/service/hidden_service_address_lookup.hpp +++ b/llarp/service/hidden_service_address_lookup.hpp @@ -8,6 +8,9 @@ namespace llarp { namespace service { + /// interval for which we will add to lookup timeout interval + constexpr auto IntrosetLookupGraceInterval = 20s; + struct Endpoint; struct HiddenServiceAddressLookup : public IServiceLookup { diff --git a/llarp/service/outbound_context.cpp b/llarp/service/outbound_context.cpp index 71996e12c..5103ae257 100644 --- a/llarp/service/outbound_context.cpp +++ b/llarp/service/outbound_context.cpp @@ -289,7 +289,7 @@ namespace llarp path->Endpoint(), relayOrder, m_Endpoint->GenTXID(), - (IntrosetUpdateInterval / 2) + (2 * path->intro.latency)); + (IntrosetUpdateInterval / 2) + (2 * path->intro.latency) + IntrosetLookupGraceInterval); relayOrder++; if (job->SendRequestViaPath(path, m_Endpoint->Router())) updatingIntroSet = true;