Limit the number of new addressses to accumulate
This commit is contained in:
parent
a0417b8cc8
commit
12a49cac0a
1 changed files with 9 additions and 2 deletions
|
@ -44,6 +44,8 @@ static const int PING_INTERVAL = 2 * 60;
|
||||||
static const int TIMEOUT_INTERVAL = 20 * 60;
|
static const int TIMEOUT_INTERVAL = 20 * 60;
|
||||||
/** The maximum number of entries in an 'inv' protocol message */
|
/** The maximum number of entries in an 'inv' protocol message */
|
||||||
static const unsigned int MAX_INV_SZ = 50000;
|
static const unsigned int MAX_INV_SZ = 50000;
|
||||||
|
/** The maximum number of new addresses to accumulate before announcing. */
|
||||||
|
static const unsigned int MAX_ADDR_TO_SEND = 1000;
|
||||||
/** -listen default */
|
/** -listen default */
|
||||||
static const bool DEFAULT_LISTEN = true;
|
static const bool DEFAULT_LISTEN = true;
|
||||||
/** -upnp default */
|
/** -upnp default */
|
||||||
|
@ -368,9 +370,14 @@ public:
|
||||||
// Known checking here is only to save space from duplicates.
|
// Known checking here is only to save space from duplicates.
|
||||||
// SendMessages will filter it again for knowns that were added
|
// SendMessages will filter it again for knowns that were added
|
||||||
// after addresses were pushed.
|
// after addresses were pushed.
|
||||||
if (addr.IsValid() && !setAddrKnown.count(addr))
|
if (addr.IsValid() && !setAddrKnown.count(addr)) {
|
||||||
|
if (vAddrToSend.size() >= MAX_ADDR_TO_SEND) {
|
||||||
|
vAddrToSend[insecure_rand() % vAddrToSend.size()] = addr;
|
||||||
|
} else {
|
||||||
vAddrToSend.push_back(addr);
|
vAddrToSend.push_back(addr);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void AddInventoryKnown(const CInv& inv)
|
void AddInventoryKnown(const CInv& inv)
|
||||||
|
|
Loading…
Reference in a new issue