8d419f
From ea54689eebe58d1bbb908762731f179e50ac1c9a Mon Sep 17 00:00:00 2001
8d419f
From: Bastien Nocera <hadess@hadess.net>
8d419f
Date: Fri, 21 Jan 2022 18:56:42 +0100
8d419f
Subject: [PATCH] hostname: Allow overriding the chassis type from hwdb
8d419f
8d419f
Closes: #7390
8d419f
(cherry picked from commit 4b35eb2579b226785f0d94129a7652450f9723fd)
8d419f
8d419f
Related: #2087778
8d419f
---
8d419f
 src/hostname/hostnamed.c | 12 +++++++-----
8d419f
 1 file changed, 7 insertions(+), 5 deletions(-)
8d419f
8d419f
diff --git a/src/hostname/hostnamed.c b/src/hostname/hostnamed.c
8d419f
index b20a93ad81..559326b9f5 100644
8d419f
--- a/src/hostname/hostnamed.c
8d419f
+++ b/src/hostname/hostnamed.c
8d419f
@@ -725,16 +725,18 @@ static int property_get_chassis(
8d419f
                 sd_bus_error *error) {
8d419f
 
8d419f
         Context *c = userdata;
8d419f
-        const char *name;
8d419f
+        _cleanup_free_ char *dmi_chassis = NULL;
8d419f
+        const char *name = NULL;
8d419f
 
8d419f
         context_read_machine_info(c);
8d419f
 
8d419f
-        if (isempty(c->data[PROP_CHASSIS]))
8d419f
-                name = fallback_chassis();
8d419f
-        else
8d419f
+        if (isempty(c->data[PROP_CHASSIS])) {
8d419f
+                if (get_dmi_data("ID_CHASSIS", NULL, &dmi_chassis) <= 0)
8d419f
+                        name = fallback_chassis();
8d419f
+        } else
8d419f
                 name = c->data[PROP_CHASSIS];
8d419f
 
8d419f
-        return sd_bus_message_append(reply, "s", name);
8d419f
+        return sd_bus_message_append(reply, "s", name ?: dmi_chassis);
8d419f
 }
8d419f
 
8d419f
 static int property_get_uname_field(