diff options
author | moneromooo-monero <moneromooo-monero@users.noreply.github.com> | 2020-12-22 02:11:52 +0000 |
---|---|---|
committer | moneromooo-monero <moneromooo-monero@users.noreply.github.com> | 2020-12-22 02:12:41 +0000 |
commit | 56748e1d746e3aad68eaa9f6a98b4823aa512fd4 (patch) | |
tree | f3b9b8d096340821d5874707b878ac2b042d5df6 /src/daemon | |
parent | Merge pull request #7151 (diff) | |
download | monero-56748e1d746e3aad68eaa9f6a98b4823aa512fd4.tar.xz |
ban lists may now include subnets
Diffstat (limited to 'src/daemon')
-rw-r--r-- | src/daemon/command_parser_executor.cpp | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/src/daemon/command_parser_executor.cpp b/src/daemon/command_parser_executor.cpp index 767ce7bc6..5a7560874 100644 --- a/src/daemon/command_parser_executor.cpp +++ b/src/daemon/command_parser_executor.cpp @@ -694,13 +694,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; } |