diff options
| author | Donatas Abraitis <donatas@opensourcerouting.org> | 2024-12-20 17:12:12 +0200 |
|---|---|---|
| committer | Donatas Abraitis <donatas@opensourcerouting.org> | 2024-12-20 17:12:12 +0200 |
| commit | b3e1ceaf88afa66fbdb1bcebde8d9ffcf3039bcf (patch) | |
| tree | a820f5f4272a519249f88ec366a2d5766d8eaf37 /lib/monotime.h | |
| parent | 2f0f5d9ab134f1b7d73bb3b206c6cb2fd7b512d7 (diff) | |
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>
Diffstat (limited to 'lib/monotime.h')
| -rw-r--r-- | lib/monotime.h | 16 |
1 files changed, 16 insertions, 0 deletions
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) |
