chiark / gitweb /
hostnamed: expose OperatingSystemPrettyName and OperatingSystemCPEName on the bus
authorDjalal Harouni <tixxdz@opendz.org>
Tue, 11 Mar 2014 13:57:15 +0000 (14:57 +0100)
committerLennart Poettering <lennart@poettering.net>
Tue, 11 Mar 2014 16:48:43 +0000 (17:48 +0100)
src/hostname/hostnamed.c

index fab0601b87126e7ea4b961d14ef2a95d7d6b06ec..3b19d430b27bca1c67a3ee7a0faf26de169e3883 100644 (file)
@@ -40,6 +40,8 @@ enum {
         PROP_PRETTY_HOSTNAME,
         PROP_ICON_NAME,
         PROP_CHASSIS,
+        PROP_OS_PRETTY_NAME,
+        PROP_OS_CPE_NAME,
         _PROP_MAX
 };
 
@@ -89,6 +91,13 @@ static int context_read_data(Context *c) {
         if (r < 0 && r != -ENOENT)
                 return r;
 
+        r = parse_env_file("/etc/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;
+
         return 0;
 }
 
@@ -546,6 +555,8 @@ static const sd_bus_vtable hostname_vtable[] = {
         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),
         SD_BUS_PROPERTY("Chassis", "s", property_get_chassis, 0, SD_BUS_VTABLE_PROPERTY_EMITS_CHANGE),
+        SD_BUS_PROPERTY("OperatingSystemPrettyName", "s", NULL, offsetof(Context, data) + sizeof(char*) * PROP_OS_PRETTY_NAME, SD_BUS_VTABLE_PROPERTY_CONST),
+        SD_BUS_PROPERTY("OperatingSystemCPEName", "s", NULL, offsetof(Context, data) + sizeof(char*) * PROP_OS_CPE_NAME, SD_BUS_VTABLE_PROPERTY_CONST),
         SD_BUS_METHOD("SetHostname", "sb", NULL, method_set_hostname, SD_BUS_VTABLE_UNPRIVILEGED),
         SD_BUS_METHOD("SetStaticHostname", "sb", NULL, method_set_static_hostname, SD_BUS_VTABLE_UNPRIVILEGED),
         SD_BUS_METHOD("SetPrettyHostname", "sb", NULL, method_set_pretty_hostname, SD_BUS_VTABLE_UNPRIVILEGED),