diff options
author | Matt Corallo <git@bluematt.me> | 2015-12-05 17:45:44 +0800 |
---|---|---|
committer | Matt Corallo <git@bluematt.me> | 2015-12-05 17:45:44 +0800 |
commit | 96918a2f0990a8207d7631b8de73af8ae5d24aeb (patch) | |
tree | d51b643c61e10fab97bf2200e11516c2319ee352 | |
parent | 792259278e4f2e43d7e09f89335ed80979449b1d (diff) |
Don't do mempool lookups for "mempool" command without a filter
-rw-r--r-- | src/main.cpp | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/src/main.cpp b/src/main.cpp index 22e71c0c48..a0e996ae78 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -4994,12 +4994,13 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv, vector<CInv> vInv; BOOST_FOREACH(uint256& hash, vtxid) { CInv inv(MSG_TX, hash); - CTransaction tx; - bool fInMemPool = mempool.lookup(hash, tx); - if (!fInMemPool) continue; // another thread removed since queryHashes, maybe... - if ((pfrom->pfilter && pfrom->pfilter->IsRelevantAndUpdate(tx)) || - (!pfrom->pfilter)) - vInv.push_back(inv); + if (pfrom->pfilter) { + CTransaction tx; + bool fInMemPool = mempool.lookup(hash, tx); + if (!fInMemPool) continue; // another thread removed since queryHashes, maybe... + if (!pfrom->pfilter->IsRelevantAndUpdate(tx)) continue; + } + vInv.push_back(inv); if (vInv.size() == MAX_INV_SZ) { pfrom->PushMessage("inv", vInv); vInv.clear(); |