aboutsummaryrefslogtreecommitdiff
path: root/src/rest.cpp
diff options
context:
space:
mode:
authorWladimir J. van der Laan <laanwj@gmail.com>2015-02-10 12:04:50 +0100
committerWladimir J. van der Laan <laanwj@gmail.com>2015-02-10 12:08:07 +0100
commitd48ce48093faf1a0778b424397a2879a93e5fb5e (patch)
tree46c66a3c288b70603cb2b7069e57b6ad9e7f6e75 /src/rest.cpp
parenta9565863e09a32729bd6ce33f31889099b3d75cb (diff)
parent2c0f901ea90e3efab5e15abeba011597cfdd92c1 (diff)
downloadbitcoin-d48ce48093faf1a0778b424397a2879a93e5fb5e.tar.xz
Merge #5548: [REST] add /rest/chaininfos
2c0f901 [REST] rest/chaininfos add documentation (Jonas Schnelli) 59582c8 [REST] add /rest/chaininfos (Jonas Schnelli)
Diffstat (limited to 'src/rest.cpp')
-rw-r--r--src/rest.cpp33
1 files changed, 30 insertions, 3 deletions
diff --git a/src/rest.cpp b/src/rest.cpp
index 1ee1d52912..adc2d56284 100644
--- a/src/rest.cpp
+++ b/src/rest.cpp
@@ -95,7 +95,7 @@ static bool rest_headers(AcceptedConnection* conn,
bool fRun)
{
vector<string> params;
- enum RetFormat rf = ParseDataFormat(params, strReq);
+ const RetFormat rf = ParseDataFormat(params, strReq);
vector<string> path;
boost::split(path, params[0], boost::is_any_of("/"));
@@ -159,7 +159,7 @@ static bool rest_block(AcceptedConnection* conn,
bool showTxDetails)
{
vector<string> params;
- enum RetFormat rf = ParseDataFormat(params, strReq);
+ const RetFormat rf = ParseDataFormat(params, strReq);
string hashStr = params[0];
uint256 hash;
@@ -226,13 +226,39 @@ static bool rest_block_notxdetails(AcceptedConnection* conn,
return rest_block(conn, strReq, mapHeaders, fRun, false);
}
+static bool rest_chaininfo(AcceptedConnection* conn,
+ const std::string& strReq,
+ const std::map<std::string, std::string>& mapHeaders,
+ bool fRun)
+{
+ vector<string> params;
+ const RetFormat rf = ParseDataFormat(params, strReq);
+
+ switch (rf) {
+ case RF_JSON: {
+ Array rpcParams;
+ Value chainInfoObject = getblockchaininfo(rpcParams, false);
+
+ string strJSON = write_string(chainInfoObject, false) + "\n";
+ conn->stream() << HTTPReply(HTTP_OK, strJSON, fRun) << std::flush;
+ return true;
+ }
+ default: {
+ throw RESTERR(HTTP_NOT_FOUND, "output format not found (available: json)");
+ }
+ }
+
+ // not reached
+ return true; // continue to process further HTTP reqs on this cxn
+}
+
static bool rest_tx(AcceptedConnection* conn,
const std::string& strReq,
const std::map<std::string, std::string>& mapHeaders,
bool fRun)
{
vector<string> params;
- enum RetFormat rf = ParseDataFormat(params, strReq);
+ const RetFormat rf = ParseDataFormat(params, strReq);
string hashStr = params[0];
uint256 hash;
@@ -287,6 +313,7 @@ static const struct {
{"/rest/tx/", rest_tx},
{"/rest/block/notxdetails/", rest_block_notxdetails},
{"/rest/block/", rest_block_extended},
+ {"/rest/chaininfo", rest_chaininfo},
{"/rest/headers/", rest_headers},
};