]> git.ipfire.org Git - thirdparty/bird.git/commitdiff
Added functions for parsing and formatting of dates.
authorMartin Mares <mj@ucw.cz>
Tue, 3 Aug 1999 19:29:27 +0000 (19:29 +0000)
committerMartin Mares <mj@ucw.cz>
Tue, 3 Aug 1999 19:29:27 +0000 (19:29 +0000)
TODO
sysdep/unix/io.c
sysdep/unix/timer.h

diff --git a/TODO b/TODO
index 2a9120ba90a9e887839284066c2b41432b880dc8..92713160d4bdc7e0307a94860bf10ef0c2792abb 100644 (file)
--- a/TODO
+++ b/TODO
@@ -7,7 +7,6 @@ Core
 - prefer loopback addresses as router IDs (dummy interface?)
 
 - config: executable config files
-- config: better format for datetime then seconds
 
 - do we really need preconfig?
 
index 6d44f809619e43bf516ab6d173500fabd086ec05..39cf200f86f98d4a3e4a1a0f9b7e58c00a74fe16 100644 (file)
@@ -217,6 +217,33 @@ tm_shot(void)
     }
 }
 
+bird_clock_t
+tm_parse_date(char *x)
+{
+  struct tm tm;
+  int n;
+  time_t t;
+
+  if (sscanf(x, "%d-%d-%d%n", &tm.tm_mday, &tm.tm_mon, &tm.tm_year, &n) != 3 || x[n])
+    return 0;
+  tm.tm_mon--;
+  tm.tm_year -= 1900;
+  tm.tm_hour = tm.tm_min = tm.tm_sec = 0;
+  t = mktime(&tm);
+  if (t == (time_t) -1)
+    return 0;
+  return t;
+}
+
+void
+tm_format_date(char *x, bird_clock_t t)
+{
+  struct tm *tm;
+
+  tm = localtime(&t);
+  sprintf(x, "%02d-%02d-%04d", tm->tm_mday, tm->tm_mon+1, tm->tm_year+1900);
+}
+
 /*
  *     Sockets
  */
index 10351a61e006e4f544396544126b7041dd46d5b6..afb2668a30416d304d5c8640c948bdf69525ed75 100644 (file)
@@ -32,4 +32,8 @@ void tm_dump_all(void);
 
 extern bird_clock_t now;               /* Time in seconds since unknown epoch */
 
+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 */
+
 #endif