Remove [dns]:local-dns in favor of [dns]:bind

pull/1246/head
Stephen Shelton 4 years ago committed by Jeff Becker
parent 779658edd0
commit 2bc908cd40
No known key found for this signature in database
GPG Key ID: F357B3B42F6F9B05

@ -177,27 +177,25 @@ namespace llarp
{ {
(void)params; (void)params;
// TODO: make sure this is documented auto parseAddr = [](std::string input) {
// TODO: refactor to remove freehand options map Addr addr;
conf.defineOption<std::string>("dns", "upstream", false, true, "", [this](std::string arg) { bool success = addr.from_char_array(input);
m_options.emplace("upstream", std::move(arg)); if (not success)
}); throw std::invalid_argument(stringify(input, " is not a valid address"));
// TODO: the m_options is fixed in another branch/PR, this will conflict when merged // default port if it wasn't specified
// you're welcome if (input.find(":") == std::string::npos)
addr.port(53);
// TODO: make sure this is documented return addr;
conf.defineOption<std::string>("dns", "local-dns", false, true, "", [this](std::string arg) { };
m_options.emplace("local-dns", arg);
m_options.emplace("bind", arg);
});
// TODO: we'll only support "bind" going forward, for now make sure bind and local-dns are conf.defineOption<std::string>("dns", "upstream-dns", true, "", [=](std::string arg) {
// equivalent m_upstreamDNS.push_back(parseAddr(arg));
conf.defineOption<std::string>("dns", "bind", false, true, "", [this](std::string arg) {
m_options.emplace("local-dns", arg);
m_options.emplace("bind", arg);
}); });
conf.defineOption<std::string>(
"dns", "bind", false, "", [=](std::string arg) { m_bind = parseAddr(arg); });
} }
LinksConfig::LinkInfo LinksConfig::LinkInfo
@ -756,9 +754,9 @@ namespace llarp
def.addOptionComments( def.addOptionComments(
"dns", "dns",
"upstream", "upstream-dns",
{ {
"Upstream resolver to use as fallback for non-loki addresses.", "Upstream resolver(s) to use as fallback for non-loki addresses.",
"Multiple values accepted.", "Multiple values accepted.",
}); });

@ -82,10 +82,8 @@ namespace llarp
struct DnsConfig struct DnsConfig
{ {
std::string m_localDNS; Addr m_bind;
std::string m_upstreamDNS; std::vector<Addr> m_upstreamDNS;
FreehandOptions m_options;
void void
defineConfigOptions(ConfigDefinition& conf, const ConfigGenParameters& params); defineConfigOptions(ConfigDefinition& conf, const ConfigGenParameters& params);

@ -541,21 +541,8 @@ namespace llarp
} }
*/ */
// TODO: parse this in config, use a proper type for addr+port m_LocalResolverAddr = dnsConfig.m_bind;
auto parseAddr = [](std::string input) { m_UpstreamResolvers = dnsConfig.m_upstreamDNS;
uint16_t port = 53;
auto pos = input.find(":");
if (pos != std::string::npos)
{
input = input.substr(0, pos);
port = std::atoi(input.substr(pos + 1).c_str());
}
return Addr(input, port);
};
m_LocalResolverAddr = parseAddr(dnsConfig.m_localDNS);
m_UpstreamResolvers.push_back(parseAddr(dnsConfig.m_upstreamDNS));
if (!m_OurRange.FromString(networkConfig.m_ifaddr)) if (!m_OurRange.FromString(networkConfig.m_ifaddr))
{ {
@ -568,7 +555,6 @@ namespace llarp
{ {
throw std::invalid_argument( throw std::invalid_argument(
stringify(Name(), " ifaddr is not a cidr: ", networkConfig.m_ifaddr)); stringify(Name(), " ifaddr is not a cidr: ", networkConfig.m_ifaddr));
return false;
} }
std::string nmask_str = networkConfig.m_ifaddr.substr(1 + pos); std::string nmask_str = networkConfig.m_ifaddr.substr(1 + pos);
std::string host_str = networkConfig.m_ifaddr.substr(0, pos); std::string host_str = networkConfig.m_ifaddr.substr(0, pos);
@ -592,8 +578,8 @@ namespace llarp
if (networkConfig.m_ifname.length() >= sizeof(m_Tun.ifname)) if (networkConfig.m_ifname.length() >= sizeof(m_Tun.ifname))
{ {
LogError(Name() + " ifname '", networkConfig.m_ifname, "' is too long"); throw std::invalid_argument(
return false; stringify(Name() + " ifname '", networkConfig.m_ifname, "' is too long"));
} }
strncpy(m_Tun.ifname, networkConfig.m_ifname.c_str(), sizeof(m_Tun.ifname) - 1); strncpy(m_Tun.ifname, networkConfig.m_ifname.c_str(), sizeof(m_Tun.ifname) - 1);
LogInfo(Name(), " set ifname to ", m_Tun.ifname); LogInfo(Name(), " set ifname to ", m_Tun.ifname);

@ -602,10 +602,6 @@ namespace llarp
conf->router.m_nickname, conf->router.m_nickname,
diskworker()); diskworker());
// TODO: clean this up. it appears that we're dumping the [dns] "options" into the
// [network] "options"
conf->network.m_options.insert(conf->dns.m_options.begin(), conf->dns.m_options.end());
return true; return true;
} }
@ -864,9 +860,6 @@ namespace llarp
if (networkConfig.m_ifaddr.empty()) if (networkConfig.m_ifaddr.empty())
networkConfig.m_ifaddr = llarp::FindFreeRange(); networkConfig.m_ifaddr = llarp::FindFreeRange();
if (dnsConfig.m_localDNS.empty())
dnsConfig.m_localDNS = "127.0.0.1:53";
} }
bool bool

Loading…
Cancel
Save