From 890f434c6086cd076b15d7530f9c450b99f346e4 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Sun, 14 Feb 2010 01:08:20 +0100 Subject: [PATCH] load-fragment: prefer unit id over alias names when looking for fragments --- load-fragment.c | 49 ++++++++++++++++++++++++++++--------------------- 1 file changed, 28 insertions(+), 21 deletions(-) diff --git a/load-fragment.c b/load-fragment.c index e2c04e26..e002bf5a 100644 --- a/load-fragment.c +++ b/load-fragment.c @@ -1219,7 +1219,6 @@ finish: int unit_load_fragment(Unit *u) { int r = 0; - ExecContext *c; assert(u); assert(u->meta.load_state == UNIT_STUB); @@ -1228,33 +1227,41 @@ int unit_load_fragment(Unit *u) { r = load_from_path(u, u->meta.fragment_path); else { Iterator i; - char *t; + const char *t; - /* Try to find a name we can load this with */ - SET_FOREACH(t, u->meta.names, i) - if ((r = load_from_path(u, t)) != 0) - return r; + /* Try to find the unit under its id */ + if ((t = unit_id(u))) + r = load_from_path(u, t); + + /* Try to find an alias we can load this with */ + if (r == 0) + SET_FOREACH(t, u->meta.names, i) + if ((r = load_from_path(u, t)) != 0) + break; } - if (u->meta.type == UNIT_SOCKET) - c = &u->socket.exec_context; - else if (u->meta.type == UNIT_SERVICE) - c = &u->service.exec_context; - else - c = NULL; + if (r >= 0) { + ExecContext *c; - if (r >= 0 && c && - (c->output == EXEC_OUTPUT_KERNEL || c->output == EXEC_OUTPUT_SYSLOG)) { - int k; + if (u->meta.type == UNIT_SOCKET) + c = &u->socket.exec_context; + else if (u->meta.type == UNIT_SERVICE) + c = &u->service.exec_context; + else + c = NULL; - /* If syslog or kernel logging is requested, make sure - * our own logging daemon is run first. */ + if (c && (c->output == EXEC_OUTPUT_KERNEL || c->output == EXEC_OUTPUT_SYSLOG)) { + int k; - if ((k = unit_add_dependency_by_name(u, UNIT_AFTER, SPECIAL_LOGGER_SOCKET)) < 0) - return k; + /* If syslog or kernel logging is requested, make sure + * our own logging daemon is run first. */ - if ((k = unit_add_dependency_by_name(u, UNIT_REQUIRES, SPECIAL_LOGGER_SOCKET)) < 0) - return k; + if ((k = unit_add_dependency_by_name(u, UNIT_AFTER, SPECIAL_LOGGER_SOCKET)) < 0) + return k; + + if ((k = unit_add_dependency_by_name(u, UNIT_REQUIRES, SPECIAL_LOGGER_SOCKET)) < 0) + return k; + } } return r; -- 2.39.5