}
static int target_add_default_dependencies(Target *t) {
+ static const UnitDependency deps[] = {
+ UNIT_REQUIRES,
+ UNIT_REQUIRES_OVERRIDABLE,
+ UNIT_REQUISITE,
+ UNIT_REQUISITE_OVERRIDABLE,
+ UNIT_WANTS,
+ UNIT_BIND_TO
+ };
+
Iterator i;
Unit *other;
int r;
+ unsigned k;
assert(t);
* ordering manually we won't add anything in here to make
* sure we don't create a loop. */
- SET_FOREACH(other, t->meta.dependencies[UNIT_REQUIRES], i)
- if ((r = unit_add_default_target_dependency(other, UNIT(t))) < 0)
- return r;
-
- SET_FOREACH(other, t->meta.dependencies[UNIT_REQUIRES_OVERRIDABLE], i)
- if ((r = unit_add_default_target_dependency(other, UNIT(t))) < 0)
- return r;
-
- SET_FOREACH(other, t->meta.dependencies[UNIT_WANTS], i)
- if ((r = unit_add_default_target_dependency(other, UNIT(t))) < 0)
- return r;
+ for (k = 0; k < ELEMENTSOF(deps); k++)
+ SET_FOREACH(other, t->meta.dependencies[deps[k]], i)
+ if ((r = unit_add_default_target_dependency(other, UNIT(t))) < 0)
+ return r;
/* Make sure targets are unloaded on shutdown */
return unit_add_dependency_by_name(UNIT(t), UNIT_CONFLICTS, SPECIAL_SHUTDOWN_TARGET, NULL, true);
target->meta.load_state != UNIT_LOADED)
return 0;
+ /* If either side wants no automatic dependencies, then let's
+ * skip this */
+ if (!u->meta.default_dependencies ||
+ target->meta.default_dependencies)
+ return 0;
+
/* Don't create loops */
if (set_get(target->meta.dependencies[UNIT_BEFORE], u))
return 0;
}
static int unit_add_default_dependencies(Unit *u) {
+ static const UnitDependency deps[] = {
+ UNIT_REQUIRED_BY,
+ UNIT_REQUIRED_BY_OVERRIDABLE,
+ UNIT_WANTED_BY,
+ UNIT_BOUND_BY
+ };
+
Unit *target;
Iterator i;
int r;
+ unsigned k;
assert(u);
- SET_FOREACH(target, u->meta.dependencies[UNIT_REQUIRED_BY], i)
- if ((r = unit_add_default_target_dependency(u, target)) < 0)
- return r;
-
- SET_FOREACH(target, u->meta.dependencies[UNIT_REQUIRED_BY_OVERRIDABLE], i)
- if ((r = unit_add_default_target_dependency(u, target)) < 0)
- return r;
-
- SET_FOREACH(target, u->meta.dependencies[UNIT_WANTED_BY], i)
- if ((r = unit_add_default_target_dependency(u, target)) < 0)
- return r;
-
- SET_FOREACH(target, u->meta.dependencies[UNIT_BOUND_BY], i)
- if ((r = unit_add_default_target_dependency(u, target)) < 0)
- return r;
+ for (k = 0; k < ELEMENTSOF(deps); k++)
+ SET_FOREACH(target, u->meta.dependencies[deps[k]], i)
+ if ((r = unit_add_default_target_dependency(u, target)) < 0)
+ return r;
return 0;
}