diff options
author | Neels Hofmeyr <neels@hofmeyr.de> | 2018-12-25 17:23:41 +0100 |
---|---|---|
committer | Neels Hofmeyr <neels@hofmeyr.de> | 2020-04-28 14:53:55 +0200 |
commit | 43d5cfc13b3664b4f1cd5ecabd782eef1ff52e57 (patch) | |
tree | 9915f09598fb3ad6597bbf172661eefe085ff170 | |
parent | 61917ed51d3ce11bee097a173df97fa6249defab (diff) |
vty: show subscriber: change format of 'last LU seen'
So far, the time string format comes from ctime_r, and we manually add "UTC" to it.
The ctime_r format is wildly chaotic IMHO, mixing weekday, day-of-month and
hour and year in very unsorted ways.
Adding "UTC" to it is non-standard.
Instead use an ISO-8601 standardized time string via strftime().
Change-Id: I6731968f05050399f4dd43b241290186e0c59e1a
-rw-r--r-- | src/hlr_vty_subscr.c | 18 |
1 files changed, 7 insertions, 11 deletions
diff --git a/src/hlr_vty_subscr.c b/src/hlr_vty_subscr.c index 14a37f2..8079d10 100644 --- a/src/hlr_vty_subscr.c +++ b/src/hlr_vty_subscr.c @@ -36,25 +36,21 @@ struct vty; #define hexdump_buf(buf) osmo_hexdump_nospc((void*)buf, sizeof(buf)) -static char * -get_datestr(const time_t *t, char *datebuf) +static char *get_datestr(const time_t *t, char *buf, size_t bufsize) { - char *p, *s = ctime_r(t, datebuf); - - /* Strip trailing newline. */ - p = strchr(s, '\n'); - if (p) - *p = '\0'; - return s; + struct tm tm; + gmtime_r(t, &tm); + strftime(buf, bufsize, "%FT%T+00:00", &tm); + return buf; } static void dump_last_lu_seen(struct vty *vty, const char *domain_label, time_t last_lu_seen) { uint32_t age; - char datebuf[26]; /* for ctime_r(3) */ + char datebuf[32]; if (!last_lu_seen) return; - vty_out(vty, " last LU seen on %s: %s UTC", domain_label, get_datestr(&last_lu_seen, datebuf)); + vty_out(vty, " last LU seen on %s: %s", domain_label, get_datestr(&last_lu_seen, datebuf, sizeof(datebuf))); if (!timestamp_age(&last_lu_seen, &age)) vty_out(vty, " (invalid timestamp)%s", VTY_NEWLINE); else |