permit no upstream resolvers and send servfail if we have none

pull/489/head
Jeff Becker 5 years ago
parent 2f2b841c67
commit 1922221c3d
No known key found for this signature in database
GPG Key ID: F357B3B42F6F9B05

@ -30,11 +30,6 @@ namespace llarp
{
m_Resolvers.clear();
m_Resolvers = resolvers;
if(m_Resolvers.size() == 0)
{
llarp::LogError("no upstream dns provide specified");
return false;
}
llarp::Addr any("0.0.0.0", 0);
return llarp_ev_add_udp(m_Loop, &m_Server, addr) == 0
&& llarp_ev_add_udp(m_Loop, &m_Client, any) == 0;
@ -57,10 +52,8 @@ namespace llarp
llarp::Addr
Proxy::PickRandomResolver() const
{
size_t sz = m_Resolvers.size();
if(sz == 0)
return llarp::Addr("8.8.8.8", 53);
if(sz == 1)
const size_t sz = m_Resolvers.size();
if(sz <= 1)
return m_Resolvers[0];
auto itr = m_Resolvers.begin();
std::advance(itr, llarp::randint() % sz);
@ -140,6 +133,13 @@ namespace llarp
}
return;
}
else if(m_Resolvers.size() == 0)
{
// no upstream resolvers
// let's serv fail it
msg.AddServFail();
SendMessageTo(from, msg);
}
else if(itr == m_Forwarded.end())
{
// new forwarded query

Loading…
Cancel
Save