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 | |
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.
-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()); |