int bus_scope_send_request_stop(Scope *s) { _cleanup_bus_message_unref_ sd_bus_message *m = NULL; _cleanup_free_ char *p = NULL; int r; assert(s); if (!s->controller) return 0; p = unit_dbus_path(UNIT(s)); if (!p) return -ENOMEM; r = sd_bus_message_new_signal( UNIT(s)->manager->api_bus, p, "org.freedesktop.systemd1.Scope", "RequestStop", &m); if (r < 0) return r; return sd_bus_send_to(UNIT(s)->manager->api_bus, m, /* s->controller */ NULL, NULL); }
static int property_get_unit( sd_bus *bus, const char *path, const char *interface, const char *property, sd_bus_message *reply, void *userdata, sd_bus_error *error) { _cleanup_free_ char *p = NULL; Job *j = userdata; assert(bus); assert(reply); assert(j); p = unit_dbus_path(j->unit); if (!p) return -ENOMEM; return sd_bus_message_append(reply, "(so)", j->unit->id, p); }