summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBastien Nocera <hadess@hadess.net>2022-01-21 18:56:42 +0100
committerBastien Nocera <hadess@hadess.net>2022-01-21 21:59:09 +0100
commit4b35eb2579b226785f0d94129a7652450f9723fd (patch)
treefbe7e37afbec3469c2e6295b1e92cc34958ced99
parent2ebb69bc09e84c48072e8ec5faa8251dcd705282 (diff)
downloadsystemd-4b35eb2579b226785f0d94129a7652450f9723fd.tar.gz
hostname: Allow overriding the chassis type from hwdb
Closes: #7390
-rw-r--r--src/hostname/hostnamed.c12
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(