Make orphan parent fetching ask for witnesses.
In 0.13 orphan transactions began being treated as implicit INVs for their parents. But the resulting getdata were not getting the witness flag. This fixes issue #9182 reported by chjj and roasbeef on IRC.
This commit is contained in:
parent
9346f84299
commit
5b0150a060
1 changed files with 2 additions and 1 deletions
|
@ -5686,8 +5686,9 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!fRejectedParents) {
|
if (!fRejectedParents) {
|
||||||
|
uint32_t nFetchFlags = GetFetchFlags(pfrom, chainActive.Tip(), chainparams.GetConsensus());
|
||||||
BOOST_FOREACH(const CTxIn& txin, tx.vin) {
|
BOOST_FOREACH(const CTxIn& txin, tx.vin) {
|
||||||
CInv _inv(MSG_TX, txin.prevout.hash);
|
CInv _inv(MSG_TX | nFetchFlags, txin.prevout.hash);
|
||||||
pfrom->AddInventoryKnown(_inv);
|
pfrom->AddInventoryKnown(_inv);
|
||||||
if (!AlreadyHave(_inv)) pfrom->AskFor(_inv);
|
if (!AlreadyHave(_inv)) pfrom->AskFor(_inv);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue