wip, the loop
authorŁukasz Stelmach <l.stelmach@samsung.com>
Mon, 3 Apr 2017 13:03:09 +0000 (15:03 +0200)
committerŁukasz Stelmach <l.stelmach@samsung.com>
Mon, 3 Apr 2017 13:03:09 +0000 (15:03 +0200)
src/faultd.c

index c8f92d9fa75e50cfdc6457314f873cadce6dfe7f..0a3e0ebf81aa87f21dcae8b0c3583c1d929dd7ca 100644 (file)
@@ -21,8 +21,8 @@
 
 int main(int ac, char* av[])
 {
-  /* sd_bus_error error = SD_BUS_ERROR_NULL; */
-  /* sd_bus_message *m = NULL; */
+  sd_bus_error error = SD_BUS_ERROR_NULL;
+  sd_bus_message *m = NULL;
   sd_bus *bus = NULL;
   /* const char *path; */
   int rc;
@@ -45,7 +45,42 @@ int main(int ac, char* av[])
     fprintf(stderr, "Failed to connect to the bus.\n");
     return -1;
   }
+
+  rc = sd_bus_call_method(bus,
+                         "org.freedesktop.systemd1",
+                         "/org/freedesktop/systemd1",
+                         "org.freedesktop.systemd1.Manager",
+                         "Subscribe",
+                         &error,
+                         NULL, NULL);
+  if (rc < 0) {
+    fprintf(stderr, "Failed to subscribe.\n");
+    return -1;
+  }
+
   printf("Hello world!\n");
+  for (;;) {
+
+    rc = sd_bus_process(bus, &m);
+    if (rc < 0) {
+      fprintf(stderr, "Failed to process the bus.\n");
+      break;
+    }
+
+    if (m != NULL) {
+      fprintf(stderr, "Received a message!\n");
+      sd_bus_message_unref(m);
+    }
+
+    if (rc > 0)
+      continue;
+
+    sd_bus_wait(bus, (uint64_t) -1);
+    if (rc < 0) {
+      fprintf(stderr, "Failed to wait on the bus.\n");
+      break;
+    }
+  }
   sd_bus_close(bus);
   return 0;
 }