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;
// TODO: make sure this is documented
// TODO: refactor to remove freehand options map
conf.defineOption<std::string>("dns", "upstream", false, true, "", [this](std::string arg) {
m_options.emplace("upstream", std::move(arg));
});
auto parseAddr = [](std::string input) {
Addr addr;
bool success = addr.from_char_array(input);
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
// you're welcome
// default port if it wasn't specified
if (input.find(":") == std::string::npos)
addr.port(53);
// TODO: make sure this is documented
conf.defineOption<std::string>("dns", "local-dns", false, true, "", [this](std::string arg) {
m_options.emplace("local-dns", arg);
m_options.emplace("bind", arg);
});
return addr;
};
// TODO: we'll only support "bind" going forward, for now make sure bind and local-dns are
// equivalent
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", "upstream-dns", true, "", [=](std::string arg) {
m_upstreamDNS.push_back(parseAddr(arg));
});
conf.defineOption<std::string>(
"dns", "bind", false, "", [=](std::string arg) { m_bind = parseAddr(arg); });
}
LinksConfig::LinkInfo
@ -756,9 +754,9 @@ namespace llarp
def.addOptionComments(
"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.",
});

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

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

@ -602,10 +602,6 @@ namespace llarp
conf->router.m_nickname,
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;
}
@ -864,9 +860,6 @@ namespace llarp
if (networkConfig.m_ifaddr.empty())
networkConfig.m_ifaddr = llarp::FindFreeRange();
if (dnsConfig.m_localDNS.empty())
dnsConfig.m_localDNS = "127.0.0.1:53";
}
bool

Loading…
Cancel
Save