fix random.snode

pull/271/head
Ryan Tharp 5 years ago
parent 506a1f8ae6
commit 54549724d0

@ -199,6 +199,7 @@ namespace llarp
TunEndpoint::HandleHookedDNSMessage(
dns::Message &&msg, std::function< void(dns::Message) > reply)
{
//llarp::LogInfo("Tun.HandleHookedDNSMessage ", msg.questions[0].qname);
if(msg.questions.size() != 1)
{
llarp::LogWarn("bad number of dns questions: ", msg.questions.size());
@ -247,8 +248,17 @@ namespace llarp
else if(msg.questions[0].qtype == dns::qTypeA)
{
llarp::service::Address addr;
// forward dns
if(msg.questions[0].qname == "localhost.loki"
// on MacOS this is a typeA query
if(msg.questions[0].qname == "random.snode"
|| msg.questions[0].qname == "random.snode.")
{
RouterID random;
if(Router()->GetRandomGoodRouter(random))
msg.AddCNAMEReply(random.ToString(), 1);
else
msg.AddNXReply();
}
else if(msg.questions[0].qname == "localhost.loki"
|| msg.questions[0].qname == "localhost.loki.")
{
size_t counter = 0;
@ -290,6 +300,7 @@ namespace llarp
msg.AddINReply(ip);
}
else
// forward dns
msg.AddNXReply();
reply(msg);

Loading…
Cancel
Save