From ded742bc5b96e3215d69c11fb3628d224e7ae034 Mon Sep 17 00:00:00 2001 From: Gleb Naumenko Date: Sat, 4 Jul 2020 11:25:51 +0300 Subject: Move filtering banned addrs inside GetAddresses() --- src/net_processing.cpp | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) (limited to 'src/net_processing.cpp') diff --git a/src/net_processing.cpp b/src/net_processing.cpp index 5f1e7318f..0aa7288b7 100644 --- a/src/net_processing.cpp +++ b/src/net_processing.cpp @@ -3480,10 +3480,7 @@ void ProcessMessage( std::vector vAddr = connman.GetAddresses(); FastRandomContext insecure_rand; for (const CAddress &addr : vAddr) { - bool banned_or_discouraged = banman && (banman->IsDiscouraged(addr) || banman->IsBanned(addr)); - if (!banned_or_discouraged) { - pfrom.PushAddress(addr, insecure_rand); - } + pfrom.PushAddress(addr, insecure_rand); } return; } -- cgit v1.2.3 From 7cc0e8101f01891aa8be093a00d993bb7579c385 Mon Sep 17 00:00:00 2001 From: Gleb Naumenko Date: Wed, 8 Jul 2020 10:29:47 +0300 Subject: Remove useless 2500 limit on AddrMan queries --- src/net_processing.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src/net_processing.cpp') diff --git a/src/net_processing.cpp b/src/net_processing.cpp index 0aa7288b7..a591836f2 100644 --- a/src/net_processing.cpp +++ b/src/net_processing.cpp @@ -2546,7 +2546,7 @@ void ProcessMessage( if (!pfrom.IsAddrRelayPeer()) { return; } - if (vAddr.size() > 1000) + if (vAddr.size() > MAX_ADDR_TO_SEND) { LOCK(cs_main); Misbehaving(pfrom.GetId(), 20, strprintf("addr message size = %u", vAddr.size())); @@ -4064,8 +4064,8 @@ bool PeerLogicValidation::SendMessages(CNode* pto) { pto->m_addr_known->insert(addr.GetKey()); vAddr.push_back(addr); - // receiver rejects addr messages larger than 1000 - if (vAddr.size() >= 1000) + // receiver rejects addr messages larger than MAX_ADDR_TO_SEND + if (vAddr.size() >= MAX_ADDR_TO_SEND) { connman->PushMessage(pto, msgMaker.Make(NetMsgType::ADDR, vAddr)); vAddr.clear(); -- cgit v1.2.3 From acd6135b43941fa51d52f5fcdb2ce944280ad01e Mon Sep 17 00:00:00 2001 From: Gleb Naumenko Date: Sat, 16 May 2020 21:05:44 -0400 Subject: Cache responses to addr requests Prevents a spy from scraping victim's AddrMan by reconnecting and re-requesting addrs. --- src/net_processing.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/net_processing.cpp') diff --git a/src/net_processing.cpp b/src/net_processing.cpp index a591836f2..a9f6ed960 100644 --- a/src/net_processing.cpp +++ b/src/net_processing.cpp @@ -3477,7 +3477,7 @@ void ProcessMessage( pfrom.fSentAddr = true; pfrom.vAddrToSend.clear(); - std::vector vAddr = connman.GetAddresses(); + std::vector vAddr = connman.GetAddresses(pfrom.addr.GetNetwork()); FastRandomContext insecure_rand; for (const CAddress &addr : vAddr) { pfrom.PushAddress(addr, insecure_rand); -- cgit v1.2.3 From cf1569e074505dbbb9d29422803dd31bb62072d4 Mon Sep 17 00:00:00 2001 From: Gleb Naumenko Date: Wed, 3 Jun 2020 18:51:34 +0300 Subject: Add addr permission flag enabling non-cached addr sharing --- src/net_processing.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'src/net_processing.cpp') diff --git a/src/net_processing.cpp b/src/net_processing.cpp index a9f6ed960..90d3af8c2 100644 --- a/src/net_processing.cpp +++ b/src/net_processing.cpp @@ -3477,7 +3477,12 @@ void ProcessMessage( pfrom.fSentAddr = true; pfrom.vAddrToSend.clear(); - std::vector vAddr = connman.GetAddresses(pfrom.addr.GetNetwork()); + std::vector vAddr; + if (pfrom.HasPermission(PF_ADDR)) { + vAddr = connman.GetAddresses(); + } else { + vAddr = connman.GetAddresses(pfrom.addr.GetNetwork()); + } FastRandomContext insecure_rand; for (const CAddress &addr : vAddr) { pfrom.PushAddress(addr, insecure_rand); -- cgit v1.2.3