Fix network state reporting in server and client.

This commit is contained in:
Arthur Britto
2012-12-14 16:34:11 -08:00
parent 5b60c73489
commit f93dc7a7b4
4 changed files with 40 additions and 28 deletions

View File

@@ -33,6 +33,18 @@ NetworkOPs::NetworkOPs(boost::asio::io_service& io_service, LedgerMaster* pLedge
{
}
std::string NetworkOPs::strOperatingMode()
{
static const char* paStatusToken[] = {
"disconnected",
"connected",
"tracking",
"full"
};
return paStatusToken[mMode];
}
boost::posix_time::ptime NetworkOPs::getNetworkTimePT()
{
int offset = 0;
@@ -871,17 +883,12 @@ void NetworkOPs::setMode(OperatingMode om)
if ((om >= omCONNECTED) && (mMode == omDISCONNECTED))
mConnectTime = boost::posix_time::second_clock::universal_time();
Log lg((om < mMode) ? lsWARNING : lsINFO);
if (om == omDISCONNECTED)
lg << "STATE->Disconnected";
else if (om == omCONNECTED)
lg << "STATE->Connected";
else if (om == omTRACKING)
lg << "STATE->Tracking";
else
lg << "STATE->Full";
mMode = om;
Log lg((om < mMode) ? lsWARNING : lsINFO);
lg << "STATE->" << strOperatingMode();
if ((om == omDISCONNECTED) || (mMode == omDISCONNECTED))
{
boost::recursive_mutex::scoped_lock sl(mMonitorLock);
@@ -889,8 +896,8 @@ void NetworkOPs::setMode(OperatingMode om)
{
Json::Value jvObj(Json::objectValue);
jvObj["type"] = "serverStatus";
jvObj["server_status"] = om >= omCONNECTED ? "ok" : "noNetwork";
jvObj["type"] = "serverStatus";
jvObj["server_status"] = strOperatingMode();
BOOST_FOREACH(InfoSub* ispListener, mSubServer)
{
@@ -898,8 +905,6 @@ void NetworkOPs::setMode(OperatingMode om)
}
}
}
mMode = om;
}