aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMartin Zumsande <mzumsande@gmail.com>2022-07-22 13:54:35 -0400
committerMartin Zumsande <mzumsande@gmail.com>2022-09-06 15:16:17 -0400
commit91f0a7fbb79fe81a75370a4b60dcdd2e55edfa81 (patch)
treec15f85ac0ddc39c61f78699a67532205c486024f /src
parent6dc3084eec912cf2abfe18d1c05655defaa45e20 (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.cpp7
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());
}
}