aboutsummaryrefslogtreecommitdiff
path: root/src/interface/node.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/interface/node.cpp')
-rw-r--r--src/interface/node.cpp36
1 files changed, 36 insertions, 0 deletions
diff --git a/src/interface/node.cpp b/src/interface/node.cpp
index 740878b675..2f0114f5e4 100644
--- a/src/interface/node.cpp
+++ b/src/interface/node.cpp
@@ -15,6 +15,7 @@
#include <netaddress.h>
#include <netbase.h>
#include <primitives/block.h>
+#include <rpc/server.h>
#include <scheduler.h>
#include <sync.h>
#include <txmempool.h>
@@ -34,6 +35,7 @@
#include <atomic>
#include <boost/thread/thread.hpp>
+#include <univalue.h>
class CWallet;
@@ -114,6 +116,29 @@ class NodeImpl : public Node
}
return false;
}
+ bool ban(const CNetAddr& net_addr, BanReason reason, int64_t ban_time_offset) override
+ {
+ if (g_connman) {
+ g_connman->Ban(net_addr, reason, ban_time_offset);
+ return true;
+ }
+ return false;
+ }
+ bool unban(const CSubNet& ip) override
+ {
+ if (g_connman) {
+ g_connman->Unban(ip);
+ return true;
+ }
+ return false;
+ }
+ bool disconnect(NodeId id) override
+ {
+ if (g_connman) {
+ return g_connman->DisconnectNode(id);
+ }
+ return false;
+ }
int64_t getTotalBytesRecv() override { return g_connman ? g_connman->GetTotalBytesRecv() : 0; }
int64_t getTotalBytesSent() override { return g_connman ? g_connman->GetTotalBytesSent() : 0; }
size_t getMempoolSize() override { return ::mempool.size(); }
@@ -160,6 +185,17 @@ class NodeImpl : public Node
}
}
bool getNetworkActive() override { return g_connman && g_connman->GetNetworkActive(); }
+ UniValue executeRpc(const std::string& command, const UniValue& params, const std::string& uri) override
+ {
+ JSONRPCRequest req;
+ req.params = params;
+ req.strMethod = command;
+ req.URI = uri;
+ return ::tableRPC.execute(req);
+ }
+ std::vector<std::string> listRpcCommands() override { return ::tableRPC.listCommands(); }
+ void rpcSetTimerInterfaceIfUnset(RPCTimerInterface* iface) override { RPCSetTimerInterfaceIfUnset(iface); }
+ void rpcUnsetTimerInterface(RPCTimerInterface* iface) override { RPCUnsetTimerInterface(iface); }
std::unique_ptr<Handler> handleInitMessage(InitMessageFn fn) override
{
return MakeHandler(::uiInterface.InitMessage.connect(fn));