diff options
author | Kaz Wesley <keziahw@gmail.com> | 2016-06-06 14:42:34 -0700 |
---|---|---|
committer | Kaz Wesley <keziahw@gmail.com> | 2016-06-06 15:57:40 -0700 |
commit | d3d02d51453943bfe3a9edb944eb48f9f1e01aca (patch) | |
tree | 3eacee81c035c2056ce6543bb6df2fe6693e646a /src | |
parent | 52c3f348bec33fab5ae0a9f1b9f14b9a74c0083f (diff) |
drop vAddrToSend after sending big addr message
We send a newly-accepted peer a 1000-entry addr message, and then only use
vAddrToSend for small messages. Deallocate vAddrToSend after it's been used for
the big message to save about 40 kB per connected inbound peer.
Diffstat (limited to 'src')
-rw-r--r-- | src/main.cpp | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/main.cpp b/src/main.cpp index fc8e72a7db..5fff4187ac 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -5713,6 +5713,9 @@ bool SendMessages(CNode* pto) pto->vAddrToSend.clear(); if (!vAddr.empty()) pto->PushMessage(NetMsgType::ADDR, vAddr); + // we only send the big addr message once + if (pto->vAddrToSend.capacity() > 40) + pto->vAddrToSend.shrink_to_fit(); } CNodeState &state = *State(pto->GetId()); |