X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=unit.c;h=6d6f56416d1bfb0c6976230546e3ef6855ba9c2f;hp=a8058500d1411070e0f20bef675b279b9ae263f8;hb=b152adec93b05c0d01b240e0f28326eb1d8e18e9;hpb=013b87c09199926434583e8bb54ac6cb4b835eb5 diff --git a/unit.c b/unit.c index a8058500d..6d6f56416 100644 --- a/unit.c +++ b/unit.c @@ -1440,6 +1440,28 @@ CGroupBonding* unit_get_default_cgroup(Unit *u) { return cgroup_bonding_find_list(u->meta.cgroup_bondings, u->meta.manager->cgroup_controller); } +int unit_load_related_unit(Unit *u, const char *type, Unit **_found) { + char *t; + int r; + + assert(u); + assert(type); + assert(_found); + + if (!(t = unit_name_change_suffix(unit_id(u), type))) + return -ENOMEM; + + assert(!unit_has_name(u, t)); + + r = manager_load_unit(u->meta.manager, t, _found); + free(t); + + if (r >= 0) + assert(*_found != u); + + return r; +} + static const char* const unit_type_table[_UNIT_TYPE_MAX] = { [UNIT_SERVICE] = "service", [UNIT_TIMER] = "timer",