summaryrefslogtreecommitdiff
path: root/src/core/manager.c
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2013-07-02 01:35:08 +0200
committerLennart Poettering <lennart@poettering.net>2013-07-02 01:48:55 +0200
commitede3a7967560506486e1e25d09ef4e74600851ff (patch)
tree8cfca3a63952ce9f83538085b4fe0e107fa49c09 /src/core/manager.c
parentcc23f9f17434aad3941dff3c20bce485b39ce47c (diff)
core: split out unit bus path unescaping into unit_name_from_dbus_path()
Diffstat (limited to 'src/core/manager.c')
-rw-r--r--src/core/manager.c13
1 files changed, 4 insertions, 9 deletions
diff --git a/src/core/manager.c b/src/core/manager.c
index 42c9bcd48c..080561b5d1 100644
--- a/src/core/manager.c
+++ b/src/core/manager.c
@@ -1783,7 +1783,7 @@ int manager_loop(Manager *m) {
}
int manager_load_unit_from_dbus_path(Manager *m, const char *s, DBusError *e, Unit **_u) {
- char *n;
+ _cleanup_free_ char *n = NULL;
Unit *u;
int r;
@@ -1791,16 +1791,11 @@ int manager_load_unit_from_dbus_path(Manager *m, const char *s, DBusError *e, Un
assert(s);
assert(_u);
- if (!startswith(s, "/org/freedesktop/systemd1/unit/"))
- return -EINVAL;
-
- n = bus_path_unescape(s+31);
- if (!n)
- return -ENOMEM;
+ r = unit_name_from_dbus_path(s, &n);
+ if (r < 0)
+ return r;
r = manager_load_unit(m, n, NULL, e, &u);
- free(n);
-
if (r < 0)
return r;