Remove tx from AlreadyAskedFor list once we receive it, not when we process it.
This commit is contained in:
parent
87e40799fd
commit
604ee2aa7d
1 changed files with 3 additions and 3 deletions
|
@ -3894,15 +3894,16 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv,
|
|||
|
||||
bool fMissingInputs = false;
|
||||
CValidationState state;
|
||||
|
||||
mapAlreadyAskedFor.erase(inv);
|
||||
|
||||
if (AcceptToMemoryPool(mempool, state, tx, true, &fMissingInputs))
|
||||
{
|
||||
mempool.check(pcoinsTip);
|
||||
RelayTransaction(tx);
|
||||
mapAlreadyAskedFor.erase(inv);
|
||||
vWorkQueue.push_back(inv.hash);
|
||||
vEraseQueue.push_back(inv.hash);
|
||||
|
||||
|
||||
LogPrint("mempool", "AcceptToMemoryPool: peer=%d %s : accepted %s (poolsz %u)\n",
|
||||
pfrom->id, pfrom->cleanSubVer,
|
||||
tx.GetHash().ToString(),
|
||||
|
@ -3928,7 +3929,6 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv,
|
|||
{
|
||||
LogPrint("mempool", " accepted orphan tx %s\n", orphanHash.ToString());
|
||||
RelayTransaction(orphanTx);
|
||||
mapAlreadyAskedFor.erase(CInv(MSG_TX, orphanHash));
|
||||
vWorkQueue.push_back(orphanHash);
|
||||
vEraseQueue.push_back(orphanHash);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue