Merge branch 'develop' into new-master

This commit is contained in:
JoelKatz
2013-07-13 19:43:17 -07:00
4 changed files with 40 additions and 3 deletions

View File

@@ -23,6 +23,23 @@ Ledger::ref LedgerMaster::getCurrentSnapshot ()
return mCurrentSnapshot;
}
int LedgerMaster::getPublishedLedgerAge ()
{
boost::recursive_mutex::scoped_lock ml (mLock);
if (!mPubLedger)
{
WriteLog (lsDEBUG, LedgerMaster) << "No published ledger";
return 999999;
}
int64 ret = getApp().getOPs ().getCloseTimeNC ();
ret -= static_cast<int64> (mPubLedger->getCloseTimeNC ());
ret = std::max (0LL, ret);
WriteLog (lsTRACE, LedgerMaster) << "Published ledger age is " << ret;
return static_cast<int> (ret);
}
int LedgerMaster::getValidatedLedgerAge ()
{
boost::recursive_mutex::scoped_lock ml (mLock);
@@ -42,7 +59,7 @@ int LedgerMaster::getValidatedLedgerAge ()
bool LedgerMaster::isCaughtUp(std::string& reason)
{
if (getValidatedLedgerAge() > 180)
if (getPublishedLedgerAge() > 180)
{
reason = "No recently-validated ledger";
return false;
@@ -138,6 +155,8 @@ void LedgerMaster::storeLedger (Ledger::pointer ledger)
if (ledger->isAccepted ())
mLedgerHistory.addAcceptedLedger (ledger, false);
checkAccept (ledger->getHash(), ledger->getLedgerSeq());
}
Ledger::pointer LedgerMaster::closeLedger (bool recover)

View File

@@ -58,11 +58,19 @@ public:
return mFinalizedLedger;
}
// The published ledger is the last fully validated ledger
// The validated ledger is the last fully validated ledger
Ledger::ref getValidatedLedger ()
{
return mValidLedger;
}
// This is the last ledger we published to clients and can lag the validated ledger
Ledger::ref getPublishedLedger ()
{
return mPubLedger;
}
int getPublishedLedgerAge ();
int getValidatedLedgerAge ();
bool isCaughtUp(std::string& reason);

View File

@@ -1509,6 +1509,12 @@ Json::Value NetworkOPs::getServerInfo (bool human, bool admin)
info["validated_ledger"] = l;
else
info["closed_ledger"] = l;
Ledger::pointer lpPublished = getPublishedLedger ();
if (!lpPublished)
info["published_ledger"] = "none";
else if (lpPublished->getLedgerSeq() != lpClosed->getLedgerSeq())
info["published_ledger"] = lpPublished->getLedgerSeq();
}
return info;
@@ -2375,7 +2381,7 @@ void NetworkOPs::doClusterReport ()
node.set_reporttime(it->second.getReportTime());
node.set_nodeload(it->second.getLoadFee());
if (!it->second.getName().empty())
node.set_nodename(it->second.getName());
node.set_nodename(it->second.getName());
}
PackedMessage::pointer message = boost::make_shared<PackedMessage>(cluster, protocol::mtCLUSTER);

View File

@@ -80,6 +80,10 @@ public:
{
return mLedgerMaster->getValidatedLedger ();
}
Ledger::ref getPublishedLedger ()
{
return mLedgerMaster->getPublishedLedger ();
}
Ledger::ref getCurrentLedger ()
{
return mLedgerMaster->getCurrentLedger ();