]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
shared/bus-unit-util: use common helper for various strv properties
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Fri, 27 Jun 2025 14:10:30 +0000 (16:10 +0200)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Thu, 3 Jul 2025 17:35:33 +0000 (19:35 +0200)
src/shared/bus-unit-util.c

index 30da64646165a63ee32e74af2d4040ae3a91b91f..bf204e6d78feafb3c78c24623e26c08fcbc0ffd0 100644 (file)
@@ -149,7 +149,7 @@ static int bus_append_string(sd_bus_message *m, const char *field, const char *e
         return 1;
 }
 
-static int bus_append_strv(sd_bus_message *m, const char *field, const char *eq, const char *separator, ExtractFlags flags) {
+static int bus_append_strv_full(sd_bus_message *m, const char *field, const char *eq, ExtractFlags flags) {
         int r;
 
         assert(m);
@@ -174,7 +174,7 @@ static int bus_append_strv(sd_bus_message *m, const char *field, const char *eq,
         for (const char *p = eq;;) {
                 _cleanup_free_ char *word = NULL;
 
-                r = extract_first_word(&p, &word, separator, flags);
+                r = extract_first_word(&p, &word, /* separators= */ NULL, flags);
                 if (r == -ENOMEM)
                         return log_oom();
                 if (r < 0)
@@ -202,6 +202,14 @@ static int bus_append_strv(sd_bus_message *m, const char *field, const char *eq,
         return 1;
 }
 
+static int bus_append_strv(sd_bus_message *m, const char *field, const char *eq) {
+        return bus_append_strv_full(m, field, eq, EXTRACT_UNQUOTE);
+}
+
+static int bus_append_strv_cunescape(sd_bus_message *m, const char *field, const char *eq) {
+        return bus_append_strv_full(m, field, eq, EXTRACT_UNQUOTE | EXTRACT_CUNESCAPE);
+}
+
 static int bus_append_byte_array(sd_bus_message *m, const char *field, const void *buf, size_t n) {
         int r;
 
@@ -306,7 +314,7 @@ static int bus_append_parse_delegate(sd_bus_message *m, const char *field, const
 
         r = parse_boolean(eq);
         if (r < 0)
-                return bus_append_strv(m, "DelegateControllers", eq, /* separator= */ NULL, EXTRACT_UNQUOTE);
+                return bus_append_strv(m, "DelegateControllers", eq);
 
         r = sd_bus_message_append(m, "(sv)", "Delegate", "b", r);
         if (r < 0)
@@ -2197,7 +2205,7 @@ static int bus_append_cgroup_property(sd_bus_message *m, const char *field, cons
                 return bus_append_parse_cpu_set(m, field, eq);
 
         if (streq(field, "DisableControllers"))
-                return bus_append_strv(m, field, eq, /* separator= */ NULL, EXTRACT_UNQUOTE);
+                return bus_append_strv(m, field, eq);
 
         if (streq(field, "Delegate"))
                 return bus_append_parse_delegate(m, field, eq);
@@ -2365,7 +2373,7 @@ static int bus_append_execute_property(sd_bus_message *m, const char *field, con
                               "ConfigurationDirectory",
                               "SupplementaryGroups",
                               "SystemCallArchitectures"))
-                return bus_append_strv(m, field, eq, /* separator= */ NULL, EXTRACT_UNQUOTE);
+                return bus_append_strv(m, field, eq);
 
         if (STR_IN_SET(field, "SyslogLevel",
                               "LogLevelMax"))
@@ -2424,7 +2432,7 @@ static int bus_append_execute_property(sd_bus_message *m, const char *field, con
         if (STR_IN_SET(field, "Environment",
                               "UnsetEnvironment",
                               "PassEnvironment"))
-                return bus_append_strv(m, field, eq, /* separator= */ NULL, EXTRACT_UNQUOTE|EXTRACT_CUNESCAPE);
+                return bus_append_strv_cunescape(m, field, eq);
 
         if (streq(field, "EnvironmentFile"))
                 return bus_append_environment_files(m, field, eq);
@@ -2769,7 +2777,7 @@ static int bus_append_socket_property(sd_bus_message *m, const char *field, cons
                 return bus_append_string(m, field, eq);
 
         if (streq(field, "Symlinks"))
-                return bus_append_strv(m, field, eq, /* separator= */ NULL, EXTRACT_UNQUOTE);
+                return bus_append_strv(m, field, eq);
 
         if (streq(field, "SocketProtocol"))
                 return bus_append_parse_ip_protocol(m, field, eq);
@@ -2904,7 +2912,7 @@ static int bus_append_unit_property(sd_bus_message *m, const char *field, const
                               "RequiresMountsFor",
                               "WantsMountsFor",
                               "Markers"))
-                return bus_append_strv(m, field, eq, /* separator= */ NULL, EXTRACT_UNQUOTE);
+                return bus_append_strv(m, field, eq);
 
         t = condition_type_from_string(field);
         if (t >= 0)