X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Flogin%2Flogind-user-dbus.c;h=fa2ecba53cc25ac5150c4603485981bf9ea164a7;hp=32f4062ac5a2cc25703d6b3dc10cd9f6b2fc733b;hb=cac914e643a50c72893c5478f6886e0978f8fa18;hpb=ce0fc5f5f6debc6e37ac3ab0a3ea1c9c35b3ed99 diff --git a/src/login/logind-user-dbus.c b/src/login/logind-user-dbus.c index 32f4062ac..fa2ecba53 100644 --- a/src/login/logind-user-dbus.c +++ b/src/login/logind-user-dbus.c @@ -38,15 +38,15 @@ " \n" \ " \n" \ " \n" \ - " \n" \ " \n" \ + " \n" \ " \n" \ " \n" \ " \n" \ " \n" \ " \n" \ " \n" \ - " \n" \ + " \n" #define INTROSPECTION \ DBUS_INTROSPECT_1_0_XML_DOCTYPE_DECL_NODE \ @@ -65,7 +65,7 @@ static int bus_user_append_display(DBusMessageIter *i, const char *property, voi DBusMessageIter sub; User *u = data; const char *id, *path; - char *p = NULL; + _cleanup_free_ char *p = NULL; assert(i); assert(property); @@ -86,12 +86,8 @@ static int bus_user_append_display(DBusMessageIter *i, const char *property, voi } if (!dbus_message_iter_append_basic(&sub, DBUS_TYPE_STRING, &id) || - !dbus_message_iter_append_basic(&sub, DBUS_TYPE_OBJECT_PATH, &path)) { - free(p); + !dbus_message_iter_append_basic(&sub, DBUS_TYPE_OBJECT_PATH, &path)) return -ENOMEM; - } - - free(p); if (!dbus_message_iter_close_container(i, &sub)) return -ENOMEM; @@ -189,26 +185,6 @@ static int bus_user_append_idle_hint_since(DBusMessageIter *i, const char *prope return 0; } -static int bus_user_append_default_cgroup(DBusMessageIter *i, const char *property, void *data) { - User *u = data; - char *t; - int r; - bool success; - - assert(i); - assert(property); - assert(u); - - r = cg_join_spec(SYSTEMD_CGROUP_CONTROLLER, u->cgroup_path, &t); - if (r < 0) - return r; - - success = dbus_message_iter_append_basic(i, DBUS_TYPE_STRING, &t); - free(t); - - return success ? 0 : -ENOMEM; -} - static int get_user_for_path(Manager *m, const char *path, User **_u) { User *u; unsigned long lu; @@ -218,10 +194,10 @@ static int get_user_for_path(Manager *m, const char *path, User **_u) { assert(path); assert(_u); - if (!startswith(path, "/org/freedesktop/login1/user/")) + if (!startswith(path, "/org/freedesktop/login1/user/_")) return -EINVAL; - r = safe_atolu(path + 29, &lu); + r = safe_atolu(path + 30, &lu); if (r < 0) return r; @@ -240,8 +216,8 @@ static const BusProperty bus_login_user_properties[] = { { "Timestamp", bus_property_append_usec, "t", offsetof(User, timestamp.realtime) }, { "TimestampMonotonic", bus_property_append_usec, "t", offsetof(User, timestamp.monotonic) }, { "RuntimePath", bus_property_append_string, "s", offsetof(User, runtime_path), true }, - { "DefaultControlGroup", bus_user_append_default_cgroup, "s", 0 }, { "Service", bus_property_append_string, "s", offsetof(User, service), true }, + { "Slice", bus_property_append_string, "s", offsetof(User, slice), true }, { "Display", bus_user_append_display, "(so)", 0 }, { "State", bus_user_append_state, "s", 0 }, { "Sessions", bus_user_append_sessions, "a(so)", 0 }, @@ -354,7 +330,7 @@ char *user_bus_path(User *u) { assert(u); - if (asprintf(&s, "/org/freedesktop/login1/user/%llu", (unsigned long long) u->uid) < 0) + if (asprintf(&s, "/org/freedesktop/login1/user/_%llu", (unsigned long long) u->uid) < 0) return NULL; return s; @@ -362,7 +338,6 @@ char *user_bus_path(User *u) { int user_send_signal(User *u, bool new_user) { _cleanup_dbus_message_unref_ DBusMessage *m = NULL; - int r = -ENOMEM; _cleanup_free_ char *p = NULL; uint32_t uid; @@ -377,7 +352,7 @@ int user_send_signal(User *u, bool new_user) { p = user_bus_path(u); if (!p) - goto finish; + return -ENOMEM; uid = u->uid; @@ -386,20 +361,16 @@ int user_send_signal(User *u, bool new_user) { DBUS_TYPE_UINT32, &uid, DBUS_TYPE_OBJECT_PATH, &p, DBUS_TYPE_INVALID)) - goto finish; + return -ENOMEM; if (!dbus_connection_send(u->manager->bus, m, NULL)) - goto finish; - - r = 0; + return -ENOMEM; -finish: - return r; + return 0; } int user_send_changed(User *u, const char *properties) { _cleanup_dbus_message_unref_ DBusMessage *m = NULL; - int r = -ENOMEM; _cleanup_free_ char *p = NULL; assert(u); @@ -413,13 +384,10 @@ int user_send_changed(User *u, const char *properties) { m = bus_properties_changed_new(p, "org.freedesktop.login1.User", properties); if (!m) - goto finish; + return -ENOMEM; if (!dbus_connection_send(u->manager->bus, m, NULL)) - goto finish; - - r = 0; + return -ENOMEM; -finish: - return r; + return 0; }