mirror of
https://github.com/monero-project/monero.git
synced 2026-01-10 20:23:44 -08:00
wallet2_api: implement runtime proxy configuration
This commit is contained in:
@@ -122,4 +122,39 @@ namespace net
|
||||
|
||||
return {epee::net_utils::ipv4_network_subnet{ip, (uint8_t)mask}};
|
||||
}
|
||||
|
||||
expect<boost::asio::ip::tcp::endpoint> get_tcp_endpoint(const boost::string_ref address)
|
||||
{
|
||||
uint16_t port = 0;
|
||||
expect<epee::net_utils::network_address> parsed = get_network_address(address, port);
|
||||
if (!parsed)
|
||||
{
|
||||
return parsed.error();
|
||||
}
|
||||
|
||||
boost::asio::ip::tcp::endpoint result;
|
||||
switch (parsed->get_type_id())
|
||||
{
|
||||
case epee::net_utils::ipv4_network_address::get_type_id():
|
||||
{
|
||||
const auto &ipv4 = parsed->as<epee::net_utils::ipv4_network_address>();
|
||||
result = boost::asio::ip::tcp::endpoint(boost::asio::ip::address_v4(ipv4.ip()), ipv4.port());
|
||||
break;
|
||||
}
|
||||
case epee::net_utils::ipv6_network_address::get_type_id():
|
||||
{
|
||||
const auto &ipv6 = parsed->as<epee::net_utils::ipv6_network_address>();
|
||||
result = boost::asio::ip::tcp::endpoint(ipv6.ip(), ipv6.port());
|
||||
break;
|
||||
}
|
||||
default:
|
||||
return make_error_code(net::error::unsupported_address);
|
||||
}
|
||||
if (result.port() == 0)
|
||||
{
|
||||
return make_error_code(net::error::invalid_port);
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user