aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGleb Naumenko <naumenko.gs@gmail.com>2020-07-08 10:29:47 +0300
committerGleb Naumenko <naumenko.gs@gmail.com>2020-07-24 18:02:20 +0300
commit7cc0e8101f01891aa8be093a00d993bb7579c385 (patch)
tree7d07db047d4c19a4d50a2f087e9e4da7eef7ee3a
parentded742bc5b96e3215d69c11fb3628d224e7ae034 (diff)
downloadbitcoin-7cc0e8101f01891aa8be093a00d993bb7579c385.tar.xz
Remove useless 2500 limit on AddrMan queries
-rw-r--r--src/addrman.h2
-rw-r--r--src/net.h3
-rw-r--r--src/net_processing.cpp6
3 files changed, 7 insertions, 4 deletions
diff --git a/src/addrman.h b/src/addrman.h
index 8e82020df0..9e742339db 100644
--- a/src/addrman.h
+++ b/src/addrman.h
@@ -157,7 +157,7 @@ public:
#define ADDRMAN_GETADDR_MAX_PCT 23
//! the maximum number of nodes to return in a getaddr call
-#define ADDRMAN_GETADDR_MAX 2500
+#define ADDRMAN_GETADDR_MAX 1000
//! Convenience
#define ADDRMAN_TRIED_BUCKET_COUNT (1 << ADDRMAN_TRIED_BUCKET_COUNT_LOG2)
diff --git a/src/net.h b/src/net.h
index 17d8fda372..3492a784cc 100644
--- a/src/net.h
+++ b/src/net.h
@@ -52,6 +52,9 @@ static const int TIMEOUT_INTERVAL = 20 * 60;
static const int FEELER_INTERVAL = 120;
/** The maximum number of new addresses to accumulate before announcing. */
static const unsigned int MAX_ADDR_TO_SEND = 1000;
+// TODO: remove ADDRMAN_GETADDR_MAX and let the caller specify this limit with MAX_ADDR_TO_SEND.
+static_assert(MAX_ADDR_TO_SEND == ADDRMAN_GETADDR_MAX,
+ "Max allowed ADDR message size should be equal to the max number of records returned from AddrMan.");
/** Maximum length of incoming protocol messages (no message over 4 MB is currently acceptable). */
static const unsigned int MAX_PROTOCOL_MESSAGE_LENGTH = 4 * 1000 * 1000;
/** Maximum length of the user agent string in `version` message */
diff --git a/src/net_processing.cpp b/src/net_processing.cpp
index 0aa7288b7d..a591836f2e 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();