diff --git a/src/cpp/ripple/FeatureTable.cpp b/src/cpp/ripple/FeatureTable.cpp index a014c81e9..af1d8349c 100644 --- a/src/cpp/ripple/FeatureTable.cpp +++ b/src/cpp/ripple/FeatureTable.cpp @@ -195,17 +195,17 @@ Json::Value FeatureTable::getJson(int) { Json::Value v(Json::objectValue); - v["supported"] = it.second.mSupported ? "true" : "false"; + v["supported"] = it.second.mSupported; if (it.second.mEnabled) - v["enabled"] = "true"; + v["enabled"] = true; else { - v["enabled"] = "false"; + v["enabled"] = false; if (mLastReport != 0) { if (it.second.mLastMajority == 0) - v["majority"] = "no"; + v["majority"] = false; else { if (it.second.mFirstMajority != 0) @@ -227,7 +227,7 @@ Json::Value FeatureTable::getJson(int) } if (it.second.mVetoed) - v["veto"] = "true"; + v["veto"] = true; ret[it.first.GetHex()] = v; } diff --git a/src/cpp/ripple/JobQueue.cpp b/src/cpp/ripple/JobQueue.cpp index 328654b07..40b7bf44c 100644 --- a/src/cpp/ripple/JobQueue.cpp +++ b/src/cpp/ripple/JobQueue.cpp @@ -159,7 +159,7 @@ Json::Value JobQueue::getJson(int) { Json::Value pri(Json::objectValue); if (isOver) - pri["over_target"] = "true"; + pri["over_target"] = true; pri["job_type"] = Job::toString(static_cast(i)); if (jobCount != 0) pri["waiting"] = static_cast(jobCount); diff --git a/src/cpp/ripple/LedgerConsensus.cpp b/src/cpp/ripple/LedgerConsensus.cpp index 80c19931e..190477ad2 100644 --- a/src/cpp/ripple/LedgerConsensus.cpp +++ b/src/cpp/ripple/LedgerConsensus.cpp @@ -294,6 +294,7 @@ LedgerConsensus::LedgerConsensus(const uint256& prevLCLHash, Ledger::ref previou mHaveCorrectLCL = (mPreviousLedger->getHash() == mPrevLedgerHash); if (!mHaveCorrectLCL) { + theApp->getOPs().setProposing(false, false); handleLCL(mPrevLedgerHash); if (!mHaveCorrectLCL) { @@ -302,6 +303,8 @@ LedgerConsensus::LedgerConsensus(const uint256& prevLCLHash, Ledger::ref previou cLog(lsINFO) << "Correct LCL is: " << prevLCLHash; } } + else + theApp->getOPs().setProposing(mProposing, mValidating); } void LedgerConsensus::checkOurValidation() @@ -1343,18 +1346,18 @@ void LedgerConsensus::simulate() Json::Value LedgerConsensus::getJson() { Json::Value ret(Json::objectValue); - ret["proposing"] = mProposing ? "yes" : "no"; - ret["validating"] = mValidating ? "yes" : "no"; + ret["proposing"] = mProposing; + ret["validating"] = mValidating; ret["proposers"] = static_cast(mPeerPositions.size()); if (mHaveCorrectLCL) { - ret["synched"] = "yes"; + ret["synched"] = true; ret["ledger_seq"] = mPreviousLedger->getLedgerSeq() + 1; ret["close_granularity"] = mCloseResolution; } else - ret["synched"] = "no"; + ret["synched"] = false; switch (mState) { diff --git a/src/cpp/ripple/NetworkOPs.cpp b/src/cpp/ripple/NetworkOPs.cpp index cf4027480..aed040621 100644 --- a/src/cpp/ripple/NetworkOPs.cpp +++ b/src/cpp/ripple/NetworkOPs.cpp @@ -33,9 +33,9 @@ void InfoSub::onSendEmpty() } NetworkOPs::NetworkOPs(boost::asio::io_service& io_service, LedgerMaster* pLedgerMaster) : - mMode(omDISCONNECTED), mNeedNetworkLedger(false), mNetTimer(io_service), mLedgerMaster(pLedgerMaster), - mCloseTimeOffset(0), mLastCloseProposers(0), mLastCloseConvergeTime(1000 * LEDGER_IDLE_INTERVAL), - mLastValidationTime(0) + mMode(omDISCONNECTED), mNeedNetworkLedger(false), mProposing(false), mValidating(false), + mNetTimer(io_service), mLedgerMaster(pLedgerMaster), mCloseTimeOffset(0), mLastCloseProposers(0), + mLastCloseConvergeTime(1000 * LEDGER_IDLE_INTERVAL), mLastValidationTime(0) { } @@ -48,6 +48,14 @@ std::string NetworkOPs::strOperatingMode() "full" }; + if (mMode == omFULL) + { + if (mProposing) + return "proposing"; + if (mValidating) + return "validating"; + } + return paStatusToken[mMode]; } @@ -1100,14 +1108,8 @@ Json::Value NetworkOPs::getServerInfo(bool human, bool admin) if (theConfig.TESTNET) info["testnet"] = theConfig.TESTNET; - switch (mMode) - { - case omDISCONNECTED: info["server_state"] = "disconnected"; break; - case omCONNECTED: info["server_state"] = "connected"; break; - case omTRACKING: info["server_state"] = "tracking"; break; - case omFULL: info["server_state"] = "validating"; break; - default: info["server_state"] = "unknown"; - } + info["server_state"] = strOperatingMode(); + if (mNeedNetworkLedger) info["network_ledger"] = "waiting"; diff --git a/src/cpp/ripple/NetworkOPs.h b/src/cpp/ripple/NetworkOPs.h index 401e9b67f..0979671fb 100644 --- a/src/cpp/ripple/NetworkOPs.h +++ b/src/cpp/ripple/NetworkOPs.h @@ -76,6 +76,7 @@ protected: OperatingMode mMode; bool mNeedNetworkLedger; + bool mProposing, mValidating; boost::posix_time::ptime mConnectTime; boost::asio::deadline_timer mNetTimer; boost::shared_ptr mConsensus; @@ -238,6 +239,9 @@ public: void needNetworkLedger() { mNeedNetworkLedger = true; } void clearNeedNetworkLedger() { mNeedNetworkLedger = false; } bool isNeedNetworkLedger() { return mNeedNetworkLedger; } + void setProposing(bool p, bool v) { mProposing = p; mValidating = v; } + bool isProposing() { return mProposing; } + bool isValidating() { return mValidating; } void consensusViewChange(); int getPreviousProposers() { return mLastCloseProposers; } int getPreviousConvergeTime() { return mLastCloseConvergeTime; }