aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNeels Hofmeyr <neels@hofmeyr.de>2018-12-25 17:23:41 +0100
committerNeels Hofmeyr <neels@hofmeyr.de>2018-12-25 17:32:10 +0100
commit18a1b01ca8403f040e4c448d86df99e0cc0fafbf (patch)
treeee141bd9f8bd60090f4f35f85a818db34b300db4
parentdf8d454919e9482e5eaa823df4b495cdcc620c1d (diff)
change format of 'last LU seen'neels/last_lu_seen_fmt
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.c18
1 files changed, 8 insertions, 10 deletions
diff --git a/src/hlr_vty_subscr.c b/src/hlr_vty_subscr.c
index 92cfa2a..c2359d4 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);
@@ -79,7 +77,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;