Merge pull request #7333

b5667c9 p2p: allow CIDR notation in DNS blocklist (moneromooo-monero)
remotes/1691602464505633909/tmp_refs/heads/wonerujo-v0.10.1
luigi1111 3 years ago
commit aa408d1c72
No known key found for this signature in database
GPG Key ID: F4ACA0183641E010

@ -2027,15 +2027,24 @@ namespace nodetool
boost::split(ips, record, boost::is_any_of(";")); boost::split(ips, record, boost::is_any_of(";"));
for (const auto &ip: ips) for (const auto &ip: ips)
{ {
if (ip.empty())
continue;
auto subnet = net::get_ipv4_subnet_address(ip);
if (subnet)
{
block_subnet(*subnet, DNS_BLOCKLIST_LIFETIME);
++good;
continue;
}
const expect<epee::net_utils::network_address> parsed_addr = net::get_network_address(ip, 0); const expect<epee::net_utils::network_address> parsed_addr = net::get_network_address(ip, 0);
if (!parsed_addr) if (parsed_addr)
{ {
MWARNING("Invalid IP address from DNS blocklist: " << ip << " - " << parsed_addr.error()); block_host(*parsed_addr, DNS_BLOCKLIST_LIFETIME, true);
++bad; ++good;
continue; continue;
} }
block_host(*parsed_addr, DNS_BLOCKLIST_LIFETIME, true); MWARNING("Invalid IP address or subnet from DNS blocklist: " << ip << " - " << parsed_addr.error());
++good; ++bad;
} }
} }
if (good > 0) if (good > 0)

Loading…
Cancel
Save