about summary refs log tree commit diff
diff options
context:
space:
mode:
authorRichard Nyberg <rnyberg@murmeldjur.se>2009-01-10 23:44:26 +0100
committerRichard Nyberg <rnyberg@murmeldjur.se>2009-01-11 15:26:54 +0100
commit2947896074642c94d9a0805da78046514a12acd0 (patch)
tree25e1c40cbba6e5cf8b1f716f54b16cc9f2eed29a
parent50a313570f7663a22221cbc871044ec8ee3962e6 (diff)
downloadbtpd-2947896074642c94d9a0805da78046514a12acd0.tar.gz
btpd-2947896074642c94d9a0805da78046514a12acd0.zip
Test that the clock is working at start and test for evloop errors.
-rw-r--r--btpd/main.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/btpd/main.c b/btpd/main.c
index d4b5511..247e0f7 100644
--- a/btpd/main.c
+++ b/btpd/main.c
@@ -3,6 +3,7 @@
 #include <sys/file.h>
 #include <err.h>
 #include <getopt.h>
+#include <time.h>
 
 static void
 writepid(int pidfd)
@@ -16,6 +17,11 @@ static void
 setup_daemon(int daemonize, const char *dir, const char *log)
 {
     int pidfd;
+    struct timespec ts;
+
+    if (clock_gettime(CLOCK_MONOTONIC, &ts) != 0)
+        errx(1, "clock_gettime(CLOCK_MONOTONIC, ...) error (%s).",
+            strerror(errno));
 
     if (log == NULL)
         log = "log";
@@ -221,13 +227,14 @@ args_done:
 
     setup_daemon(daemonize, dir, log);
 
-    evloop_init();
+    if (evloop_init() != 0)
+        btpd_err("Failed to initialize evloop (%s).\n", strerror(errno));
 
     btpd_init();
 
     evloop();
 
-    btpd_err("Unexpected exit from evloop.\n");
+    btpd_err("Exit from evloop with error (%s).\n", strerror(errno));
 
     return 1;
 }