From e38993bb36801d492cad87479b8473794f19c9da Mon Sep 17 00:00:00 2001 From: Jon Lund Steffensen Date: Tue, 26 Mar 2013 02:38:24 +0100 Subject: RPC: Add "togglenetwork" method to toggle network activity temporarily RPC command "togglenetwork" toggles network and returns new state after command. RPC command "getinfo" returns "networkactive" field in output. --- src/rpc/net.cpp | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'src/rpc/net.cpp') diff --git a/src/rpc/net.cpp b/src/rpc/net.cpp index b011029f51..7f5b107997 100644 --- a/src/rpc/net.cpp +++ b/src/rpc/net.cpp @@ -571,6 +571,24 @@ UniValue clearbanned(const UniValue& params, bool fHelp) return NullUniValue; } +UniValue togglenetwork(const JSONRPCRequest& request) +{ + if (request.fHelp || request.params.size() != 0) { + throw runtime_error( + "togglenetwork\n" + "Toggle all network activity temporarily." + ); + } + + if (!g_connman) { + throw JSONRPCError(RPC_CLIENT_P2P_DISABLED, "Error: Peer-to-peer functionality missing or disabled"); + } + + g_connman->SetNetworkActive(!g_connman->GetNetworkActive()); + + return g_connman->GetNetworkActive(); +} + static const CRPCCommand commands[] = { // category name actor (function) okSafeMode // --------------------- ------------------------ ----------------------- ---------- @@ -585,6 +603,7 @@ static const CRPCCommand commands[] = { "network", "setban", &setban, true }, { "network", "listbanned", &listbanned, true }, { "network", "clearbanned", &clearbanned, true }, + { "network", "togglenetwork", &togglenetwork, true, }, }; void RegisterNetRPCCommands(CRPCTable &t) -- cgit v1.2.3