diff --git a/src/net.cpp b/src/net.cpp --- a/src/net.cpp +++ b/src/net.cpp @@ -2865,7 +2865,17 @@ } std::vector CConnman::GetAddresses() { - return addrman.GetAddr(); + std::vector addresses = addrman.GetAddr(); + if (m_banman) { + addresses.erase(std::remove_if(addresses.begin(), addresses.end(), + [this](const CAddress &addr) { + return m_banman->IsDiscouraged( + addr) || + m_banman->IsBanned(addr); + }), + addresses.end()); + } + return addresses; } bool CConnman::AddNode(const std::string &strNode) { diff --git a/src/net_processing.cpp b/src/net_processing.cpp --- a/src/net_processing.cpp +++ b/src/net_processing.cpp @@ -4475,12 +4475,7 @@ std::vector vAddr = m_connman.GetAddresses(); FastRandomContext insecure_rand; for (const CAddress &addr : vAddr) { - bool banned_or_discouraged = - m_banman && - (m_banman->IsDiscouraged(addr) || m_banman->IsBanned(addr)); - if (!banned_or_discouraged) { - pfrom.PushAddress(addr, insecure_rand); - } + pfrom.PushAddress(addr, insecure_rand); } return; }