Alex van der Peet
9 years ago
committed by
Jack Grigg
No known key found for this signature in database
GPG Key ID: 6A6914DAFBEA00DA
4 changed files with
25 additions and
0 deletions
-
src/rpcnet.cpp
-
src/rpcprotocol.h
-
src/rpcserver.cpp
-
src/rpcserver.h
|
|
@ -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) |
|
|
|
|
|
@ -64,6 +64,7 @@ enum RPCErrorCode |
|
|
|
RPC_CLIENT_IN_INITIAL_DOWNLOAD = -10, //! Still downloading initial blocks
|
|
|
|
RPC_CLIENT_NODE_ALREADY_ADDED = -23, //! Node is already added
|
|
|
|
RPC_CLIENT_NODE_NOT_ADDED = -24, //! Node has not been added before
|
|
|
|
RPC_CLIENT_NODE_NOT_CONNECTED = -29, //! Node to disconnect not found in connected nodes
|
|
|
|
|
|
|
|
//! Wallet errors
|
|
|
|
RPC_WALLET_ERROR = -4, //! Unspecified problem with wallet (key not found etc.)
|
|
|
|
|
|
@ -280,6 +280,7 @@ static const CRPCCommand vRPCCommands[] = |
|
|
|
/* P2P networking */ |
|
|
|
{ "network", "getnetworkinfo", &getnetworkinfo, true }, |
|
|
|
{ "network", "addnode", &addnode, true }, |
|
|
|
{ "network", "disconnectnode", &disconnectnode, true }, |
|
|
|
{ "network", "getaddednodeinfo", &getaddednodeinfo, true }, |
|
|
|
{ "network", "getconnectioncount", &getconnectioncount, true }, |
|
|
|
{ "network", "getnettotals", &getnettotals, true }, |
|
|
|
|
|
@ -158,6 +158,7 @@ extern UniValue getconnectioncount(const UniValue& params, bool fHelp); // in rp |
|
|
|
extern UniValue getpeerinfo(const UniValue& params, bool fHelp); |
|
|
|
extern UniValue ping(const UniValue& params, bool fHelp); |
|
|
|
extern UniValue addnode(const UniValue& params, bool fHelp); |
|
|
|
extern UniValue disconnectnode(const UniValue& params, bool fHelp); |
|
|
|
extern UniValue getaddednodeinfo(const UniValue& params, bool fHelp); |
|
|
|
extern UniValue getnettotals(const UniValue& params, bool fHelp); |
|
|
|
|
|
|
|