diff options
author | Jonas Schnelli <jonas.schnelli@include7.ch> | 2014-11-19 13:33:34 +0100 |
---|---|---|
committer | Luke Dashjr <luke-jr+git@utopios.org> | 2016-10-24 10:23:58 +0000 |
commit | b2b33d9017cd7bc92099338773313fdf4572dc4a (patch) | |
tree | a99ace8f2586c6d9e0973b9c7c6a71188d5527ce /src/rpc | |
parent | 32efa79e0e63b6d3f055326b2e6b794815d408ad (diff) |
Overhaul network activity toggle
- Rename RPC command "togglenetwork" to "setnetworkactive (true|false)"
- Add simple test case
- GUI toggle added to connections icon in statusbar
Diffstat (limited to 'src/rpc')
-rw-r--r-- | src/rpc/client.cpp | 1 | ||||
-rw-r--r-- | src/rpc/net.cpp | 17 |
2 files changed, 11 insertions, 7 deletions
diff --git a/src/rpc/client.cpp b/src/rpc/client.cpp index c14d9d6747..66648b6853 100644 --- a/src/rpc/client.cpp +++ b/src/rpc/client.cpp @@ -107,6 +107,7 @@ static const CRPCConvertParam vRPCConvertParams[] = { "prioritisetransaction", 2 }, { "setban", 2 }, { "setban", 3 }, + { "setnetworkactive", 0 }, { "getmempoolancestors", 1 }, { "getmempooldescendants", 1 }, }; diff --git a/src/rpc/net.cpp b/src/rpc/net.cpp index 7f5b107997..045089e2e5 100644 --- a/src/rpc/net.cpp +++ b/src/rpc/net.cpp @@ -401,6 +401,7 @@ UniValue getnetworkinfo(const UniValue& params, bool fHelp) " \"localrelay\": true|false, (bool) true if transaction relay is requested from peers\n" " \"timeoffset\": xxxxx, (numeric) the time offset\n" " \"connections\": xxxxx, (numeric) the number of connections\n" + " \"networkactive\": x, (numeric) the number of connections\n" " \"networks\": [ (array) information per network\n" " {\n" " \"name\": \"xxx\", (string) network (ipv4, ipv6 or onion)\n" @@ -435,8 +436,10 @@ UniValue getnetworkinfo(const UniValue& params, bool fHelp) obj.push_back(Pair("localservices", strprintf("%016x", g_connman->GetLocalServices()))); obj.push_back(Pair("localrelay", fRelayTxes)); obj.push_back(Pair("timeoffset", GetTimeOffset())); - if(g_connman) + if (g_connman) { + obj.push_back(Pair("networkactive", (int)g_connman->GetNetworkActive())); obj.push_back(Pair("connections", (int)g_connman->GetNodeCount(CConnman::CONNECTIONS_ALL))); + } obj.push_back(Pair("networks", GetNetworksInfo())); obj.push_back(Pair("relayfee", ValueFromAmount(::minRelayTxFee.GetFeePerK()))); UniValue localAddresses(UniValue::VARR); @@ -571,12 +574,12 @@ UniValue clearbanned(const UniValue& params, bool fHelp) return NullUniValue; } -UniValue togglenetwork(const JSONRPCRequest& request) +UniValue setnetworkactive(const JSONRPCRequest& request) { - if (request.fHelp || request.params.size() != 0) { + if (request.fHelp || request.params.size() != 1) { throw runtime_error( - "togglenetwork\n" - "Toggle all network activity temporarily." + "setnetworkactive \"true|false\"\n" + "Disable/Re-Enable all network activity temporarily." ); } @@ -584,7 +587,7 @@ UniValue togglenetwork(const JSONRPCRequest& request) throw JSONRPCError(RPC_CLIENT_P2P_DISABLED, "Error: Peer-to-peer functionality missing or disabled"); } - g_connman->SetNetworkActive(!g_connman->GetNetworkActive()); + g_connman->SetNetworkActive(request.params[0].get_bool()); return g_connman->GetNetworkActive(); } @@ -603,7 +606,7 @@ static const CRPCCommand commands[] = { "network", "setban", &setban, true }, { "network", "listbanned", &listbanned, true }, { "network", "clearbanned", &clearbanned, true }, - { "network", "togglenetwork", &togglenetwork, true, }, + { "network", "setnetworkactive", &setnetworkactive, true, }, }; void RegisterNetRPCCommands(CRPCTable &t) |