diff options
author | Neels Hofmeyr <neels@hofmeyr.de> | 2018-12-25 17:23:41 +0100 |
---|---|---|
committer | Alexander Couzens <lynxis@fe80.eu> | 2019-08-19 02:24:05 +0200 |
commit | f302de93dd03cd81c89838f986be12aafc4f903c (patch) | |
tree | 4cf44c5f86beaea39aeb17846da714a6169623c8 | |
parent | 28f0774e341c3dbe1045ca61a1dd3f1e903f55d0 (diff) |
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, 8 insertions, 10 deletions
diff --git a/src/hlr_vty_subscr.c b/src/hlr_vty_subscr.c index 73dfab6..b53227a 100644 --- a/src/hlr_vty_subscr.c +++ b/src/hlr_vty_subscr.c @@ -35,16 +35,15 @@ 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 *p, *s = ctime_r(t, datebuf); + static char buf[32]; + struct tm tm; - /* Strip trailing newline. */ - p = strchr(s, '\n'); - if (p) - *p = '\0'; - return s; + tm = *gmtime(t); + + strftime(buf, sizeof(buf), "%FT%T+00:00", &tm); + return buf; } static void subscr_dump_full_vty(struct vty *vty, struct hlr_subscriber *subscr) @@ -52,7 +51,6 @@ static void subscr_dump_full_vty(struct vty *vty, struct hlr_subscriber *subscr) int rc; struct osmo_sub_auth_data aud2g; struct osmo_sub_auth_data aud3g; - char datebuf[26]; /* for ctime_r(3) */ vty_out(vty, " ID: %"PRIu64"%s", subscr->id, VTY_NEWLINE); @@ -88,7 +86,7 @@ static void subscr_dump_full_vty(struct vty *vty, struct hlr_subscriber *subscr) if (subscr->ms_purged_ps) vty_out(vty, " PS purged%s", VTY_NEWLINE); if (subscr->last_lu_seen) - vty_out(vty, " last LU seen: %s UTC%s", get_datestr(&subscr->last_lu_seen, datebuf), VTY_NEWLINE); + vty_out(vty, " last LU seen: %s%s", get_datestr(&subscr->last_lu_seen), VTY_NEWLINE); if (!*subscr->imsi) return; |