]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
core/unit: use FOREACH_ELEMENT() to add dependencies for journal namespace instances 32738/head
authorYu Watanabe <watanabe.yu+github@gmail.com>
Fri, 10 May 2024 01:21:48 +0000 (10:21 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Fri, 10 May 2024 09:11:25 +0000 (18:11 +0900)
Follow-up for 06c0f569e94cc7406886079d241f1c1f82711937.

src/core/unit.c

index 4b290934fc6c204276f5d19530472566cc1cf956..0b2460cada0a5fa52987a1571bd7d634595f3ff0 100644 (file)
@@ -1311,27 +1311,26 @@ int unit_add_exec_dependencies(Unit *u, ExecContext *c) {
          * is run first. */
 
         if (c->log_namespace) {
-                FOREACH_STRING(s, "systemd-journald", "systemd-journald-varlink") {
-                        _cleanup_free_ char *socket_unit = NULL;
+                static const struct {
+                        const char *template;
+                        UnitType type;
+                } deps[] = {
+                        { "systemd-journald",         UNIT_SOCKET,  },
+                        { "systemd-journald-varlink", UNIT_SOCKET,  },
+                        { "systemd-journald-sync",    UNIT_SERVICE, },
+                };
+
+                FOREACH_ELEMENT(i, deps) {
+                        _cleanup_free_ char *unit = NULL;
 
-                        r = unit_name_build_from_type(s, c->log_namespace, UNIT_SOCKET, &socket_unit);
+                        r = unit_name_build_from_type(i->template, c->log_namespace, i->type, &unit);
                         if (r < 0)
                                 return r;
 
-                        r = unit_add_two_dependencies_by_name(u, UNIT_AFTER, UNIT_REQUIRES, socket_unit, true, UNIT_DEPENDENCY_FILE);
+                        r = unit_add_two_dependencies_by_name(u, UNIT_AFTER, UNIT_REQUIRES, unit, true, UNIT_DEPENDENCY_FILE);
                         if (r < 0)
                                 return r;
                 }
-
-                _cleanup_free_ char *sync_unit = NULL;
-
-                r = unit_name_build_from_type("systemd-journald-sync", c->log_namespace, UNIT_SERVICE, &sync_unit);
-                if (r < 0)
-                        return r;
-
-                r = unit_add_two_dependencies_by_name(u, UNIT_AFTER, UNIT_REQUIRES, sync_unit, true, UNIT_DEPENDENCY_FILE);
-                if (r < 0)
-                        return r;
         } else {
                 r = unit_add_dependency_by_name(u, UNIT_AFTER, SPECIAL_JOURNALD_SOCKET, true, UNIT_DEPENDENCY_FILE);
                 if (r < 0)