chiark / gitweb /
bus: fix exit-on-idle for driverd
[elogind.git] / src / timedate / timedated.c
index af2b0785cf6bafa026c3d55530ad74591fee57ca..d85ce57394468347028cdadcca9b5577246a29e7 100644 (file)
@@ -470,6 +470,9 @@ static int property_get_rtc_time(
         if (r == -EBUSY) {
                 log_warning("/dev/rtc is busy, is somebody keeping it open continously? That's not a good idea... Returning a bogus RTC timestamp.");
                 t = 0;
+        } else if (r == -ENOENT) {
+                log_debug("Not /dev/rtc found.");
+                t = 0; /* no RTC found */
         } else if (r < 0)
                 return sd_bus_error_set_errnof(error, r, "Failed to read RTC: %s", strerror(-r));
         else
@@ -788,7 +791,7 @@ static int connect_bus(Context *c, sd_event *event, sd_bus **_bus) {
                 return r;
         }
 
-        r = sd_bus_request_name(bus, "org.freedesktop.timedate1", SD_BUS_NAME_REPLACE_EXISTING|SD_BUS_NAME_DO_NOT_QUEUE);
+        r = sd_bus_request_name(bus, "org.freedesktop.timedate1", 0);
         if (r < 0) {
                 log_error("Failed to register name: %s", strerror(-r));
                 return r;
@@ -854,14 +857,12 @@ int main(int argc, char *argv[]) {
                 goto finish;
         }
 
-        r = bus_event_loop_with_idle(event, bus, "org.freedesktop.timedate1", DEFAULT_EXIT_USEC);
+        r = bus_event_loop_with_idle(event, bus, "org.freedesktop.timedate1", DEFAULT_EXIT_USEC, NULL, NULL);
         if (r < 0) {
                 log_error("Failed to run event loop: %s", strerror(-r));
                 goto finish;
         }
 
-        r = 0;
-
 finish:
         context_free(&context, bus);