From f3422f6afa7acabb96fcd50bd4a09c756afb7326 Mon Sep 17 00:00:00 2001 From: OpenGnSys Support Team Date: Fri, 25 Mar 2022 14:57:36 +0100 Subject: #915 add seconds since ogserver has been launched Extend GET /stats to show the number of seconds since the ogserver started. { "time": { "now": 1647262765, /* Seconds since 1970 */ "boot": 2151909 /* Seconds since boot */ "start" : 1647262854,, /* Seconds since 1970 */ }, [...] --- src/core.h | 1 + src/main.c | 4 ++++ src/rest.c | 6 +++++- 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/core.h b/src/core.h index dd5cd58..49a646a 100644 --- a/src/core.h +++ b/src/core.h @@ -3,6 +3,7 @@ extern int socket_rest, socket_agent_rest; extern struct ev_loop *og_loop; +extern time_t start_time; int og_socket_server_init(const char *port); void og_server_accept_cb(struct ev_loop *loop, struct ev_io *io, int events); diff --git a/src/main.c b/src/main.c index 270e1d4..c4148a5 100644 --- a/src/main.c +++ b/src/main.c @@ -34,12 +34,16 @@ struct og_server_cfg ogconfig = { }, }; +time_t start_time; + int main(int argc, char *argv[]) { char config_file[PATH_MAX + 1] = OG_SERVER_CFG_JSON; struct ev_io ev_io_server_rest, ev_io_agent_rest; int val; + start_time = time(NULL); + og_loop = ev_default_loop(0); if (signal(SIGPIPE, SIG_IGN) == SIG_ERR) diff --git a/src/rest.c b/src/rest.c index d4c6dd7..a07973e 100644 --- a/src/rest.c +++ b/src/rest.c @@ -12,6 +12,7 @@ #include "utils.h" #include "list.h" #include "rest.h" +#include "core.h" #include "wol.h" #include "cfg.h" #include "schedule.h" @@ -5424,6 +5425,7 @@ static int og_cmd_get_server_stats(char *buffer_reply) .data = buffer_reply }; struct sysinfo stats; + time_t now; sysinfo(&stats); @@ -5449,8 +5451,10 @@ static int og_cmd_get_server_stats(char *buffer_reply) return -1; } - json_object_set_new(time_obj, "now", json_integer(time(NULL))); + now = time(NULL); + json_object_set_new(time_obj, "now", json_integer(now)); json_object_set_new(time_obj, "boot", json_integer(stats.uptime)); + json_object_set_new(time_obj, "start", json_integer(now - start_time)); json_object_set_new(root, "time", time_obj); json_object_set_new(memory, "size", json_integer(stats.totalram)); -- cgit v1.2.3-18-g5258