This reverts behaviour of systemd-run's unit name generation to the
status quo ante of #18871: we chop off the ":1." prefix if we can.
However, to address the issue that the unique name can overrun we then
do what #18871 did as fallback: only chop off the ":" prefix.
This way we should have pretty names that look like they always looked
in the common case, but in the case of a unique name overrun we still
will have names that work.
Follow-up for #18871
return 0;
}
- /* We managed to get the unique name, then let's use that to
- * name our transient units. */
+ /* We managed to get the unique name, then let's use that to name our transient units. */
- id = startswith(unique, ":");
+ id = startswith(unique, ":1."); /* let' strip the usual prefix */
+ if (!id)
+ id = startswith(unique, ":"); /* the spec only requires things to start with a colon, hence
+ * let's add a generic fallback for that. */
if (!id)
return log_error_errno(SYNTHETIC_ERRNO(EINVAL),
"Unique name %s has unexpected format.",