Browse Source

Merge pull request #4878

540ac45 Avoid returning many "inv" orphans (Jeff Garzik)
d4168c8 Limit CNode::mapAskFor (Wladimir J. van der Laan)
tags/v0.15.1
Wladimir J. van der Laan 6 years ago
parent
commit
d6af9856b0
No account linked to committer's email address
3 changed files with 9 additions and 0 deletions
  1. 5
    0
      src/main.cpp
  2. 2
    0
      src/net.cpp
  3. 2
    0
      src/net.h

+ 5
- 0
src/main.cpp View File

@@ -3641,6 +3641,11 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv,

// Track requests for our stuff
g_signals.Inventory(inv.hash);

if (pfrom->nSendSize > (SendBufferSize() * 2)) {
Misbehaving(pfrom->GetId(), 50);
return error("send buffer size() = %u", pfrom->nSendSize);
}
}
}


+ 2
- 0
src/net.cpp View File

@@ -2106,6 +2106,8 @@ CNode::~CNode()

void CNode::AskFor(const CInv& inv)
{
if (mapAskFor.size() > MAPASKFOR_MAX_SZ)
return;
// We're using mapAskFor as a priority queue,
// the key is the earliest time the request can be sent
int64_t nRequestTime;

+ 2
- 0
src/net.h View File

@@ -51,6 +51,8 @@ static const bool DEFAULT_UPNP = USE_UPNP;
#else
static const bool DEFAULT_UPNP = false;
#endif
/** The maximum number of entries in mapAskFor */
static const size_t MAPASKFOR_MAX_SZ = MAX_INV_SZ;

unsigned int ReceiveFloodSize();
unsigned int SendBufferSize();

Loading…
Cancel
Save