if (!(e = strrchr(n, '.')))
return false;
+ if (e == n)
+ return false;
+
for (i = n; i < e; i++)
if (!strchr(VALID_CHARS, *i))
return false;
return 0;
}
-/* FIXME: Does not rollback on failure! */
+/* FIXME: Does not rollback on failure! Needs to fix special unit
+ * pointers. Needs to merge names and dependencies properly.*/
int unit_merge(Unit *u, Unit *other) {
int r;
UnitDependency d;
/* Common implementation for multiple backends */
int unit_load_fragment_and_dropin(Unit *u) {
- int r;
+ int r, ret;
assert(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) {