ban lists may now include subnets

remotes/1691602464505633909/tmp_refs/heads/wonerujo-v0.10.1
moneromooo-monero 3 years ago
parent ee8d740cba
commit e35bbb1e88
No known key found for this signature in database
GPG Key ID: 686F07454D6CEFC3

@ -620,13 +620,19 @@ bool t_command_parser_executor::ban(const std::vector<std::string>& args)
std::ifstream ifs(ban_list_path.string());
for (std::string line; std::getline(ifs, line); )
{
auto subnet = net::get_ipv4_subnet_address(line);
if (subnet)
{
ret &= m_executor.ban(subnet->str(), seconds);
continue;
}
const expect<epee::net_utils::network_address> parsed_addr = net::get_network_address(line, 0);
if (!parsed_addr)
if (parsed_addr)
{
std::cout << "Invalid IP address: " << line << " - " << parsed_addr.error() << std::endl;
ret &= m_executor.ban(parsed_addr->host_str(), seconds);
continue;
}
ret &= m_executor.ban(parsed_addr->host_str(), seconds);
std::cout << "Invalid IP address or IPv4 subnet: " << line << std::endl;
}
return ret;
}

@ -481,13 +481,19 @@ namespace nodetool
std::istringstream iss(banned_ips);
for (std::string line; std::getline(iss, line); )
{
auto subnet = net::get_ipv4_subnet_address(line);
if (subnet)
{
block_subnet(*subnet, std::numeric_limits<time_t>::max());
continue;
}
const expect<epee::net_utils::network_address> parsed_addr = net::get_network_address(line, 0);
if (!parsed_addr)
if (parsed_addr)
{
MERROR("Invalid IP address: " << line << " - " << parsed_addr.error());
block_host(*parsed_addr, std::numeric_limits<time_t>::max());
continue;
}
block_host(*parsed_addr, std::numeric_limits<time_t>::max());
MERROR("Invalid IP address or IPv4 subnet: " << line);
}
}

Loading…
Cancel
Save