Added 'network.bind_address.ipv{4,6}.set' commands.

This commit is contained in:
Jari Sundell
2025-10-04 13:24:08 +02:00
committed by GitHub
parent 946dc54f9b
commit bf53700f97
5 changed files with 51 additions and 2 deletions
+38
View File
@@ -216,6 +216,44 @@ Manager::set_bind_address(const std::string& addr) {
}
}
void
Manager::set_bind_inet_address(const std::string& addr) {
int err;
rak::address_info* ai;
if ((err = rak::address_info::get_address_info(addr.c_str(), PF_INET, SOCK_STREAM, &ai)) != 0)
throw torrent::input_error("Could not set bind inet6 address: " + std::string(rak::address_info::strerror(err)) + ".");
try {
torrent::config::network_config()->set_bind_inet_address(ai->c_addrinfo()->ai_addr);
rak::address_info::free_address_info(ai);
} catch (torrent::input_error& e) {
rak::address_info::free_address_info(ai);
throw e;
}
}
void
Manager::set_bind_inet6_address(const std::string& addr) {
int err;
rak::address_info* ai;
if ((err = rak::address_info::get_address_info(addr.c_str(), PF_INET6, SOCK_STREAM, &ai)) != 0)
throw torrent::input_error("Could not set bind inet6 address: " + std::string(rak::address_info::strerror(err)) + ".");
try {
torrent::config::network_config()->set_bind_inet6_address(ai->c_addrinfo()->ai_addr);
rak::address_info::free_address_info(ai);
} catch (torrent::input_error& e) {
rak::address_info::free_address_info(ai);
throw e;
}
}
void
Manager::set_local_address(const std::string& addr) {
int err;