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
This commit is contained in:
parent
0d82a87c0d
commit
d9b3606234
|
@ -36,25 +36,21 @@ struct vty;
|
||||||
|
|
||||||
#define hexdump_buf(buf) osmo_hexdump_nospc((void*)buf, sizeof(buf))
|
#define hexdump_buf(buf) osmo_hexdump_nospc((void*)buf, sizeof(buf))
|
||||||
|
|
||||||
static char *
|
static char *get_datestr(const time_t *t, char *buf, size_t bufsize)
|
||||||
get_datestr(const time_t *t, char *datebuf)
|
|
||||||
{
|
{
|
||||||
char *p, *s = ctime_r(t, datebuf);
|
struct tm tm;
|
||||||
|
gmtime_r(t, &tm);
|
||||||
/* Strip trailing newline. */
|
strftime(buf, bufsize, "%FT%T+00:00", &tm);
|
||||||
p = strchr(s, '\n');
|
return buf;
|
||||||
if (p)
|
|
||||||
*p = '\0';
|
|
||||||
return s;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void dump_last_lu_seen(struct vty *vty, const char *domain_label, time_t last_lu_seen)
|
static void dump_last_lu_seen(struct vty *vty, const char *domain_label, time_t last_lu_seen)
|
||||||
{
|
{
|
||||||
uint32_t age;
|
uint32_t age;
|
||||||
char datebuf[26]; /* for ctime_r(3) */
|
char datebuf[32];
|
||||||
if (!last_lu_seen)
|
if (!last_lu_seen)
|
||||||
return;
|
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))
|
if (!timestamp_age(&last_lu_seen, &age))
|
||||||
vty_out(vty, " (invalid timestamp)%s", VTY_NEWLINE);
|
vty_out(vty, " (invalid timestamp)%s", VTY_NEWLINE);
|
||||||
else
|
else
|
||||||
|
|
Loading…
Reference in New Issue