u->meta.type = _UNIT_TYPE_INVALID;
u->meta.deserialized_job = _JOB_TYPE_INVALID;
u->meta.default_dependencies = true;
+ u->meta.unit_file_state = _UNIT_FILE_STATE_INVALID;
return u;
}
static char *default_cgroup_path(Unit *u) {
char *p;
- int r;
assert(u);
if (u->meta.instance) {
char *t;
- if (!(t = unit_name_template(u->meta.id)))
+ t = unit_name_template(u->meta.id);
+ if (!t)
return NULL;
- r = asprintf(&p, "%s/%s/%s", u->meta.manager->cgroup_hierarchy, t, u->meta.instance);
+ p = join(u->meta.manager->cgroup_hierarchy, "/", t, "/", u->meta.instance, NULL);
free(t);
} else
- r = asprintf(&p, "%s/%s", u->meta.manager->cgroup_hierarchy, u->meta.id);
+ p = join(u->meta.manager->cgroup_hierarchy, "/", u->meta.id, NULL);
- return r < 0 ? NULL : p;
+ return p;
}
int unit_add_cgroup_from_text(Unit *u, const char *name) {
return 0;
}
+UnitFileState unit_get_unit_file_state(Unit *u) {
+ assert(u);
+
+ if (u->meta.unit_file_state < 0 && u->meta.fragment_path)
+ u->meta.unit_file_state = unit_file_get_state(
+ u->meta.manager->running_as == MANAGER_SYSTEM ? UNIT_FILE_SYSTEM : UNIT_FILE_USER,
+ NULL, file_name_from_path(u->meta.fragment_path));
+
+ return u->meta.unit_file_state;
+}
+
static const char* const unit_load_state_table[_UNIT_LOAD_STATE_MAX] = {
[UNIT_STUB] = "stub",
[UNIT_LOADED] = "loaded",