diff options
| author | Wladimir J. van der Laan <[email protected]> | 2015-12-01 08:56:43 +0100 |
|---|---|---|
| committer | Wladimir J. van der Laan <[email protected]> | 2015-12-01 09:02:33 +0100 |
| commit | 1b5118bfa0d94dbc0f3d7803c3e68626b0a694ee (patch) | |
| tree | 7115cda554e234eb5fea42a68f1c71a6a4e4bfe3 /src/net.cpp | |
| parent | Merge pull request #7072 (diff) | |
| parent | Limit setAskFor and retire requested entries only when a getdata returns. (diff) | |
| download | discoin-1b5118bfa0d94dbc0f3d7803c3e68626b0a694ee.tar.xz discoin-1b5118bfa0d94dbc0f3d7803c3e68626b0a694ee.zip | |
Merge pull request #7079
ebb25f4 Limit setAskFor and retire requested entries only when a getdata returns. (Gregory Maxwell)
5029698 prevent peer flooding request queue for an inv (kazcw)
Diffstat (limited to 'src/net.cpp')
| -rw-r--r-- | src/net.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/net.cpp b/src/net.cpp index abc7cbb8f..e5659efc0 100644 --- a/src/net.cpp +++ b/src/net.cpp @@ -2407,8 +2407,12 @@ CNode::~CNode() void CNode::AskFor(const CInv& inv) { - if (mapAskFor.size() > MAPASKFOR_MAX_SZ) + if (mapAskFor.size() > MAPASKFOR_MAX_SZ || setAskFor.size() > SETASKFOR_MAX_SZ) return; + // a peer may not have multiple non-responded queue positions for a single inv item + if (!setAskFor.insert(inv.hash).second) + return; + // We're using mapAskFor as a priority queue, // the key is the earliest time the request can be sent int64_t nRequestTime; |