Changeset View
Changeset View
Standalone View
Standalone View
src/net_processing.cpp
Show First 20 Lines • Show All 4,502 Lines • ▼ Show 20 Lines | bool PeerLogicValidation::SendMessages(const Config &config, CNode *pto, | ||||
std::vector<CInv> vInv; | std::vector<CInv> vInv; | ||||
{ | { | ||||
LOCK(pto->cs_inventory); | LOCK(pto->cs_inventory); | ||||
vInv.reserve(std::max<size_t>(pto->vInventoryBlockToSend.size(), | vInv.reserve(std::max<size_t>(pto->vInventoryBlockToSend.size(), | ||||
INVENTORY_BROADCAST_MAX_PER_MB * | INVENTORY_BROADCAST_MAX_PER_MB * | ||||
config.GetMaxBlockSize() / 1000000)); | config.GetMaxBlockSize() / 1000000)); | ||||
// Add blocks | // Add blocks | ||||
for (const uint256 &hash : pto->vInventoryBlockToSend) { | for (const BlockHash &hash : pto->vInventoryBlockToSend) { | ||||
vInv.push_back(CInv(MSG_BLOCK, hash)); | vInv.push_back(CInv(MSG_BLOCK, hash)); | ||||
if (vInv.size() == MAX_INV_SZ) { | if (vInv.size() == MAX_INV_SZ) { | ||||
connman->PushMessage(pto, msgMaker.Make(NetMsgType::INV, vInv)); | connman->PushMessage(pto, msgMaker.Make(NetMsgType::INV, vInv)); | ||||
vInv.clear(); | vInv.clear(); | ||||
} | } | ||||
} | } | ||||
pto->vInventoryBlockToSend.clear(); | pto->vInventoryBlockToSend.clear(); | ||||
▲ Show 20 Lines • Show All 382 Lines • Show Last 20 Lines |