]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
shared/bus-unit-util: add helper for Listen property
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Fri, 27 Jun 2025 14:13:03 +0000 (16:13 +0200)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Thu, 3 Jul 2025 17:53:38 +0000 (19:53 +0200)
src/shared/bus-unit-util.c

index bf204e6d78feafb3c78c24623e26c08fcbc0ffd0..62df0f5e36d38e66cf9dcf9817c1a7b562a0424e 100644 (file)
@@ -2169,6 +2169,21 @@ static int bus_append_exit_status(sd_bus_message *m, const char *field, const ch
         return 1;
 }
 
+static int bus_append_listen(sd_bus_message *m, const char *field, const char *eq) {
+        int r;
+
+        const char *p = ASSERT_PTR(startswith(field, "Listen"));
+
+        if (isempty(eq))
+                r = sd_bus_message_append(m, "(sv)", "Listen", "a(ss)", 0);
+        else
+                r = sd_bus_message_append(m, "(sv)", "Listen", "a(ss)", 1, p, eq);
+        if (r < 0)
+                return bus_log_create_error(r);
+
+        return 1;
+}
+
 static int bus_append_cgroup_property(sd_bus_message *m, const char *field, const char *eq) {
         if (STR_IN_SET(field, "DevicePolicy",
                               "Slice",
@@ -2698,8 +2713,6 @@ static int bus_append_service_property(sd_bus_message *m, const char *field, con
 }
 
 static int bus_append_socket_property(sd_bus_message *m, const char *field, const char *eq) {
-        int r;
-
         if (STR_IN_SET(field, "Accept",
                               "FlushPending",
                               "Writable",
@@ -2789,16 +2802,8 @@ static int bus_append_socket_property(sd_bus_message *m, const char *field, cons
                               "ListenSpecial",
                               "ListenMessageQueue",
                               "ListenFIFO",
-                              "ListenUSBFunction")) {
-                if (isempty(eq))
-                        r = sd_bus_message_append(m, "(sv)", "Listen", "a(ss)", 0);
-                else
-                        r = sd_bus_message_append(m, "(sv)", "Listen", "a(ss)", 1, field + STRLEN("Listen"), eq);
-                if (r < 0)
-                        return bus_log_create_error(r);
-
-                return 1;
-        }
+                              "ListenUSBFunction"))
+                return bus_append_listen(m, field, eq);
 
         return 0;
 }