diff options
author | Bastien Nocera <hadess@hadess.net> | 2022-01-21 18:56:42 +0100 |
---|---|---|
committer | Bastien Nocera <hadess@hadess.net> | 2022-01-21 21:59:09 +0100 |
commit | 4b35eb2579b226785f0d94129a7652450f9723fd (patch) | |
tree | fbe7e37afbec3469c2e6295b1e92cc34958ced99 /src | |
parent | 2ebb69bc09e84c48072e8ec5faa8251dcd705282 (diff) | |
download | systemd-4b35eb2579b226785f0d94129a7652450f9723fd.tar.gz |
hostname: Allow overriding the chassis type from hwdb
Closes: #7390
Diffstat (limited to 'src')
-rw-r--r-- | src/hostname/hostnamed.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/src/hostname/hostnamed.c b/src/hostname/hostnamed.c index b20a93ad81..559326b9f5 100644 --- a/src/hostname/hostnamed.c +++ b/src/hostname/hostnamed.c @@ -725,16 +725,18 @@ static int property_get_chassis( sd_bus_error *error) { Context *c = userdata; - const char *name; + _cleanup_free_ char *dmi_chassis = NULL; + const char *name = NULL; context_read_machine_info(c); - if (isempty(c->data[PROP_CHASSIS])) - name = fallback_chassis(); - else + if (isempty(c->data[PROP_CHASSIS])) { + if (get_dmi_data("ID_CHASSIS", NULL, &dmi_chassis) <= 0) + name = fallback_chassis(); + } else name = c->data[PROP_CHASSIS]; - return sd_bus_message_append(reply, "s", name); + return sd_bus_message_append(reply, "s", name ?: dmi_chassis); } static int property_get_uname_field( |