Browse Source

Merge pull request #6588

0.13
Jeff Garzik 9 years ago
parent
commit
cf9bb11f97
Failed to extract signature
  1. 14
      src/main.cpp

14
src/main.cpp

@ -4280,6 +4280,10 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv,
mapAlreadyAskedFor.erase(inv); mapAlreadyAskedFor.erase(inv);
// Check for recently rejected (and do other quick existence checks)
if (AlreadyHave(inv))
return true;
if (AcceptToMemoryPool(mempool, state, tx, true, &fMissingInputs)) if (AcceptToMemoryPool(mempool, state, tx, true, &fMissingInputs))
{ {
mempool.check(pcoinsTip); mempool.check(pcoinsTip);
@ -4355,13 +4359,9 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv,
if (nEvicted > 0) if (nEvicted > 0)
LogPrint("mempool", "mapOrphan overflow, removed %u tx\n", nEvicted); LogPrint("mempool", "mapOrphan overflow, removed %u tx\n", nEvicted);
} else { } else {
// AcceptToMemoryPool() returned false, possibly because the tx is assert(recentRejects);
// already in the mempool; if the tx isn't in the mempool that recentRejects->insert(tx.GetHash());
// means it was rejected and we shouldn't ask for it again.
if (!mempool.exists(tx.GetHash())) {
assert(recentRejects);
recentRejects->insert(tx.GetHash());
}
if (pfrom->fWhitelisted) { if (pfrom->fWhitelisted) {
// Always relay transactions received from whitelisted peers, even // Always relay transactions received from whitelisted peers, even
// if they were rejected from the mempool, allowing the node to // if they were rejected from the mempool, allowing the node to

Loading…
Cancel
Save