#include "lib/timer.h"
#include "lib/socket.h"
#include "lib/event.h"
+#include "lib/string.h"
#include "nest/iface.h"
#ifdef IPV6
sprintf(x, "%02d-%02d-%04d", tm->tm_mday, tm->tm_mon+1, tm->tm_year+1900);
}
+void
+tm_format_reltime(char *x, bird_clock_t t)
+{
+ struct tm *tm;
+ bird_clock_t delta = now - t;
+ static char *month_names[12] = { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" };
+
+ tm = localtime(&t);
+ if (delta < 0)
+ strcpy(x, "?fut?");
+ else if (delta < 20*3600)
+ bsprintf(x, "%02d:%02d", tm->tm_hour, tm->tm_min);
+ else if (delta < 360*86400)
+ bsprintf(x, "%s%02d", month_names[tm->tm_mon], tm->tm_mday);
+ else
+ bsprintf(x, "%d", tm->tm_year+1900);
+}
+
/*
* Sockets
*/
bird_clock_t tm_parse_date(char *); /* Convert date to bird_clock_t */
void tm_format_date(char *, bird_clock_t); /* Convert bird_clock_t to date */
#define TM_DATE_BUFFER_SIZE 12 /* Buffer size required by tm_format_date */
+void tm_format_reltime(char *, bird_clock_t); /* Convert bird_clock_t to relative datetime string */
+#define TM_RELTIME_BUFFER_SIZE 12 /* Buffer size required by tm_format_time */
#ifdef TIME_T_IS_64BIT
#define TIME_INFINITY 0x7fffffffffffffff