X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fhostname%2Fhostnamed.c;h=ad724408453bf5f8257878d80df71cdea9a52646;hb=fb0864e7b9c6d26269ccea6ec5c0fd921c029781;hp=f3b2c941731836fe5dfb751c9885ec88f8006c59;hpb=00c36f274b43e5386b42160c8ce07aea0cf15fc3;p=elogind.git diff --git a/src/hostname/hostnamed.c b/src/hostname/hostnamed.c index f3b2c9417..ad7244084 100644 --- a/src/hostname/hostnamed.c +++ b/src/hostname/hostnamed.c @@ -280,18 +280,24 @@ static int bus_hostname_append_icon_name(DBusMessageIter *i, const char *propert return bus_property_append_string(i, property, (void*) name); } +static const BusProperty bus_hostname_properties[] = { + { "Hostname", bus_property_append_string, "s", sizeof(data[0])*PROP_HOSTNAME, true }, + { "StaticHostname", bus_property_append_string, "s", sizeof(data[0])*PROP_STATIC_HOSTNAME, true }, + { "PrettyHostname", bus_property_append_string, "s", sizeof(data[0])*PROP_PRETTY_HOSTNAME, true }, + { "IconName", bus_hostname_append_icon_name, "s", sizeof(data[0])*PROP_ICON_NAME, true }, + { NULL, } +}; + +static const BusBoundProperties bps[] = { + { "org.freedesktop.hostname1", bus_hostname_properties, data }, + { NULL, } +}; + static DBusHandlerResult hostname_message_handler( DBusConnection *connection, DBusMessage *message, void *userdata) { - const BusProperty properties[] = { - { "org.freedesktop.hostname1", "Hostname", bus_property_append_string, "s", data[PROP_HOSTNAME]}, - { "org.freedesktop.hostname1", "StaticHostname", bus_property_append_string, "s", data[PROP_STATIC_HOSTNAME]}, - { "org.freedesktop.hostname1", "PrettyHostname", bus_property_append_string, "s", data[PROP_PRETTY_HOSTNAME]}, - { "org.freedesktop.hostname1", "IconName", bus_hostname_append_icon_name, "s", data[PROP_ICON_NAME]}, - { NULL, NULL, NULL, NULL, NULL } - }; DBusMessage *reply = NULL, *changed = NULL; DBusError error; @@ -326,7 +332,7 @@ static DBusHandlerResult hostname_message_handler( if (!streq_ptr(name, data[PROP_HOSTNAME])) { char *h; - r = verify_polkit(connection, message, "org.freedesktop.hostname1.set-hostname", interactive, &error); + r = verify_polkit(connection, message, "org.freedesktop.hostname1.set-hostname", interactive, NULL, &error); if (r < 0) return bus_send_error_reply(connection, message, &error, r); @@ -370,7 +376,7 @@ static DBusHandlerResult hostname_message_handler( if (!streq_ptr(name, data[PROP_STATIC_HOSTNAME])) { - r = verify_polkit(connection, message, "org.freedesktop.hostname1.set-static-hostname", interactive, &error); + r = verify_polkit(connection, message, "org.freedesktop.hostname1.set-static-hostname", interactive, NULL, &error); if (r < 0) return bus_send_error_reply(connection, message, &error, r); @@ -435,7 +441,7 @@ static DBusHandlerResult hostname_message_handler( r = verify_polkit(connection, message, k == PROP_PRETTY_HOSTNAME ? "org.freedesktop.hostname1.set-static-hostname" : - "org.freedesktop.hostname1.set-machine-info", interactive, &error); + "org.freedesktop.hostname1.set-machine-info", interactive, NULL, &error); if (r < 0) return bus_send_error_reply(connection, message, &error, r); @@ -470,7 +476,7 @@ static DBusHandlerResult hostname_message_handler( } } else - return bus_default_message_handler(connection, message, INTROSPECTION, INTERFACES_LIST, properties); + return bus_default_message_handler(connection, message, INTROSPECTION, INTERFACES_LIST, bps); if (!(reply = dbus_message_new_method_return(message))) goto oom;