From b3e1ceaf88afa66fbdb1bcebde8d9ffcf3039bcf Mon Sep 17 00:00:00 2001 From: Donatas Abraitis Date: Fri, 20 Dec 2024 17:12:12 +0200 Subject: [PATCH] lib: Add a wrapper for time_to_string() to print time in JSON outputs newline is not expected to be printed in JSON outputs, e.g.: ``` "lastUpdate":{"epoch":1734490463,"string":"Wed Dec 18 04:54:23 2024\n" ``` Signed-off-by: Donatas Abraitis --- lib/monotime.h | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/lib/monotime.h b/lib/monotime.h index f7ae1bbbe1..5e1bfe754e 100644 --- a/lib/monotime.h +++ b/lib/monotime.h @@ -129,6 +129,22 @@ static inline char *time_to_string(time_t ts, char *buf) return ctime_r(&tbuf, buf); } +/* A wrapper for time_to_string() which removes newline at the end. + * This is needed for JSON outputs, where newline is not expected. + */ +static inline char *time_to_string_json(time_t ts, char *buf) +{ + size_t len; + + time_to_string(ts, buf); + len = strlen(buf); + + if (len && buf[len - 1] == '\n') + buf[len - 1] = '\0'; + + return buf; +} + /* Convert interval to human-friendly string, used in cli output e.g. */ static inline const char *frrtime_to_interval(time_t t, char *buf, size_t buflen)