Disconnect on mempool requests from peers when over the upload limit.

Mempool requests use a fair amount of bandwidth when the mempool is large,
 disconnecting peers using them follows the same logic as disconnecting
 peers fetching historical blocks.
This commit is contained in:
Gregory Maxwell 2015-12-03 20:13:10 +00:00
parent 5548d9cb11
commit 6aadc75578

View file

@ -4981,6 +4981,12 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv,
else if (strCommand == "mempool") else if (strCommand == "mempool")
{ {
if (CNode::OutboundTargetReached(false) && !pfrom->fWhitelisted)
{
LogPrint("net", "mempool request with bandwidth limit reached, disconnect peer=%d\n", pfrom->GetId());
pfrom->fDisconnect = true;
return true;
}
LOCK2(cs_main, pfrom->cs_filter); LOCK2(cs_main, pfrom->cs_filter);
std::vector<uint256> vtxid; std::vector<uint256> vtxid;