On Thu, 27.03.14 19:48, Djalal Harouni (tix...@opendz.org) wrote:

Hmm, thinking about this again, given that this is actually the kernel
identity we return here we should really name those props KernelName and
KernelRelease...

Sorry for the constant forth and back!

Otherwise looks great, can you ren ame the props? will then merge!

> ---
>  src/hostname/hostnamed.c | 12 ++++++++++++
>  1 file changed, 12 insertions(+)
> 
> diff --git a/src/hostname/hostnamed.c b/src/hostname/hostnamed.c
> index 3b19d43..abafa62 100644
> --- a/src/hostname/hostnamed.c
> +++ b/src/hostname/hostnamed.c
> @@ -23,6 +23,7 @@
>  #include <string.h>
>  #include <unistd.h>
>  #include <dlfcn.h>
> +#include <sys/utsname.h>
>  
>  #include "util.h"
>  #include "strv.h"
> @@ -40,6 +41,8 @@ enum {
>          PROP_PRETTY_HOSTNAME,
>          PROP_ICON_NAME,
>          PROP_CHASSIS,
> +        PROP_OS_NAME,
> +        PROP_OS_RELEASE,
>          PROP_OS_PRETTY_NAME,
>          PROP_OS_CPE_NAME,
>          _PROP_MAX
> @@ -70,11 +73,18 @@ static void context_free(Context *c, sd_bus *bus) {
>  
>  static int context_read_data(Context *c) {
>          int r;
> +        struct utsname u;
>  
>          assert(c);
>  
>          context_reset(c);
>  
> +        assert_se(uname(&u) >= 0);
> +        c->data[PROP_OS_NAME] = strdup(u.sysname);
> +        c->data[PROP_OS_RELEASE] = strdup(u.release);
> +        if (!c->data[PROP_OS_NAME] || !c->data[PROP_OS_RELEASE])
> +                return -ENOMEM;
> +
>          c->data[PROP_HOSTNAME] = gethostname_malloc();
>          if (!c->data[PROP_HOSTNAME])
>                  return -ENOMEM;
> @@ -555,6 +565,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("OperatingSystemName", "s", NULL, offsetof(Context, 
> data) + sizeof(char*) * PROP_OS_NAME, SD_BUS_VTABLE_PROPERTY_CONST),
> +        SD_BUS_PROPERTY("OperatingSystemRelease", "s", NULL, 
> offsetof(Context, data) + sizeof(char*) * PROP_OS_RELEASE, 
> SD_BUS_VTABLE_PROPERTY_CONST),
>          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),


Lennart

-- 
Lennart Poettering, Red Hat
_______________________________________________
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/systemd-devel

Reply via email to