Nice point, I think it makes sense to not let ProcessCompactBlockTxns check if we received blocktxnwhile importing, we can leave it for ProcessMessage. E.g.:
@@ -3153,12 +3153,6 @@ void PeerManagerImpl::ProcessBlock(CNode& node, const std::shared_ptr<const CBlo
void PeerManagerImpl::ProcessCompactBlockTxns(CNode& pfrom, BlockTransactions& block_transactions, Peer& peer,
const CNetMsgMaker& msg_maker)
{
- // Ignore blocktxn received while importing
- if (fImporting || fReindex) {
- LogPrint(BCLog::NET, "Unexpected blocktxn message received from peer %d\n", pfrom.GetId());
- return;
- }
-
std::shared_ptr<CBlock> pblock = std::make_shared<CBlock>();
bool fBlockRead = false;
{
@@ -4460,6 +4454,10 @@ void PeerManagerImpl::ProcessMessage(CNode& pfrom, const std::string& msg_type,
if (msg_type == NetMsgType::BLOCKTXN)
{
+ if (fImporting || fReindex) {
+ LogPrint(BCLog::NET, "Unexpected blocktxn message received from peer %d\n", pfrom.GetId());
+ return;
+ }
BlockTransactions resp;
vRecv >> resp;