chiark / gitweb /
hostnamed: minor improvements in context_write_data_other()
[elogind.git] / src / hostname / hostnamed.c
index f7ae50dcd8a4aca9ed711bd2afe0caa9e9dee3e8..fab0601b87126e7ea4b961d14ef2a95d7d6b06ec 100644 (file)
@@ -123,7 +123,7 @@ static const char* fallback_chassis(void) {
         int r;
         char *type;
         unsigned t;
-        Virtualization v;
+        int v;
 
         v = detect_virtualization(NULL);
 
@@ -258,7 +258,7 @@ static int context_write_data_static_hostname(Context *c) {
         return write_string_file_atomic_label("/etc/hostname", c->data[PROP_STATIC_HOSTNAME]);
 }
 
-static int context_write_data_other(Context *c) {
+static int context_write_data_machine_info(Context *c) {
 
         static const char * const name[_PROP_MAX] = {
                 [PROP_PRETTY_HOSTNAME] = "PRETTY_HOSTNAME",
@@ -275,7 +275,7 @@ static int context_write_data_other(Context *c) {
         if (r < 0 && r != -ENOENT)
                 return r;
 
-        for (p = 2; p < _PROP_MAX; p++) {
+        for (p = PROP_PRETTY_HOSTNAME; p <= PROP_CHASSIS; p++) {
                 char *t, **u;
 
                 assert(name[p]);
@@ -510,7 +510,7 @@ static int set_machine_info(Context *c, sd_bus *bus, sd_bus_message *m, int prop
                 c->data[prop] = h;
         }
 
-        r = context_write_data_other(c);
+        r = context_write_data_machine_info(c);
         if (r < 0) {
                 log_error("Failed to write machine info: %s", strerror(-r));
                 return sd_bus_error_set_errnof(error, r, "Failed to write machine info: %s", strerror(-r));
@@ -574,7 +574,7 @@ static int connect_bus(Context *c, sd_event *event, sd_bus **_bus) {
                 return r;
         }
 
-        r = sd_bus_request_name(bus, "org.freedesktop.hostname1", SD_BUS_NAME_REPLACE_EXISTING|SD_BUS_NAME_DO_NOT_QUEUE);
+        r = sd_bus_request_name(bus, "org.freedesktop.hostname1", 0);
         if (r < 0) {
                 log_error("Failed to register name: %s", strerror(-r));
                 return r;
@@ -627,24 +627,24 @@ int main(int argc, char *argv[]) {
                 goto finish;
         }
 
+        sd_event_set_watchdog(event, true);
+
         r = connect_bus(&context, event, &bus);
         if (r < 0)
                 goto finish;
 
         r = context_read_data(&context);
         if (r < 0) {
-                log_error("Failed to read timezone data: %s", strerror(-r));
+                log_error("Failed to read hostname and machine information: %s", strerror(-r));
                 goto finish;
         }
 
-        r = bus_event_loop_with_idle(event, bus, "org.freedesktop.hostname1", DEFAULT_EXIT_USEC);
+        r = bus_event_loop_with_idle(event, bus, "org.freedesktop.hostname1", 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);