daemon: Use rpc for "version" command

This commit is contained in:
Nathan Dorfman 2019-10-24 15:53:12 -06:00
parent fe3f6a3e6b
commit 3293780992
3 changed files with 38 additions and 3 deletions

View File

@ -28,7 +28,6 @@
#include "common/dns_utils.h"
#include "common/command_line.h"
#include "version.h"
#include "daemon/command_parser_executor.h"
#undef MONERO_DEFAULT_LOG_CATEGORY
@ -803,8 +802,7 @@ bool t_command_parser_executor::rpc_payments(const std::vector<std::string>& arg
bool t_command_parser_executor::version(const std::vector<std::string>& args)
{
std::cout << "Monero '" << MONERO_RELEASE_NAME << "' (v" << MONERO_VERSION_FULL << ")" << std::endl;
return true;
return m_executor.version();
}
bool t_command_parser_executor::prune_blockchain(const std::vector<std::string>& args)

View File

@ -2442,4 +2442,39 @@ bool t_rpc_command_executor::rpc_payments()
return true;
}
bool t_rpc_command_executor::version()
{
cryptonote::COMMAND_RPC_GET_INFO::request req;
cryptonote::COMMAND_RPC_GET_INFO::response res;
const char *fail_message = "Problem fetching info";
if (m_is_rpc)
{
if (!m_rpc_client->rpc_request(req, res, "/getinfo", fail_message))
{
return true;
}
}
else
{
if (!m_rpc_server->on_get_info(req, res) || res.status != CORE_RPC_STATUS_OK)
{
tools::fail_msg_writer() << make_error(fail_message, res.status);
return true;
}
}
if (res.version.empty())
{
tools::fail_msg_writer() << "The daemon software version is not available.";
}
else
{
tools::success_msg_writer() << res.version;
}
return true;
}
}// namespace daemonize

View File

@ -163,6 +163,8 @@ public:
bool print_net_stats();
bool version();
bool set_bootstrap_daemon(
const std::string &address,
const std::string &username,