aboutsummaryrefslogtreecommitdiff
path: root/src/rpc/core_rpc_server.cpp
diff options
context:
space:
mode:
authorAlexander Blair <snipa@jagtech.io>2020-02-06 00:26:12 -0800
committerAlexander Blair <snipa@jagtech.io>2020-02-06 00:26:13 -0800
commit25c1bd4714978d76c1c994d5370f33ea6c507f01 (patch)
treebe8ec9f760a314159757201abd7bb1023e771793 /src/rpc/core_rpc_server.cpp
parentMerge pull request #6233 (diff)
parentrpc: error out from get_info if the proxied call errors out (diff)
downloadmonero-25c1bd4714978d76c1c994d5370f33ea6c507f01.tar.xz
Merge pull request #6035
b90c4bc3 rpc: error out from get_info if the proxied call errors out (moneromooo-monero) fa16df99 make_test_signature: exit nicely on top level exception (moneromooo-monero) 054b2621 node_rpc_proxy: init some new rpc payment fields in invalidate (moneromooo-monero) d0faae2a rpc: init a few missing client_info members (moneromooo-monero) d56a483a rpc: do not propagate exceptions out of a dtor (moneromooo-monero) 3c849188 rpc: always set the update field in update on sucess (moneromooo-monero)
Diffstat (limited to 'src/rpc/core_rpc_server.cpp')
-rw-r--r--src/rpc/core_rpc_server.cpp16
1 files changed, 10 insertions, 6 deletions
diff --git a/src/rpc/core_rpc_server.cpp b/src/rpc/core_rpc_server.cpp
index 6f7a401c7..e92ae7c08 100644
--- a/src/rpc/core_rpc_server.cpp
+++ b/src/rpc/core_rpc_server.cpp
@@ -87,10 +87,14 @@ namespace
RPCTracker(const char *rpc, tools::LoggingPerformanceTimer &timer): rpc(rpc), timer(timer) {
}
~RPCTracker() {
- boost::unique_lock<boost::mutex> lock(mutex);
- auto &e = tracker[rpc];
- ++e.count;
- e.time += timer.value();
+ try
+ {
+ boost::unique_lock<boost::mutex> lock(mutex);
+ auto &e = tracker[rpc];
+ ++e.count;
+ e.time += timer.value();
+ }
+ catch (...) { /* ignore */ }
}
void pay(uint64_t amount) {
boost::unique_lock<boost::mutex> lock(mutex);
@@ -2229,8 +2233,7 @@ namespace cryptonote
//------------------------------------------------------------------------------------------------------------------------------
bool core_rpc_server::on_get_info_json(const COMMAND_RPC_GET_INFO::request& req, COMMAND_RPC_GET_INFO::response& res, epee::json_rpc::error& error_resp, const connection_context *ctx)
{
- on_get_info(req, res, ctx);
- if (res.status != CORE_RPC_STATUS_OK)
+ if (!on_get_info(req, res, ctx) || res.status != CORE_RPC_STATUS_OK)
{
error_resp.code = CORE_RPC_ERROR_CODE_INTERNAL_ERROR;
error_resp.message = res.status;
@@ -2624,6 +2627,7 @@ namespace cryptonote
{
RPC_TRACKER(update);
+ res.update = false;
if (m_core.offline())
{
res.status = "Daemon is running offline";