mirror of
https://github.com/Xahau/xahaud.git
synced 2025-12-06 17:27:52 +00:00
Fix some cases where we acquire the ledger but don't realize it.
This commit is contained in:
@@ -59,9 +59,11 @@ void LedgerAcquire::trigger()
|
|||||||
{
|
{
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
std::cerr << "Trigger acquiring ledger " << mHash.GetHex() << std::endl;
|
std::cerr << "Trigger acquiring ledger " << mHash.GetHex() << std::endl;
|
||||||
|
std::cerr << "complete=" << mComplete << " failed=" << mFailed << std::endl;
|
||||||
|
std::cerr << "base=" << mHaveBase << " tx=" << mHaveTransactions << " as=" << mHaveState << std::endl;
|
||||||
#endif
|
#endif
|
||||||
if (mComplete || mFailed) return;
|
if (mComplete || mFailed)
|
||||||
|
return;
|
||||||
if (!mHaveBase)
|
if (!mHaveBase)
|
||||||
{
|
{
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
@@ -233,6 +235,10 @@ bool LedgerAcquire::takeBase(const std::string& data)
|
|||||||
mLedger = boost::make_shared<Ledger>(data);
|
mLedger = boost::make_shared<Ledger>(data);
|
||||||
if (mLedger->getHash() != mHash)
|
if (mLedger->getHash() != mHash)
|
||||||
{
|
{
|
||||||
|
#ifdef DEBUG
|
||||||
|
std::cerr << "Acquire hash mismatch" << std::endl;
|
||||||
|
std::cerr << mLedger->getHash().GetHex() << "!=" << mHash.GetHex() << std::endl;
|
||||||
|
#endif
|
||||||
mLedger = Ledger::pointer();
|
mLedger = Ledger::pointer();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -261,7 +267,10 @@ bool LedgerAcquire::takeTxNode(const std::list<SHAMapNode>& nodeIDs,
|
|||||||
++nodeIDit;
|
++nodeIDit;
|
||||||
++nodeDatait;
|
++nodeDatait;
|
||||||
}
|
}
|
||||||
if (!mLedger->peekTransactionMap()->isSynching()) mHaveTransactions = true;
|
if (!mLedger->peekTransactionMap()->isSynching())
|
||||||
|
{
|
||||||
|
mHaveTransactions = true;
|
||||||
|
if (mHaveState) mComplete = true;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -286,7 +295,11 @@ bool LedgerAcquire::takeAsNode(const std::list<SHAMapNode>& nodeIDs,
|
|||||||
++nodeIDit;
|
++nodeIDit;
|
||||||
++nodeDatait;
|
++nodeDatait;
|
||||||
}
|
}
|
||||||
if (!mLedger->peekAccountStateMap()->isSynching()) mHaveState = true;
|
if (!mLedger->peekAccountStateMap()->isSynching())
|
||||||
|
{
|
||||||
|
mHaveState = true;
|
||||||
|
if (mHaveTransactions) mComplete = true;
|
||||||
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user