summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--unit.c15
-rw-r--r--unit.h2
2 files changed, 17 insertions, 0 deletions
diff --git a/unit.c b/unit.c
index c8a6f66961..dbdd7e663e 100644
--- a/unit.c
+++ b/unit.c
@@ -155,6 +155,21 @@ int unit_add_name(Unit *u, const char *text) {
return 0;
}
+int unit_choose_id(Unit *u, const char *name) {
+ char *s;
+
+ assert(u);
+ assert(name);
+
+ /* Selects one of the names of this unit as the id */
+
+ if (!(s = set_get(u->meta.names, (char*) name)))
+ return -ENOENT;
+
+ u->meta.id = s;
+ return 0;
+}
+
void unit_add_to_load_queue(Unit *u) {
assert(u);
diff --git a/unit.h b/unit.h
index 7ab2ccdfbc..8505d275a4 100644
--- a/unit.h
+++ b/unit.h
@@ -201,6 +201,8 @@ int unit_add_name(Unit *u, const char *name);
int unit_add_dependency(Unit *u, UnitDependency d, Unit *other);
int unit_add_dependency_by_name(Unit *u, UnitDependency d, const char *name);
+int unit_choose_id(Unit *u, const char *name);
+
void unit_add_to_load_queue(Unit *u);
int unit_merge(Unit *u, Unit *other);