From aa16980cec0eefcf9e92db4190f5ce81c6eec236 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Markus=20M=C3=A4kel=C3=A4?= Date: Mon, 17 Apr 2017 19:29:00 +0300 Subject: [PATCH] MXS-1220: Fix date formatting Some of the dates were printed with a trailing newline. This was added by asctime_r. Fixed `/services` resource returning an empty array. --- server/core/server.cc | 10 +++++++++- server/core/service.cc | 10 ++++++---- server/core/session.cc | 8 ++++++-- 3 files changed, 21 insertions(+), 7 deletions(-) diff --git a/server/core/server.cc b/server/core/server.cc index b8f18483f..72de5e008 100644 --- a/server/core/server.cc +++ b/server/core/server.cc @@ -38,6 +38,7 @@ #include #include #include + #include #include #include @@ -48,6 +49,7 @@ #include #include #include +#include #include #include "maxscale/monitor.h" @@ -1438,7 +1440,13 @@ json_t* server_to_json(const SERVER* server) if (server->node_ts > 0) { - json_object_set_new(rval, "last_heartbeat", json_integer(server->node_ts)); + struct tm result; + char timebuf[30]; + time_t tim = server->node_ts; + asctime_r(localtime_r(&tim, &result), timebuf); + trim(timebuf); + + json_object_set_new(rval, "last_heartbeat", json_string(timebuf)); } json_t* stats = json_object(); diff --git a/server/core/service.cc b/server/core/service.cc index 3ca3055e2..c0ac3eea7 100644 --- a/server/core/service.cc +++ b/server/core/service.cc @@ -2375,9 +2375,6 @@ json_t* service_to_json(const SERVICE* service) // TODO: Handle errors json_t* rval = json_object(); - struct tm result; - char timebuf[30]; - json_object_set_new(rval, "name", json_string(service->name)); json_object_set_new(rval, "router", json_string(service->routerModule)); json_object_set_new(rval, "state", json_string(service_state_to_string(service->state))); @@ -2388,7 +2385,12 @@ json_t* service_to_json(const SERVICE* service) //service->router->diagnostics(service->router_instance, dcb); } + struct tm result; + char timebuf[30]; + asctime_r(localtime_r(&service->stats.started, &result), timebuf); + trim(timebuf); + json_object_set_new(rval, "started", json_string(timebuf)); json_object_set_new(rval, "enable_root", json_boolean(service->enable_root)); @@ -2448,7 +2450,7 @@ json_t* service_list_to_json() spinlock_acquire(&service_spin); - for (SERVICE *service = allServices; service && !rval; service = service->next) + for (SERVICE *service = allServices; service; service = service->next) { json_t* svc = service_to_json(service); diff --git a/server/core/session.cc b/server/core/session.cc index 50055f76e..366821f9c 100644 --- a/server/core/session.cc +++ b/server/core/session.cc @@ -45,6 +45,7 @@ #include #include #include +#include #include "maxscale/session.h" #include "maxscale/filter.h" @@ -1015,8 +1016,11 @@ json_t* session_to_json(const MXS_SESSION *session) struct tm result; char buf[60]; - json_object_set_new(rval, "connected", - json_string(asctime_r(localtime_r(&session->stats.connect, &result), buf))); + + asctime_r(localtime_r(&session->stats.connect, &result), buf); + trim(buf); + + json_object_set_new(rval, "connected", json_string(buf)); if (session->client_dcb->state == DCB_STATE_POLLING) {