diff options
| author | tobtoht <tob@featherwallet.org> | 2025-02-15 04:48:18 +0000 |
|---|---|---|
| committer | tobtoht <tob@featherwallet.org> | 2025-02-15 04:48:18 +0000 |
| commit | be0efaf7f6a97d437381b7988f6dfcedb89cb4af (patch) | |
| tree | 7aa82581901a978c3c7ba3b0f50ac8c84f753945 /src/p2p | |
| parent | 23a11d851adef30aea1888da0a7dd23936c81ec1 (diff) | |
| parent | 01bcd52924244ec8d2a24c10fcef8959289d09ff (diff) | |
| download | monzero-core-be0efaf7f6a97d437381b7988f6dfcedb89cb4af.tar.gz monzero-core-be0efaf7f6a97d437381b7988f6dfcedb89cb4af.tar.xz monzero-core-be0efaf7f6a97d437381b7988f6dfcedb89cb4af.zip | |
Merge pull request #9800
01bcd5292 Fix build with boost ASIO 0.87. Support boost 1.66+ (Lee *!* Clagett)
Diffstat (limited to 'src/p2p')
| -rw-r--r-- | src/p2p/net_node.cpp | 2 | ||||
| -rw-r--r-- | src/p2p/net_node.h | 6 | ||||
| -rw-r--r-- | src/p2p/net_node.inl | 26 |
3 files changed, 16 insertions, 18 deletions
diff --git a/src/p2p/net_node.cpp b/src/p2p/net_node.cpp index 2085b38ee..4111b0b71 100644 --- a/src/p2p/net_node.cpp +++ b/src/p2p/net_node.cpp @@ -327,7 +327,7 @@ namespace nodetool } boost::optional<boost::asio::ip::tcp::socket> - socks_connect_internal(const std::atomic<bool>& stop_signal, boost::asio::io_service& service, const boost::asio::ip::tcp::endpoint& proxy, const epee::net_utils::network_address& remote) + socks_connect_internal(const std::atomic<bool>& stop_signal, boost::asio::io_context& service, const boost::asio::ip::tcp::endpoint& proxy, const epee::net_utils::network_address& remote) { using socket_type = net::socks::client::stream_type::socket; using client_result = std::pair<boost::system::error_code, socket_type>; diff --git a/src/p2p/net_node.h b/src/p2p/net_node.h index cbdeef7e3..5f471ad55 100644 --- a/src/p2p/net_node.h +++ b/src/p2p/net_node.h @@ -31,7 +31,7 @@ #pragma once #include <array> #include <atomic> -#include <boost/asio/io_service.hpp> +#include <boost/asio/io_context.hpp> #include <boost/asio/ip/tcp.hpp> #include <boost/thread.hpp> #include <boost/optional/optional_fwd.hpp> @@ -104,7 +104,7 @@ namespace nodetool // hides boost::future and chrono stuff from mondo template file boost::optional<boost::asio::ip::tcp::socket> - socks_connect_internal(const std::atomic<bool>& stop_signal, boost::asio::io_service& service, const boost::asio::ip::tcp::endpoint& proxy, const epee::net_utils::network_address& remote); + socks_connect_internal(const std::atomic<bool>& stop_signal, boost::asio::io_context& service, const boost::asio::ip::tcp::endpoint& proxy, const epee::net_utils::network_address& remote); template<class base_type> @@ -181,7 +181,7 @@ namespace nodetool set_config_defaults(); } - network_zone(boost::asio::io_service& public_service) + network_zone(boost::asio::io_context& public_service) : m_connect(nullptr), m_net_server(public_service, epee::net_utils::e_connection_type_P2P), m_seed_nodes(), diff --git a/src/p2p/net_node.inl b/src/p2p/net_node.inl index e1a1db9a8..884a7b5fc 100644 --- a/src/p2p/net_node.inl +++ b/src/p2p/net_node.inl @@ -87,7 +87,7 @@ namespace nodetool template<class t_payload_net_handler> node_server<t_payload_net_handler>::~node_server() { - // tcp server uses io_service in destructor, and every zone uses + // tcp server uses io_context in destructor, and every zone uses // io_service from public zone. for (auto current = m_network_zones.begin(); current != m_network_zones.end(); /* below */) { @@ -476,7 +476,7 @@ namespace nodetool m_use_ipv6 = command_line::get_arg(vm, arg_p2p_use_ipv6); m_require_ipv4 = !command_line::get_arg(vm, arg_p2p_ignore_ipv4); public_zone.m_notifier = cryptonote::levin::notify{ - public_zone.m_net_server.get_io_service(), public_zone.m_net_server.get_config_shared(), nullptr, epee::net_utils::zone::public_, pad_txs, m_payload_handler.get_core() + public_zone.m_net_server.get_io_context(), public_zone.m_net_server.get_config_shared(), nullptr, epee::net_utils::zone::public_, pad_txs, m_payload_handler.get_core() }; if (command_line::has_arg(vm, arg_p2p_add_peer)) @@ -639,7 +639,7 @@ namespace nodetool } zone.m_notifier = cryptonote::levin::notify{ - zone.m_net_server.get_io_service(), zone.m_net_server.get_config_shared(), std::move(this_noise), proxy.zone, pad_txs, m_payload_handler.get_core() + zone.m_net_server.get_io_context(), zone.m_net_server.get_config_shared(), std::move(this_noise), proxy.zone, pad_txs, m_payload_handler.get_core() }; } @@ -701,20 +701,18 @@ namespace nodetool net::get_network_address_host_and_port(addr, host, port); MINFO("Resolving node address: host=" << host << ", port=" << port); - io_service io_srv; - ip::tcp::resolver resolver(io_srv); - ip::tcp::resolver::query query(host, port, boost::asio::ip::tcp::resolver::query::canonical_name); boost::system::error_code ec; - ip::tcp::resolver::iterator i = resolver.resolve(query, ec); - CHECK_AND_ASSERT_MES(!ec, false, "Failed to resolve host name '" << host << "': " << ec.message() << ':' << ec.value()); + io_context io_srv; + ip::tcp::resolver resolver(io_srv); + const auto results = resolver.resolve(host, port, boost::asio::ip::tcp::resolver::canonical_name, ec); + CHECK_AND_ASSERT_MES(!ec && !results.empty(), false, "Failed to resolve host name '" << host << "': " << ec.message() << ':' << ec.value()); - ip::tcp::resolver::iterator iend; - for (; i != iend; ++i) + for (const auto& result : results) { - ip::tcp::endpoint endpoint = *i; + const auto& endpoint = result.endpoint(); if (endpoint.address().is_v4()) { - epee::net_utils::network_address na{epee::net_utils::ipv4_network_address{boost::asio::detail::socket_ops::host_to_network_long(endpoint.address().to_v4().to_ulong()), endpoint.port()}}; + epee::net_utils::network_address na{epee::net_utils::ipv4_network_address{boost::asio::detail::socket_ops::host_to_network_long(endpoint.address().to_v4().to_uint()), endpoint.port()}}; seed_nodes.push_back(na); MINFO("Added node: " << na.str()); } @@ -924,7 +922,7 @@ namespace nodetool return zone_->second; network_zone& public_zone = m_network_zones[epee::net_utils::zone::public_]; - return m_network_zones.emplace_hint(zone_, std::piecewise_construct, std::make_tuple(zone), std::tie(public_zone.m_net_server.get_io_service()))->second; + return m_network_zones.emplace_hint(zone_, std::piecewise_construct, std::make_tuple(zone), std::tie(public_zone.m_net_server.get_io_context()))->second; } //----------------------------------------------------------------------------------- template<class t_payload_net_handler> @@ -3129,7 +3127,7 @@ namespace nodetool boost::optional<p2p_connection_context_t<typename t_payload_net_handler::connection_context>> node_server<t_payload_net_handler>::socks_connect(network_zone& zone, const epee::net_utils::network_address& remote, epee::net_utils::ssl_support_t ssl_support) { - auto result = socks_connect_internal(zone.m_net_server.get_stop_signal(), zone.m_net_server.get_io_service(), zone.m_proxy_address, remote); + auto result = socks_connect_internal(zone.m_net_server.get_stop_signal(), zone.m_net_server.get_io_context(), zone.m_proxy_address, remote); if (result) // if no error { p2p_connection_context context{}; |
