Overhaul network activity toggle

- Rename RPC command "togglenetwork" to "setnetworkactive (true|false)"
- Add simple test case
- GUI toggle added to connections icon in statusbar
This commit is contained in:
Jonas Schnelli
2014-11-19 13:33:34 +01:00
committed by Luke Dashjr
parent 32efa79e0e
commit b2b33d9017
9 changed files with 75 additions and 14 deletions

View File

@@ -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)