if (!isempty(arg_slice)) {
_cleanup_free_ char *slice;
- slice = unit_name_mangle_with_suffix(arg_slice, ".slice");
+ slice = unit_name_mangle_with_suffix(arg_slice, MANGLE_NOGLOB, ".slice");
if (!slice)
return -ENOMEM;
if (r < 0)
return r;
- return sd_bus_send_with_reply_and_block(bus, m, 0, error, reply);
+ r = sd_bus_message_append(m, "a(sa(sv))", 0);
+ if (r < 0)
+ return r;
+
+ return sd_bus_call(bus, m, 0, error, reply);
}
static int start_transient_service(
int r;
if (arg_unit)
- name = unit_name_mangle_with_suffix(arg_unit, ".service");
+ name = unit_name_mangle_with_suffix(arg_unit, MANGLE_NOGLOB, ".service");
else
asprintf(&name, "run-%lu.service", (unsigned long) getpid());
if (!name)
assert(bus);
if (arg_unit)
- name = unit_name_mangle_with_suffix(arg_unit, ".scope");
+ name = unit_name_mangle_with_suffix(arg_unit, MANGLE_NOGLOB, ".scope");
else
asprintf(&name, "run-%lu.scope", (unsigned long) getpid());
if (!name)
if (r < 0)
return r;
+ {
+ const char *unique_id;
+ sd_bus_get_unique_name(bus, &unique_id);
+ r = sd_bus_message_append(m, "(sv)", "Controller", "s", unique_id);
+ if (r < 0)
+ return r;
+ }
+
r = message_start_transient_unit_send(bus, m, error, NULL);
if (r < 0)
return r;