From 91f0a7fbb79fe81a75370a4b60dcdd2e55edfa81 Mon Sep 17 00:00:00 2001 From: Martin Zumsande Date: Fri, 22 Jul 2022 13:54:35 -0400 Subject: [PATCH] p2p: add only reachable addresses to addrman We will not make outgoing connection to peers that are unreachable (e.g. because of -onlynet configuration). Therefore, it makes no sense to add them to addrman in the first place. While this is already the case for addresses received via p2p addr messages, this commit does the same for addresses received from fixed seeds. --- src/net.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/net.cpp b/src/net.cpp index e9aa7ee43b..b7d9829b13 100644 --- a/src/net.cpp +++ b/src/net.cpp @@ -1635,10 +1635,15 @@ void CConnman::ThreadOpenConnections(const std::vector connect) } if (add_fixed_seeds_now) { + std::vector seed_addrs{ConvertSeeds(Params().FixedSeeds())}; + seed_addrs.erase(std::remove_if(seed_addrs.begin(), seed_addrs.end(), + [](const CAddress& addr) { return !IsReachable(addr); }), + seed_addrs.end()); CNetAddr local; local.SetInternal("fixedseeds"); - addrman.Add(ConvertSeeds(Params().FixedSeeds()), local); + addrman.Add(seed_addrs, local); add_fixed_seeds = false; + LogPrintf("Added %d fixed seeds from reachable networks.\n", seed_addrs.size()); } }