diff --git a/llarp/config/definition.hpp b/llarp/config/definition.hpp index 063099c02..749389507 100644 --- a/llarp/config/definition.hpp +++ b/llarp/config/definition.hpp @@ -231,7 +231,7 @@ namespace llarp { if (multiValued) { - for (const auto& value : parsedValues) + for (auto value : parsedValues) { acceptor(value); } diff --git a/llarp/dht/messages/gotname.cpp b/llarp/dht/messages/gotname.cpp index a0c30f81a..9bbd05fb5 100644 --- a/llarp/dht/messages/gotname.cpp +++ b/llarp/dht/messages/gotname.cpp @@ -1,5 +1,8 @@ #include #include +#include +#include +#include namespace llarp::dht { @@ -47,9 +50,13 @@ namespace llarp::dht } bool - GotNameMessage::HandleMessage(struct llarp_dht_context*, std::vector&) const + GotNameMessage::HandleMessage(struct llarp_dht_context* ctx, std::vector&) const { - return false; + auto pathset = ctx->impl->GetRouter()->pathContext().GetLocalPathSet(pathID); + if (pathset == nullptr) + return false; + auto copy = std::make_shared(*this); + return pathset->HandleGotNameMessage(copy); } } // namespace llarp::dht diff --git a/llarp/handlers/tun.cpp b/llarp/handlers/tun.cpp index dec25d14f..77d8ecdcd 100644 --- a/llarp/handlers/tun.cpp +++ b/llarp/handlers/tun.cpp @@ -474,14 +474,21 @@ namespace llarp { return LookupNameAsync( qname, - [msg = std::make_shared(msg), isV6, reply, ReplyToLokiDNSWhenReady]( - auto maybe) { + [msg = std::make_shared(msg), + name = Name(), + qname, + isV6, + reply, + ReplyToLokiDNSWhenReady](auto maybe) { if (not maybe.has_value()) { + LogWarn(name, " lns name ", qname, " not resolved"); msg->AddNXReply(); reply(*msg); return; } + LogInfo(name, " ", qname, " resolved to ", maybe->ToString()); + msg->AddCNAMEReply(maybe->ToString()); ReplyToLokiDNSWhenReady(*maybe, msg, isV6); }); } diff --git a/llarp/service/endpoint.cpp b/llarp/service/endpoint.cpp index 08ac56479..0df104efe 100644 --- a/llarp/service/endpoint.cpp +++ b/llarp/service/endpoint.cpp @@ -778,6 +778,7 @@ namespace llarp handler(maybe); return true; } + LogInfo(Name(), " looking up LNS name: ", name); auto path = PickRandomEstablishedPath(); auto job = new LookupNameJob(this, GenTXID(), name, handler); return job->SendRequestViaPath(path, m_router);