From c494819135b4ccfb93da72629d0614d5617a9568 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Piotr=20Wo=CC=81jcik?= <3044353+pwojcikdev@users.noreply.github.com> Date: Mon, 11 Nov 2024 20:26:53 +0100 Subject: [PATCH] Asio error to stat detail --- nano/lib/stats_enums.hpp | 7 +++++++ nano/node/transport/transport.cpp | 19 +++++++++++++++++++ nano/node/transport/transport.hpp | 5 +++++ 3 files changed, 31 insertions(+) diff --git a/nano/lib/stats_enums.hpp b/nano/lib/stats_enums.hpp index 23c7e819d..31facd4af 100644 --- a/nano/lib/stats_enums.hpp +++ b/nano/lib/stats_enums.hpp @@ -152,6 +152,7 @@ enum class detail sync, requeued, evicted, + other, // processing queue queue, @@ -582,6 +583,12 @@ enum class detail rollback_skipped, loop_scan, + // error codes + no_buffer_space, + timed_out, + host_unreachable, + not_supported, + _last // Must be the last enum }; diff --git a/nano/node/transport/transport.cpp b/nano/node/transport/transport.cpp index 21f5fea04..d142045a2 100644 --- a/nano/node/transport/transport.cpp +++ b/nano/node/transport/transport.cpp @@ -165,3 +165,22 @@ bool nano::transport::reserved_address (nano::endpoint const & endpoint_a, bool } return result; } + +nano::stat::detail nano::to_stat_detail (boost::system::error_code const & ec) +{ + switch (ec.value ()) + { + case boost::system::errc::success: + return nano::stat::detail::success; + case boost::system::errc::no_buffer_space: + return nano::stat::detail::no_buffer_space; + case boost::system::errc::timed_out: + return nano::stat::detail::timed_out; + case boost::system::errc::host_unreachable: + return nano::stat::detail::host_unreachable; + case boost::system::errc::not_supported: + return nano::stat::detail::not_supported; + default: + return nano::stat::detail::other; + } +} diff --git a/nano/node/transport/transport.hpp b/nano/node/transport/transport.hpp index 5703a8c73..6e1537663 100644 --- a/nano/node/transport/transport.hpp +++ b/nano/node/transport/transport.hpp @@ -25,3 +25,8 @@ bool is_same_subnetwork (boost::asio::ip::address const &, boost::asio::ip::addr // Unassigned, reserved, self bool reserved_address (nano::endpoint const &, bool allow_local_peers = false); } + +namespace nano +{ +nano::stat::detail to_stat_detail (boost::system::error_code const &); +} \ No newline at end of file