From b7fe1424fb3a93a8b18066e8ef8c92823acd3b50 Mon Sep 17 00:00:00 2001 From: JoelKatz Date: Thu, 3 Jan 2013 21:04:11 -0800 Subject: [PATCH] Count a ledger as present (for purposes of allowing clients that trust us to query it) only when it has been validated. --- src/cpp/ripple/Ledger.cpp | 1 - src/cpp/ripple/LedgerMaster.cpp | 9 ++++----- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/src/cpp/ripple/Ledger.cpp b/src/cpp/ripple/Ledger.cpp index b8ffa1b86..9b1f797d8 100644 --- a/src/cpp/ripple/Ledger.cpp +++ b/src/cpp/ripple/Ledger.cpp @@ -464,7 +464,6 @@ void Ledger::saveAcceptedLedger(bool fromConsensus, LoadEvent::pointer event) return; } - theApp->getLedgerMaster().setFullLedger(shared_from_this()); event->stop(); decPendingSaves(); diff --git a/src/cpp/ripple/LedgerMaster.cpp b/src/cpp/ripple/LedgerMaster.cpp index f6cf11652..d0d4cd5cb 100644 --- a/src/cpp/ripple/LedgerMaster.cpp +++ b/src/cpp/ripple/LedgerMaster.cpp @@ -218,6 +218,9 @@ void LedgerMaster::fixMismatch(Ledger::ref ledger) { int invalidate = 0; + mMissingLedger.reset(); + mMissingSeq = 0; + for (uint32 lSeq = ledger->getLedgerSeq() - 1; lSeq > 0; --lSeq) if (mCompleteLedgers.hasValue(lSeq)) { @@ -233,11 +236,6 @@ void LedgerMaster::fixMismatch(Ledger::ref ledger) } } mCompleteLedgers.clearValue(lSeq); - if (mMissingSeq == lSeq) - { - mMissingLedger.reset(); - mMissingSeq = 0; - } ++invalidate; } @@ -400,6 +398,7 @@ void LedgerMaster::pubThread() BOOST_FOREACH(Ledger::ref l, ledgers) { + setFullLedger(l); // OPTIMIZEME: This is actually more work than we need to do theApp->getOPs().pubLedger(l); BOOST_FOREACH(callback& c, mOnValidate) {