Commit 70666185 authored by Lennart Poettering's avatar Lennart Poettering
Browse files

bus: add cal to determine machine id of an owner of a service

parent 195f8e36
...@@ -344,3 +344,35 @@ int bus_remove_match_internal(sd_bus *bus, const char *match) { ...@@ -344,3 +344,35 @@ int bus_remove_match_internal(sd_bus *bus, const char *match) {
"s", "s",
match); match);
} }
int sd_bus_get_owner_machine_id(sd_bus *bus, const char *name, sd_id128_t *machine) {
_cleanup_bus_message_unref_ sd_bus_message *reply = NULL;
const char *mid;
int r;
if (!bus)
return -EINVAL;
if (!name)
return -EINVAL;
if (streq_ptr(name, bus->unique_name))
return sd_id128_get_machine(machine);
r = sd_bus_call_method(bus,
name,
"/",
"org.freedesktop.DBus.Peer",
"GetMachineId",
NULL,
&reply,
NULL);
if (r < 0)
return r;
r = sd_bus_message_read(reply, "s", &mid);
if (r < 0)
return r;
return sd_id128_from_string(mid, machine);
}
...@@ -179,6 +179,7 @@ int sd_bus_list_names(sd_bus *bus, char ***l); ...@@ -179,6 +179,7 @@ int sd_bus_list_names(sd_bus *bus, char ***l);
int sd_bus_get_owner(sd_bus *bus, const char *name, char **owner); int sd_bus_get_owner(sd_bus *bus, const char *name, char **owner);
int sd_bus_get_owner_uid(sd_bus *bus, const char *name, uid_t *uid); int sd_bus_get_owner_uid(sd_bus *bus, const char *name, uid_t *uid);
int sd_bus_get_owner_pid(sd_bus *bus, const char *name, pid_t *pid); int sd_bus_get_owner_pid(sd_bus *bus, const char *name, pid_t *pid);
int sd_bus_get_owner_machine_id(sd_bus *bus, const char *name, sd_id128_t *machine);
/* Error structures */ /* Error structures */
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment