diff options
author | Alex van der Peet <alex.van.der.peet@gmail.com> | 2015-06-11 20:20:54 -0700 |
---|---|---|
committer | Wladimir J. van der Laan <laanwj@gmail.com> | 2015-06-16 14:19:41 +0200 |
commit | 60dbe730164552128d9b79b5120b4b5e9d456bbb (patch) | |
tree | 7f1e33dfa8e8b2c06318a9c110e3342b5f2b4f4b /src/rpcnet.cpp | |
parent | a903ad7e9cafb73f65dc78601dbef1c3c7b4fe0f (diff) |
New RPC command disconnectnode
Diffstat (limited to 'src/rpcnet.cpp')
-rw-r--r-- | src/rpcnet.cpp | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/rpcnet.cpp b/src/rpcnet.cpp index c4e038eebb..aeaf54814f 100644 --- a/src/rpcnet.cpp +++ b/src/rpcnet.cpp @@ -214,6 +214,28 @@ UniValue addnode(const UniValue& params, bool fHelp) return NullUniValue; } +UniValue disconnectnode(const UniValue& params, bool fHelp) +{ + if (fHelp || params.size() != 1) + throw runtime_error( + "disconnectnode \"node\" \n" + "\nImmediately disconnects from the specified node.\n" + "\nArguments:\n" + "1. \"node\" (string, required) The node (see getpeerinfo for nodes)\n" + "\nExamples:\n" + + HelpExampleCli("disconnectnode", "\"192.168.0.6:8333\"") + + HelpExampleRpc("disconnectnode", "\"192.168.0.6:8333\"") + ); + + CNode* pNode = FindNode(params[0].get_str()); + if (pNode == NULL) + throw JSONRPCError(RPC_CLIENT_NODE_NOT_CONNECTED, "Node not found in connected nodes"); + + pNode->CloseSocketDisconnect(); + + return NullUniValue; +} + UniValue getaddednodeinfo(const UniValue& params, bool fHelp) { if (fHelp || params.size() < 1 || params.size() > 2) |