Don't do mempool lookups for "mempool" command without a filter
This commit is contained in:
parent
792259278e
commit
96918a2f09
1 changed files with 7 additions and 6 deletions
13
src/main.cpp
13
src/main.cpp
|
@ -4994,12 +4994,13 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv,
|
||||||
vector<CInv> vInv;
|
vector<CInv> vInv;
|
||||||
BOOST_FOREACH(uint256& hash, vtxid) {
|
BOOST_FOREACH(uint256& hash, vtxid) {
|
||||||
CInv inv(MSG_TX, hash);
|
CInv inv(MSG_TX, hash);
|
||||||
CTransaction tx;
|
if (pfrom->pfilter) {
|
||||||
bool fInMemPool = mempool.lookup(hash, tx);
|
CTransaction tx;
|
||||||
if (!fInMemPool) continue; // another thread removed since queryHashes, maybe...
|
bool fInMemPool = mempool.lookup(hash, tx);
|
||||||
if ((pfrom->pfilter && pfrom->pfilter->IsRelevantAndUpdate(tx)) ||
|
if (!fInMemPool) continue; // another thread removed since queryHashes, maybe...
|
||||||
(!pfrom->pfilter))
|
if (!pfrom->pfilter->IsRelevantAndUpdate(tx)) continue;
|
||||||
vInv.push_back(inv);
|
}
|
||||||
|
vInv.push_back(inv);
|
||||||
if (vInv.size() == MAX_INV_SZ) {
|
if (vInv.size() == MAX_INV_SZ) {
|
||||||
pfrom->PushMessage("inv", vInv);
|
pfrom->PushMessage("inv", vInv);
|
||||||
vInv.clear();
|
vInv.clear();
|
||||||
|
|
Loading…
Reference in a new issue