mirror of
https://github.com/rakshasa/rtorrent.git
synced 2026-08-12 13:12:32 +00:00
Added 'network.bind_address.ipv{4,6}.set' commands.
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -62,6 +62,8 @@ public:
|
||||
void listen_open();
|
||||
|
||||
void set_bind_address(const std::string& addr);
|
||||
void set_bind_inet_address(const std::string& addr);
|
||||
void set_bind_inet6_address(const std::string& addr);
|
||||
void set_local_address(const std::string& addr);
|
||||
void set_proxy_address(const std::string& addr);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user