diff options
author | Pieter Wuille <pieter@wuille.net> | 2021-07-15 12:59:23 -0700 |
---|---|---|
committer | Pieter Wuille <pieter@wuille.net> | 2021-07-15 12:59:23 -0700 |
commit | 5648138f5949013331c017c740646e2f4013bc24 (patch) | |
tree | 180d8e759edcd7497ff3dc78e1ec67eff8c406cb | |
parent | 0d64b8f709b4655d8702f810d4876cd8d96ded82 (diff) |
Randomize the order of addr processing
-rw-r--r-- | src/net_processing.cpp | 1 | ||||
-rwxr-xr-x | test/functional/p2p_addrv2_relay.py | 4 |
2 files changed, 4 insertions, 1 deletions
diff --git a/src/net_processing.cpp b/src/net_processing.cpp index 8d24b00887..79ef11a790 100644 --- a/src/net_processing.cpp +++ b/src/net_processing.cpp @@ -2804,6 +2804,7 @@ void PeerManagerImpl::ProcessMessage(CNode& pfrom, const std::string& msg_type, peer->m_addr_token_timestamp = current_time; const bool rate_limited = !pfrom.HasPermission(NetPermissionFlags::Addr); + Shuffle(vAddr.begin(), vAddr.end(), FastRandomContext()); for (CAddress& addr : vAddr) { if (interruptMsgProc) diff --git a/test/functional/p2p_addrv2_relay.py b/test/functional/p2p_addrv2_relay.py index 9d36bc03a3..32c1d42b1c 100755 --- a/test/functional/p2p_addrv2_relay.py +++ b/test/functional/p2p_addrv2_relay.py @@ -42,7 +42,9 @@ class AddrReceiver(P2PInterface): super().__init__(support_addrv2 = True) def on_addrv2(self, message): - if ADDRS == message.addrs: + expected_set = set((addr.ip, addr.port) for addr in ADDRS) + received_set = set((addr.ip, addr.port) for addr in message.addrs) + if expected_set == received_set: self.addrv2_received_and_checked = True def wait_for_addrv2(self): |