From 64f99820a89c902b0b671cc3309eeed2ce2e352f Mon Sep 17 00:00:00 2001 From: JoelKatz Date: Tue, 19 Jun 2012 05:50:30 -0700 Subject: [PATCH] server_info command. --- src/NetworkOPs.cpp | 18 ++++++++++++++++++ src/NetworkOPs.h | 1 + src/RPCServer.cpp | 6 ++++++ src/RPCServer.h | 1 + 4 files changed, 26 insertions(+) diff --git a/src/NetworkOPs.cpp b/src/NetworkOPs.cpp index e38cb2b243..396e4cd271 100644 --- a/src/NetworkOPs.cpp +++ b/src/NetworkOPs.cpp @@ -596,4 +596,22 @@ bool NetworkOPs::recvValidation(SerializedValidation::pointer val) return theApp->getValidations().addValidation(val); } +Json::Value NetworkOPs::getServerInfo() +{ + Json::Value info = Json::objectValue; + switch(mMode) + { + case omDISCONNECTED: info["network_state"] = "disconected"; break; + case omCONNECTED: info["network_state"] = "connected"; break; + case omTRACKING: info["network_state"] = "tracking"; break; + case omFULL: info["network_state"] = "validating"; break; + default: info["network_state"] = "unknown"; + } + + if (!theConfig.VALIDATION_SEED.isValid()) info["validation_seed"] = "none"; + else info["validation_seed"] = theConfig.VALIDATION_SEED.humanNodePublic(); + + return info; +} + // vim:ts=4 diff --git a/src/NetworkOPs.h b/src/NetworkOPs.h index 5fdea311ed..2e7f1d531c 100644 --- a/src/NetworkOPs.h +++ b/src/NetworkOPs.h @@ -127,6 +127,7 @@ public: int beginConsensus(Ledger::pointer closingLedger); void endConsensus(); void setStateTimer(int seconds); + Json::Value getServerInfo(); // client information retrieval functions std::vector< std::pair > diff --git a/src/RPCServer.cpp b/src/RPCServer.cpp index b524681f6e..d3b84fb753 100644 --- a/src/RPCServer.cpp +++ b/src/RPCServer.cpp @@ -1231,6 +1231,11 @@ Json::Value RPCServer::doSend(Json::Value& params) } } +Json::Value RPCServer::doServerInfo(Json::Value& params) +{ + return theApp->getOPs().getServerInfo(); +} + // transit_set Json::Value RPCServer::doTransitSet(Json::Value& params) { @@ -1988,6 +1993,7 @@ Json::Value RPCServer::doCommand(const std::string& command, Json::Value& params { "password_set", &RPCServer::doPasswordSet, 2, 3, optNetwork }, { "peers", &RPCServer::doPeers, 0, 0, }, { "send", &RPCServer::doSend, 3, 7, optCurrent }, + { "server_info", &RPCServer::doServerInfo, 0, 0, }, { "stop", &RPCServer::doStop, 0, 0, }, { "transit_set", &RPCServer::doTransitSet, 5, 5, optCurrent }, { "tx", &RPCServer::doTx, 1, 1, }, diff --git a/src/RPCServer.h b/src/RPCServer.h index af9274e514..ef5640ea94 100644 --- a/src/RPCServer.h +++ b/src/RPCServer.h @@ -127,6 +127,7 @@ private: Json::Value doPasswordSet(Json::Value& params); Json::Value doPeers(Json::Value& params); Json::Value doSend(Json::Value& params); + Json::Value doServerInfo(Json::Value& params); Json::Value doSessionClose(Json::Value& params); Json::Value doSessionOpen(Json::Value& params); Json::Value doStop(Json::Value& params);