diff options
author | Martin Zumsande <mzumsande@gmail.com> | 2022-07-22 13:54:35 -0400 |
---|---|---|
committer | Martin Zumsande <mzumsande@gmail.com> | 2022-09-06 15:16:17 -0400 |
commit | 91f0a7fbb79fe81a75370a4b60dcdd2e55edfa81 (patch) | |
tree | c15f85ac0ddc39c61f78699a67532205c486024f /src | |
parent | 6dc3084eec912cf2abfe18d1c05655defaa45e20 (diff) |
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.
Diffstat (limited to 'src')
-rw-r--r-- | src/net.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
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<std::string> connect) } if (add_fixed_seeds_now) { + std::vector<CAddress> 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()); } } |