FOREACH_WORD(w, &l, rvalue, state) {
char *t;
int r;
- Unit *other;
if (!(t = strndup(w, l)))
return -ENOMEM;
- r = manager_load_unit(u->meta.manager, t, &other);
+ r = unit_add_dependency_by_name(u, d, t);
free(t);
if (r < 0)
return r;
-
- if ((r = unit_add_dependency(u, d, other)) < 0)
- return r;
}
return 0;
void *data,
void *userdata) {
- int *i = data, priority, r;
+ ExecContext *c = data;
+ int priority, r;
assert(filename);
assert(lvalue);
return -ERANGE;
}
- *i = priority;
+ c->nice = priority;
+ c->nice_set = false;
+
return 0;
}
void *data,
void *userdata) {
- int *i = data, oa, r;
+ ExecContext *c = data;
+ int oa, r;
assert(filename);
assert(lvalue);
return -ERANGE;
}
- *i = oa;
+ c->oom_adjust = oa;
+ c->oom_adjust_set = true;
+
return 0;
}
if (c++ >= FOLLOW_MAX)
return -ELOOP;
+ path_kill_slashes(*filename);
+
/* Add the file name we are currently looking at to
* the names of this unit */
name = file_name_from_path(*filename);
{ "User", config_parse_string, &(context).user, section }, \
{ "Group", config_parse_string, &(context).group, section }, \
{ "SupplementaryGroups", config_parse_strv, &(context).supplementary_groups, section }, \
- { "Nice", config_parse_nice, &(context).nice, section }, \
- { "OOMAdjust", config_parse_oom_adjust, &(context).oom_adjust, section }, \
+ { "Nice", config_parse_nice, &(context), section }, \
+ { "OOMAdjust", config_parse_oom_adjust, &(context), section }, \
{ "UMask", config_parse_umask, &(context).umask, section }, \
{ "Environment", config_parse_strv, &(context).environment, section }, \
{ "Output", config_parse_output, &(context).output, section }, \
if ((r = unit_add_name(u, k)) < 0)
goto finish;
- if (id == k)
- assert_se(u->meta.id = set_get(u->meta.names, k));
+ if (id == k)
+ unit_choose_id(u, id);
free(k);
}
+
free(u->meta.load_path);
u->meta.load_path = filename;
filename = NULL;
}
int unit_load_fragment(Unit *u) {
- int r = -ENOENT;
+ int r = 0;
ExecContext *c;
assert(u);
if (r >= 0 && c &&
(c->output == EXEC_KERNEL || c->output == EXEC_SYSLOG)) {
+ int k;
+
/* If syslog or kernel logging is requested, make sure
* our own logging daemon is run first. */
- if ((r = unit_add_dependency(u, UNIT_AFTER, u->meta.manager->special_units[SPECIAL_LOGGER_SOCKET])) < 0)
- return r;
+ if ((k = unit_add_dependency_by_name(u, UNIT_AFTER, SPECIAL_LOGGER_SOCKET)) < 0)
+ return k;
- if ((r = unit_add_dependency(u, UNIT_REQUIRES, u->meta.manager->special_units[SPECIAL_LOGGER_SOCKET])) < 0)
- return r;
+ if ((k = unit_add_dependency_by_name(u, UNIT_REQUIRES, SPECIAL_LOGGER_SOCKET)) < 0)
+ return k;
}
return r;