]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
busctl: show information of passed file descriptor 34747/head
authorYu Watanabe <watanabe.yu+github@gmail.com>
Sun, 13 Oct 2024 04:17:26 +0000 (13:17 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Tue, 15 Oct 2024 10:09:38 +0000 (19:09 +0900)
src/busctl/busctl.c
test/units/TEST-74-AUX-UTILS.busctl.sh

index 49ba7baa0614a2fadbecc946fbbdbeb1beadaa95..1e352a37294ef6d8dbc9747f4280bd4ca048b9fd 100644 (file)
@@ -21,6 +21,7 @@
 #include "fileio.h"
 #include "format-table.h"
 #include "glyph-util.h"
+#include "json-util.h"
 #include "log.h"
 #include "main-func.h"
 #include "memstream-util.h"
@@ -2008,16 +2009,19 @@ static int json_transform_one(sd_bus_message *m, sd_json_variant **ret) {
                 break;
         }
 
-        case SD_BUS_TYPE_UNIX_FD:
-                r = sd_bus_message_read_basic(m, type, NULL);
+        case SD_BUS_TYPE_UNIX_FD: {
+                int fd;
+
+                r = sd_bus_message_read_basic(m, type, &fd);
                 if (r < 0)
                         return bus_log_parse_error(r);
 
-                r = sd_json_variant_new_null(&v);
+                r = json_variant_new_fd_info(&v, fd);
                 if (r < 0)
                         return log_error_errno(r, "Failed to transform fd: %m");
 
                 break;
+        }
 
         case SD_BUS_TYPE_ARRAY:
         case SD_BUS_TYPE_VARIANT:
index eb1f9e265d773e9715452d0d9550323d5a86b153..4949f4bac77392e86f9db1f8a670ae4d483a9895 100755 (executable)
@@ -46,6 +46,10 @@ busctl call -j \
 busctl call --verbose --timeout=60 --expect-reply=yes \
             org.freedesktop.systemd1 /org/freedesktop/systemd1 org.freedesktop.systemd1.Manager \
             ListUnitsByPatterns asas 1 "active" 2 "systemd-*.socket" "*.mount"
+# show information passed fd
+busctl call --json=pretty \
+            org.freedesktop.systemd1 /org/freedesktop/systemd1 org.freedesktop.systemd1.Manager \
+            DumpByFileDescriptor | jq
 
 busctl emit /org/freedesktop/login1 org.freedesktop.login1.Manager \
             PrepareForSleep b false