aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/dummywallet.cpp1
-rw-r--r--src/httprpc.cpp14
-rw-r--r--src/init.h3
-rw-r--r--src/wallet/init.cpp3
-rw-r--r--src/walletinitinterface.h4
5 files changed, 15 insertions, 10 deletions
diff --git a/src/dummywallet.cpp b/src/dummywallet.cpp
index 164a4cbfd0..5b33daf85d 100644
--- a/src/dummywallet.cpp
+++ b/src/dummywallet.cpp
@@ -9,6 +9,7 @@
class DummyWalletInit : public WalletInitInterface {
public:
+ bool HasWalletSupport() const override {return false;}
void AddWalletOptions() const override;
bool ParameterInteraction() const override {return true;}
void RegisterRPC(CRPCTable &) const override {}
diff --git a/src/httprpc.cpp b/src/httprpc.cpp
index 38f6e79643..43d8c4cbbf 100644
--- a/src/httprpc.cpp
+++ b/src/httprpc.cpp
@@ -14,6 +14,7 @@
#include <util.h>
#include <utilstrencodings.h>
#include <ui_interface.h>
+#include <walletinitinterface.h>
#include <crypto/hmac_sha256.h>
#include <stdio.h>
@@ -240,10 +241,9 @@ bool StartHTTPRPC()
return false;
RegisterHTTPHandler("/", true, HTTPReq_JSONRPC);
-#ifdef ENABLE_WALLET
- // ifdef can be removed once we switch to better endpoint support and API versioning
- RegisterHTTPHandler("/wallet/", false, HTTPReq_JSONRPC);
-#endif
+ if (g_wallet_init_interface.HasWalletSupport()) {
+ RegisterHTTPHandler("/wallet/", false, HTTPReq_JSONRPC);
+ }
struct event_base* eventBase = EventBase();
assert(eventBase);
httpRPCTimerInterface = MakeUnique<HTTPRPCTimerInterface>(eventBase);
@@ -260,9 +260,9 @@ void StopHTTPRPC()
{
LogPrint(BCLog::RPC, "Stopping HTTP RPC server\n");
UnregisterHTTPHandler("/", true);
-#ifdef ENABLE_WALLET
- UnregisterHTTPHandler("/wallet/", false);
-#endif
+ if (g_wallet_init_interface.HasWalletSupport()) {
+ UnregisterHTTPHandler("/wallet/", false);
+ }
if (httpRPCTimerInterface) {
RPCUnsetTimerInterface(httpRPCTimerInterface.get());
httpRPCTimerInterface.reset();
diff --git a/src/init.h b/src/init.h
index 0c85d3c9dc..c58ba5cfd3 100644
--- a/src/init.h
+++ b/src/init.h
@@ -13,9 +13,6 @@
class CScheduler;
class CWallet;
-class WalletInitInterface;
-extern const WalletInitInterface& g_wallet_init_interface;
-
namespace boost
{
class thread_group;
diff --git a/src/wallet/init.cpp b/src/wallet/init.cpp
index b36287ff50..a299a4ee44 100644
--- a/src/wallet/init.cpp
+++ b/src/wallet/init.cpp
@@ -19,6 +19,9 @@
class WalletInit : public WalletInitInterface {
public:
+ //! Was the wallet component compiled in.
+ bool HasWalletSupport() const override {return true;}
+
//! Return the wallets help message.
void AddWalletOptions() const override;
diff --git a/src/walletinitinterface.h b/src/walletinitinterface.h
index e955816162..6f12551273 100644
--- a/src/walletinitinterface.h
+++ b/src/walletinitinterface.h
@@ -12,6 +12,8 @@ class CRPCTable;
class WalletInitInterface {
public:
+ /** Is the wallet component enabled */
+ virtual bool HasWalletSupport() const = 0;
/** Get wallet help string */
virtual void AddWalletOptions() const = 0;
/** Check wallet parameter interaction */
@@ -34,4 +36,6 @@ public:
virtual ~WalletInitInterface() {}
};
+extern const WalletInitInterface& g_wallet_init_interface;
+
#endif // BITCOIN_WALLETINITINTERFACE_H