X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fhostname%2Fhostnamed.c;h=edd5c8da37d9d0722bd9bab2cb5703796a3469d1;hb=0a1beeb64207eaa88ab9236787b1cbc2f704ae14;hp=d31fef7abed894f66198aefcb56cf16a8740bd58;hpb=630a4d9ea7298fb4a494662cbb4871069143ff56;p=elogind.git diff --git a/src/hostname/hostnamed.c b/src/hostname/hostnamed.c index d31fef7ab..edd5c8da3 100644 --- a/src/hostname/hostnamed.c +++ b/src/hostname/hostnamed.c @@ -138,7 +138,8 @@ static bool valid_chassis(const char *chassis) { "server\0" "tablet\0" "handset\0" - "watch\0", + "watch\0" + "embedded\0", chassis); } @@ -287,7 +288,7 @@ static int context_update_kernel_hostname(Context *c) { else hn = "localhost"; - if (sethostname(hn, strlen(hn)) < 0) + if (sethostname_idempotent(hn) < 0) return -errno; return 0; @@ -441,7 +442,7 @@ static int method_set_hostname(sd_bus *bus, sd_bus_message *m, void *userdata, s r = context_update_kernel_hostname(c); if (r < 0) { - log_error("Failed to set host name: %s", strerror(-r)); + log_error_errno(-r, "Failed to set host name: %m"); return sd_bus_error_set_errnof(error, r, "Failed to set hostname: %s", strerror(-r)); } @@ -493,13 +494,13 @@ static int method_set_static_hostname(sd_bus *bus, sd_bus_message *m, void *user r = context_update_kernel_hostname(c); if (r < 0) { - log_error("Failed to set host name: %s", strerror(-r)); + log_error_errno(-r, "Failed to set host name: %m"); return sd_bus_error_set_errnof(error, r, "Failed to set hostname: %s", strerror(-r)); } r = context_write_data_static_hostname(c); if (r < 0) { - log_error("Failed to write static host name: %s", strerror(-r)); + log_error_errno(-r, "Failed to write static host name: %m"); return sd_bus_error_set_errnof(error, r, "Failed to set static hostname: %s", strerror(-r)); } @@ -572,7 +573,7 @@ static int set_machine_info(Context *c, sd_bus *bus, sd_bus_message *m, int prop r = context_write_data_machine_info(c); if (r < 0) { - log_error("Failed to write machine info: %s", strerror(-r)); + log_error_errno(-r, "Failed to write machine info: %m"); return sd_bus_error_set_errnof(error, r, "Failed to write machine info: %s", strerror(-r)); } @@ -613,7 +614,7 @@ static int method_set_location(sd_bus *bus, sd_bus_message *m, void *userdata, s static const sd_bus_vtable hostname_vtable[] = { SD_BUS_VTABLE_START(0), - SD_BUS_PROPERTY("Hostname", "s", NULL, offsetof(Context, data) + sizeof(char*) * PROP_HOSTNAME, 0), + SD_BUS_PROPERTY("Hostname", "s", NULL, offsetof(Context, data) + sizeof(char*) * PROP_HOSTNAME, SD_BUS_VTABLE_PROPERTY_EMITS_CHANGE), SD_BUS_PROPERTY("StaticHostname", "s", NULL, offsetof(Context, data) + sizeof(char*) * PROP_STATIC_HOSTNAME, SD_BUS_VTABLE_PROPERTY_EMITS_CHANGE), SD_BUS_PROPERTY("PrettyHostname", "s", NULL, offsetof(Context, data) + sizeof(char*) * PROP_PRETTY_HOSTNAME, SD_BUS_VTABLE_PROPERTY_EMITS_CHANGE), SD_BUS_PROPERTY("IconName", "s", property_get_icon_name, 0, SD_BUS_VTABLE_PROPERTY_EMITS_CHANGE), @@ -645,25 +646,25 @@ static int connect_bus(Context *c, sd_event *event, sd_bus **_bus) { r = sd_bus_default_system(&bus); if (r < 0) { - log_error("Failed to get system bus connection: %s", strerror(-r)); + log_error_errno(-r, "Failed to get system bus connection: %m"); return r; } r = sd_bus_add_object_vtable(bus, NULL, "/org/freedesktop/hostname1", "org.freedesktop.hostname1", hostname_vtable, c); if (r < 0) { - log_error("Failed to register object: %s", strerror(-r)); + log_error_errno(-r, "Failed to register object: %m"); return r; } r = sd_bus_request_name(bus, "org.freedesktop.hostname1", 0); if (r < 0) { - log_error("Failed to register name: %s", strerror(-r)); + log_error_errno(-r, "Failed to register name: %m"); return r; } r = sd_bus_attach_event(bus, event, 0); if (r < 0) { - log_error("Failed to attach bus to event loop: %s", strerror(-r)); + log_error_errno(-r, "Failed to attach bus to event loop: %m"); return r; } @@ -684,7 +685,7 @@ int main(int argc, char *argv[]) { log_open(); umask(0022); - label_init("/etc"); + mac_selinux_init("/etc"); if (argc != 1) { log_error("This program takes no arguments."); @@ -700,7 +701,7 @@ int main(int argc, char *argv[]) { r = sd_event_default(&event); if (r < 0) { - log_error("Failed to allocate event loop: %s", strerror(-r)); + log_error_errno(-r, "Failed to allocate event loop: %m"); goto finish; } @@ -712,13 +713,13 @@ int main(int argc, char *argv[]) { r = context_read_data(&context); if (r < 0) { - log_error("Failed to read hostname and machine information: %s", strerror(-r)); + log_error_errno(-r, "Failed to read hostname and machine information: %m"); goto finish; } 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)); + log_error_errno(-r, "Failed to run event loop: %m"); goto finish; }