aboutsummaryrefslogtreecommitdiff
path: root/src/rpcnet.cpp
diff options
context:
space:
mode:
authorAlex van der Peet <alex.van.der.peet@gmail.com>2015-06-11 20:20:54 -0700
committerWladimir J. van der Laan <laanwj@gmail.com>2015-06-16 14:19:41 +0200
commit60dbe730164552128d9b79b5120b4b5e9d456bbb (patch)
tree7f1e33dfa8e8b2c06318a9c110e3342b5f2b4f4b /src/rpcnet.cpp
parenta903ad7e9cafb73f65dc78601dbef1c3c7b4fe0f (diff)
downloadbitcoin-60dbe730164552128d9b79b5120b4b5e9d456bbb.tar.xz
New RPC command disconnectnode
Diffstat (limited to 'src/rpcnet.cpp')
-rw-r--r--src/rpcnet.cpp22
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)