diff options
author | Fabian Jahr <fjahr@protonmail.com> | 2023-05-05 11:14:51 +0200 |
---|---|---|
committer | Fabian Jahr <fjahr@protonmail.com> | 2023-12-02 22:03:08 +0100 |
commit | 3ea54e5db7d53da5afa321e1800c29aa269dd3b3 (patch) | |
tree | 3348fa7d97f62e00b67a422fae8cd8989ac06b6f /src/net.cpp | |
parent | 28d7e55dff826a69f3f8e58139dbffb611cc5947 (diff) | |
download | bitcoin-3ea54e5db7d53da5afa321e1800c29aa269dd3b3.tar.xz |
net: Add continuous ASMap health check logging
Diffstat (limited to 'src/net.cpp')
-rw-r--r-- | src/net.cpp | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/net.cpp b/src/net.cpp index 8c39eaab2b..7ca33efb8d 100644 --- a/src/net.cpp +++ b/src/net.cpp @@ -3305,6 +3305,12 @@ bool CConnman::Start(CScheduler& scheduler, const Options& connOptions) // Dump network addresses scheduler.scheduleEvery([this] { DumpAddresses(); }, DUMP_PEERS_INTERVAL); + // Run the ASMap Health check once and then schedule it to run every 24h. + if (m_netgroupman.UsingASMap()) { + ASMapHealthCheck(); + scheduler.scheduleEvery([this] { ASMapHealthCheck(); }, ASMAP_HEALTH_CHECK_INTERVAL); + } + return true; } @@ -3853,6 +3859,19 @@ void CConnman::PerformReconnections() } } +void CConnman::ASMapHealthCheck() +{ + const std::vector<CAddress> v4_addrs{GetAddresses(/*max_addresses=*/ 0, /*max_pct=*/ 0, Network::NET_IPV4, /*filtered=*/ false)}; + const std::vector<CAddress> v6_addrs{GetAddresses(/*max_addresses=*/ 0, /*max_pct=*/ 0, Network::NET_IPV6, /*filtered=*/ false)}; + std::vector<CNetAddr> clearnet_addrs; + clearnet_addrs.reserve(v4_addrs.size() + v6_addrs.size()); + std::transform(v4_addrs.begin(), v4_addrs.end(), std::back_inserter(clearnet_addrs), + [](const CAddress& addr) { return static_cast<CNetAddr>(addr); }); + std::transform(v6_addrs.begin(), v6_addrs.end(), std::back_inserter(clearnet_addrs), + [](const CAddress& addr) { return static_cast<CNetAddr>(addr); }); + m_netgroupman.ASMapHealthCheck(clearnet_addrs); +} + // Dump binary message to file, with timestamp. static void CaptureMessageToFile(const CAddress& addr, const std::string& msg_type, |