From 6f6a59699067e0272c7acb68a2474faba4aeecd5 Mon Sep 17 00:00:00 2001 From: Christopher Jeffrey Date: Fri, 17 Oct 2014 14:00:12 -0700 Subject: [PATCH] fix GetInfo() and GetPeerInfo(). --- src/bitcoindjs.cc | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/src/bitcoindjs.cc b/src/bitcoindjs.cc index e14eafd5..cecbe493 100644 --- a/src/bitcoindjs.cc +++ b/src/bitcoindjs.cc @@ -1501,14 +1501,14 @@ NAN_METHOD(GetInfo) { obj->Set(NanNew("protocolversion"), NanNew(PROTOCOL_VERSION)); #ifdef ENABLE_WALLET if (pwalletMain) { - obj->Set(NanNew("walletversion"), NanNewGetVersion())); + obj->Set(NanNew("walletversion"), NanNew(pwalletMain->GetVersion())); obj->Set(NanNew("balance"), NanNew(pwalletMain->GetBalance())); // double } #endif obj->Set(NanNew("blocks"), NanNew((int)chainActive.Height())->ToInt32()); obj->Set(NanNew("timeoffset"), NanNew(GetTimeOffset())); obj->Set(NanNew("connections"), NanNew((int)vNodes.size())->ToInt32()); - obj->Set(NanNew("proxy", NanNew(proxy.IsValid() ? proxy.ToStringIPPort() : std::string("")))); + obj->Set(NanNew("proxy"), NanNew(proxy.IsValid() ? proxy.ToStringIPPort() : std::string(""))); obj->Set(NanNew("difficulty"), NanNew((double)GetDifficulty())); obj->Set(NanNew("testnet"), NanNew(Params().NetworkID() == CBaseChainParams::TESTNET)); #ifdef ENABLE_WALLET @@ -1522,7 +1522,7 @@ NAN_METHOD(GetInfo) { obj->Set(NanNew("paytxfee"), NanNew(payTxFee.GetFeePerK())); // double #endif obj->Set(NanNew("relayfee"), NanNew(::minRelayTxFee.GetFeePerK())); // double - obj->Set(NanNew("errors", NanNew(GetWarnings("statusbar")))); + obj->Set(NanNew("errors"), NanNew(GetWarnings("statusbar"))); NanReturnValue(obj); } @@ -1545,7 +1545,14 @@ NAN_METHOD(GetPeerInfo) { int i = 0; vector vstats; - CopyNodeStats(vstats); + vstats.clear(); + LOCK(cs_vNodes); + vstats.reserve(vNodes.size()); + BOOST_FOREACH(CNode* pnode, vNodes) { + CNodeStats stats; + pnode->copyStats(stats); + vstats.push_back(stats); + } BOOST_FOREACH(const CNodeStats& stats, vstats) { Local obj = NanNew(); @@ -1573,7 +1580,7 @@ NAN_METHOD(GetPeerInfo) { obj->Set(NanNew("startingheight"), NanNew(stats.nStartingHeight)); if (fStateStats) { obj->Set(NanNew("banscore"), NanNew(statestats.nMisbehavior)); - obj->Set(NanNew("syncheight"), NanNew(statestats.nSyncHeight)); + obj->Set(NanNew("syncheight"), NanNew(statestats.nSyncHeight)->ToInt32()); } obj->Set(NanNew("syncnode"), NanNew(stats.fSyncNode)); obj->Set(NanNew("whitelisted"), NanNew(stats.fWhitelisted));