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 <donatas@opensourcerouting.org>
This commit is contained in:
Donatas Abraitis 2024-12-20 17:12:12 +02:00
parent 2f0f5d9ab1
commit b3e1ceaf88

View file

@ -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)