X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fhostname%2Fhostnamed.c;h=514554d575c32010e301753e5e7dbcfc5b10d78b;hp=a3504904a0aabdcc438ff5dbbe2165e002d7d24d;hb=6294aa76d818e831de4592b41a37e225fd0871f9;hpb=c779a44222161155c039a7fd2fd304c006590ac7 diff --git a/src/hostname/hostnamed.c b/src/hostname/hostnamed.c index a3504904a..514554d57 100644 --- a/src/hostname/hostnamed.c +++ b/src/hostname/hostnamed.c @@ -108,6 +108,13 @@ static int context_read_data(Context *c) { "PRETTY_NAME", &c->data[PROP_OS_PRETTY_NAME], "CPE_NAME", &c->data[PROP_OS_CPE_NAME], NULL); + if (r == -ENOENT) { + r = parse_env_file("/usr/lib/os-release", NEWLINE, + "PRETTY_NAME", &c->data[PROP_OS_PRETTY_NAME], + "CPE_NAME", &c->data[PROP_OS_CPE_NAME], + NULL); + } + if (r < 0 && r != -ENOENT) return r; @@ -251,7 +258,7 @@ static char* context_fallback_icon_name(Context *c) { } static bool hostname_is_useful(const char *hn) { - return !isempty(hn) && !streq(hn, "localhost"); + return !isempty(hn) && !is_localhost(hn); } static int context_update_kernel_hostname(Context *c) { @@ -312,7 +319,7 @@ static int context_write_data_machine_info(Context *c) { assert(c); - r = load_env_file("/etc/machine-info", NULL, &l); + r = load_env_file(NULL, "/etc/machine-info", NULL, &l); if (r < 0 && r != -ENOENT) return r; @@ -543,8 +550,7 @@ static int set_machine_info(Context *c, sd_bus *bus, sd_bus_message *m, int prop if (prop == PROP_ICON_NAME && !filename_is_safe(name)) return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Invalid icon name '%s'", name); - if (prop == PROP_PRETTY_HOSTNAME && - (string_has_cc(name) || chars_intersect(name, "\t"))) + if (prop == PROP_PRETTY_HOSTNAME && string_has_cc(name, NULL)) return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Invalid pretty host name '%s'", name); if (prop == PROP_CHASSIS && !valid_chassis(name)) return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Invalid chassis '%s'", name);