X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=unit.c;h=a5f4ac76767d1c412db7d166b7d62a3559d860d3;hb=09b6b09f44b36b52b8a20ba18446e3ec2926c110;hp=88615319d7c28ee64e1db4a84abe0836c5ebddd9;hpb=fdf88f5f3383dc4fdd7358b954c6b79e4fe0791b;p=elogind.git diff --git a/unit.c b/unit.c index 88615319d..a5f4ac767 100644 --- a/unit.c +++ b/unit.c @@ -372,7 +372,7 @@ void unit_dump(Unit *u, FILE *f, const char *prefix) { /* Common implementation for multiple backends */ int unit_load_fragment_and_dropin(Unit *u) { - int r; + int r, ret; assert(u); @@ -380,11 +380,13 @@ int unit_load_fragment_and_dropin(Unit *u) { if ((r = unit_load_fragment(u)) < 0) return r; + ret = r > 0; + /* Load drop-in directory data */ if ((r = unit_load_dropin(u)) < 0) return r; - return 0; + return ret; } int unit_load(Unit *u) { @@ -834,6 +836,19 @@ int unit_add_dependency(Unit *u, UnitDependency d, Unit *other) { return 0; } +int unit_add_dependency_by_name(Unit *u, UnitDependency d, const char *name) { + Unit *other; + int r; + + if ((r = manager_load_unit(u->meta.manager, name, &other)) < 0) + return r; + + if ((r = unit_add_dependency(u, d, other)) < 0) + return r; + + return 0; +} + const char *unit_path(void) { char *e;