aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/wallet/wallet_rpc_server.cpp25
1 files changed, 17 insertions, 8 deletions
diff --git a/src/wallet/wallet_rpc_server.cpp b/src/wallet/wallet_rpc_server.cpp
index 6361a6cfa..b9e685a11 100644
--- a/src/wallet/wallet_rpc_server.cpp
+++ b/src/wallet/wallet_rpc_server.cpp
@@ -3294,9 +3294,12 @@ class t_daemon
private:
const boost::program_options::variables_map& vm;
+ std::unique_ptr<tools::wallet_rpc_server> wrpc;
+
public:
t_daemon(boost::program_options::variables_map const & _vm)
: vm(_vm)
+ , wrpc(new tools::wallet_rpc_server)
{
}
@@ -3386,17 +3389,16 @@ public:
return false;
}
just_dir:
- tools::wallet_rpc_server wrpc;
- if (wal) wrpc.set_wallet(wal.release());
- bool r = wrpc.init(&vm);
+ if (wal) wrpc->set_wallet(wal.release());
+ bool r = wrpc->init(&vm);
CHECK_AND_ASSERT_MES(r, false, tools::wallet_rpc_server::tr("Failed to initialize wallet RPC server"));
- tools::signal_handler::install([&wrpc](int) {
- wrpc.send_stop_signal();
+ tools::signal_handler::install([this](int) {
+ wrpc->send_stop_signal();
});
LOG_PRINT_L0(tools::wallet_rpc_server::tr("Starting wallet RPC server"));
try
{
- wrpc.run();
+ wrpc->run();
}
catch (const std::exception &e)
{
@@ -3407,7 +3409,7 @@ public:
try
{
LOG_PRINT_L0(tools::wallet_rpc_server::tr("Saving wallet..."));
- wrpc.stop();
+ wrpc->stop();
LOG_PRINT_L0(tools::wallet_rpc_server::tr("Successfully saved"));
}
catch (const std::exception& e)
@@ -3417,6 +3419,11 @@ public:
}
return true;
}
+
+ void stop()
+ {
+ wrpc->send_stop_signal();
+ }
};
class t_executor final
@@ -3424,7 +3431,9 @@ class t_executor final
public:
static std::string const NAME;
- std::string const & name()
+ typedef ::t_daemon t_daemon;
+
+ std::string const & name() const
{
return NAME;
}