From: Lennart Poettering Date: Thu, 4 Mar 2021 15:23:46 +0000 (+0100) Subject: run: tweak algorithm for generating unit name from dbus unique name X-Git-Tag: v248-rc3~59 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=e6283cbf48a3821d03ec73252620fc1b04bd4588;p=thirdparty%2Fsystemd.git run: tweak algorithm for generating unit name from dbus unique name 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 --- diff --git a/src/run/run.c b/src/run/run.c index 8c036857cf2..ac405d39d74 100644 --- a/src/run/run.c +++ b/src/run/run.c @@ -956,10 +956,12 @@ static int make_unit_name(sd_bus *bus, UnitType t, char **ret) { 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.",