From b4ff314ea08b2128ca2ee203b746744c5e64ac89 Mon Sep 17 00:00:00 2001 From: Mike Yuan Date: Tue, 23 Jul 2024 17:14:39 +0200 Subject: [PATCH] core-varlink: switch to PidRef + manager_get_unit_by_pidref() --- src/core/core-varlink.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/core/core-varlink.c b/src/core/core-varlink.c index 93dfdd2e266..ba6d50b504b 100644 --- a/src/core/core-varlink.c +++ b/src/core/core-varlink.c @@ -10,6 +10,7 @@ #include "varlink-internal.h" #include "varlink-io.systemd.UserDatabase.h" #include "varlink-io.systemd.ManagedOOM.h" +#include "varlink-util.h" typedef struct LookupParameters { const char *user_name; @@ -218,19 +219,18 @@ static int vl_method_subscribe_managed_oom_cgroups( sd_varlink_method_flags_t flags, void *userdata) { - _cleanup_(sd_json_variant_unrefp) sd_json_variant *v = NULL; Manager *m = ASSERT_PTR(userdata); - pid_t pid; + _cleanup_(pidref_done) PidRef pidref = PIDREF_NULL; Unit *u; int r; assert(link); - r = sd_varlink_get_peer_pid(link, &pid); + r = varlink_get_peer_pidref(link, &pidref); if (r < 0) return r; - u = manager_get_unit_by_pid(m, pid); + u = manager_get_unit_by_pidref(m, &pidref); if (!u) return sd_varlink_error(link, SD_VARLINK_ERROR_PERMISSION_DENIED, NULL); @@ -247,6 +247,8 @@ static int vl_method_subscribe_managed_oom_cgroups( if (FLAGS_SET(flags, SD_VARLINK_METHOD_MORE) && m->managed_oom_varlink) return sd_varlink_error(link, "io.systemd.ManagedOOM.SubscriptionTaken", NULL); + _cleanup_(sd_json_variant_unrefp) sd_json_variant *v = NULL; + r = build_managed_oom_cgroups_json(m, &v); if (r < 0) return r; -- 2.47.3