chiark / gitweb /
systemd-stdio-bridge: make it socket-activatable and usable as kdbus bridge
[elogind.git] / src / core / dbus-manager.c
index b934624defd07d71abdbf21338bb80651d454437..a2707ee9b74aa438e06cfb1af1f73c0073974b05 100644 (file)
@@ -338,7 +338,13 @@ static int method_get_unit_by_pid(sd_bus *bus, sd_bus_message *message, void *us
                 return r;
 
         if (pid == 0) {
-                r = sd_bus_get_owner_pid(bus, sd_bus_message_get_sender(message), &pid);
+                _cleanup_bus_creds_unref_ sd_bus_creds *creds = NULL;
+
+                r = sd_bus_query_sender_creds(message, SD_BUS_CREDS_PID, &creds);
+                if (r < 0)
+                        return r;
+
+                r = sd_bus_creds_get_pid(creds, &pid);
                 if (r < 0)
                         return r;
         }
@@ -1573,7 +1579,7 @@ const sd_bus_vtable bus_manager_vtable[] = {
         SD_BUS_METHOD("ReloadOrTryRestartUnit", "ss", "o", method_reload_or_try_restart_unit, 0),
         SD_BUS_METHOD("KillUnit", "ssi", NULL, method_kill_unit, 0),
         SD_BUS_METHOD("ResetFailedUnit", "s", NULL, method_reset_failed_unit, 0),
-        SD_BUS_METHOD("SetUnitProperties", "sb", "a(sv)", method_set_unit_properties, 0),
+        SD_BUS_METHOD("SetUnitProperties", "sba(sv)", NULL, method_set_unit_properties, 0),
         SD_BUS_METHOD("StartTransientUnit", "ssa(sv)a(sa(sv))", "o", method_start_transient_unit, 0),
         SD_BUS_METHOD("GetJob", "u", "o", method_get_job, 0),
         SD_BUS_METHOD("CancelJob", "u", NULL, method_cancel_job, 0),