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;
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;
}