Merge pull request #1862 from Bilb/fix-abort-exit-on-stop

summary status: no services means not running
pull/1864/head
majestrate 2 years ago committed by GitHub
commit 6f46fe7e0c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -95,18 +95,17 @@ namespace llarp
util::StatusObject util::StatusObject
Router::ExtractStatus() const Router::ExtractStatus() const
{ {
if (_running) if (not _running)
{ util::StatusObject{{"running", false}};
return util::StatusObject{
{"running", true}, return util::StatusObject{
{"numNodesKnown", _nodedb->NumLoaded()}, {"running", true},
{"dht", _dht->impl->ExtractStatus()}, {"numNodesKnown", _nodedb->NumLoaded()},
{"services", _hiddenServiceContext.ExtractStatus()}, {"dht", _dht->impl->ExtractStatus()},
{"exit", _exitContext.ExtractStatus()}, {"services", _hiddenServiceContext.ExtractStatus()},
{"links", _linkManager.ExtractStatus()}, {"exit", _exitContext.ExtractStatus()},
{"outboundMessages", _outboundMessageHandler.ExtractStatus()}}; {"links", _linkManager.ExtractStatus()},
} {"outboundMessages", _outboundMessageHandler.ExtractStatus()}};
return util::StatusObject{{"running", false}};
} }
util::StatusObject util::StatusObject
@ -116,6 +115,7 @@ namespace llarp
return util::StatusObject{{"running", false}}; return util::StatusObject{{"running", false}};
auto services = _hiddenServiceContext.ExtractStatus(); auto services = _hiddenServiceContext.ExtractStatus();
auto link_types = _linkManager.ExtractStatus(); auto link_types = _linkManager.ExtractStatus();
uint64_t tx_rate = 0; uint64_t tx_rate = 0;
@ -140,16 +140,19 @@ namespace llarp
// Merge snodeSessions, remoteSessions and default into a single array // Merge snodeSessions, remoteSessions and default into a single array
std::vector<nlohmann::json> builders; std::vector<nlohmann::json> builders;
const auto& serviceDefault = services.at("default"); if (services.is_object())
builders.push_back(serviceDefault); {
const auto& serviceDefault = services.at("default");
builders.push_back(serviceDefault);
auto snode_sessions = serviceDefault.at("snodeSessions"); auto snode_sessions = serviceDefault.at("snodeSessions");
for (const auto& session : snode_sessions) for (const auto& session : snode_sessions)
builders.push_back(session); builders.push_back(session);
auto remote_sessions = serviceDefault.at("remoteSessions"); auto remote_sessions = serviceDefault.at("remoteSessions");
for (const auto& session : remote_sessions) for (const auto& session : remote_sessions)
builders.push_back(session); builders.push_back(session);
}
// Iterate over all items on this array to build the global pathStats // Iterate over all items on this array to build the global pathStats
uint64_t pathsCount = 0; uint64_t pathsCount = 0;
@ -180,13 +183,10 @@ namespace llarp
} }
double ratio = static_cast<double>(success) / (attempts + 1); double ratio = static_cast<double>(success) / (attempts + 1);
return util::StatusObject{ util::StatusObject stats{
{"running", true}, {"running", true},
{"version", llarp::VERSION_FULL}, {"version", llarp::VERSION_FULL},
{"uptime", to_json(Uptime())}, {"uptime", to_json(Uptime())},
{"authCodes", services["default"]["authCodes"]},
{"exitMap", services["default"]["exitMap"]},
{"lokiAddress", services["default"]["identity"]},
{"numPathsBuilt", pathsCount}, {"numPathsBuilt", pathsCount},
{"numPeersConnected", peers}, {"numPeersConnected", peers},
{"numRoutersKnown", _nodedb->NumLoaded()}, {"numRoutersKnown", _nodedb->NumLoaded()},
@ -194,6 +194,14 @@ namespace llarp
{"txRate", tx_rate}, {"txRate", tx_rate},
{"rxRate", rx_rate}, {"rxRate", rx_rate},
}; };
if (services.is_object())
{
stats["authCodes"] = services["default"]["authCodes"];
stats["exitMap"] = services["default"]["exitMap"];
stats["lokiAddress"] = services["default"]["identity"];
}
return stats;
} }
bool bool

Loading…
Cancel
Save