mirror of
https://github.com/oxen-io/lokinet
synced 2023-12-14 06:53:00 +01:00
try fixing dns issue with random.snode
This commit is contained in:
parent
279983019c
commit
c1e4e715bb
|
@ -45,6 +45,7 @@ namespace llarp
|
|||
{
|
||||
if(msg.questions.size() == 0)
|
||||
return false;
|
||||
// always hook ptr for ranges we own
|
||||
if(msg.questions[0].qtype == dns::qTypePTR)
|
||||
{
|
||||
huint32_t ip;
|
||||
|
@ -52,8 +53,10 @@ namespace llarp
|
|||
return false;
|
||||
return m_OurRange.Contains(ip);
|
||||
}
|
||||
else if(msg.questions[0].qtype == dns::qTypeA)
|
||||
else if(msg.questions[0].qtype == dns::qTypeA
|
||||
|| msg.questions[0].qtype == dns.qTypeCNAME)
|
||||
{
|
||||
// hook for forward dns or cname when using snode tld
|
||||
return msg.questions[0].qname.find(".snode.")
|
||||
== (msg.questions[0].qname.size() - 7);
|
||||
}
|
||||
|
@ -88,6 +91,20 @@ namespace llarp
|
|||
msg.AddNXReply();
|
||||
}
|
||||
}
|
||||
else if(msg.questions[0].qtype == dns::qTypeCNAME)
|
||||
{
|
||||
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
|
||||
msg.AddNXReply();
|
||||
}
|
||||
else if(msg.questions[0].qtype == dns::qTypeA)
|
||||
{
|
||||
// forward dns for snode
|
||||
|
|
|
@ -202,7 +202,10 @@ namespace llarp
|
|||
return false;
|
||||
}
|
||||
std::string qname = msg.questions[0].qname;
|
||||
if(msg.questions[0].qtype == 15)
|
||||
if(msg.questions[0].qtype == dns::qTypeCNAME)
|
||||
{
|
||||
}
|
||||
else if(msg.questions[0].qtype == dns::qTypeMX)
|
||||
{
|
||||
// mx record
|
||||
llarp::service::Address addr;
|
||||
|
@ -212,7 +215,21 @@ namespace llarp
|
|||
msg.AddNXReply();
|
||||
reply(msg);
|
||||
}
|
||||
else if(msg.questions[0].qtype == 1)
|
||||
else if(msg.questions[0].qtype == dns::qTypeCNAME)
|
||||
{
|
||||
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
|
||||
msg.AddNXReply();
|
||||
}
|
||||
else if(msg.questions[0].qtype == dns::qTypeA)
|
||||
{
|
||||
// forward dns
|
||||
llarp::service::Address addr;
|
||||
|
@ -252,7 +269,7 @@ namespace llarp
|
|||
|
||||
reply(msg);
|
||||
}
|
||||
else if(msg.questions[0].qtype == 12)
|
||||
else if(msg.questions[0].qtype == dns::qTypePTR)
|
||||
{
|
||||
// reverse dns
|
||||
huint32_t ip = {0};
|
||||
|
@ -298,6 +315,7 @@ namespace llarp
|
|||
// always hook mx records
|
||||
if(msg.questions[0].qtype == llarp::dns::qTypeMX)
|
||||
return true;
|
||||
// always hook random.snode
|
||||
if(msg.questions[0].qname == "random.snode"
|
||||
|| msg.questions[0].qname == "random.snode.")
|
||||
return true;
|
||||
|
@ -307,6 +325,7 @@ namespace llarp
|
|||
// always hook .snode
|
||||
if(addr.FromString(msg.questions[0].qname, ".snode"))
|
||||
return true;
|
||||
// hook any ranges we own
|
||||
if(msg.questions[0].qtype == llarp::dns::qTypePTR)
|
||||
{
|
||||
huint32_t ip = {0};
|
||||
|
|
Loading…
Reference in a new issue