chiark / gitweb /
sd-bus: introduce sd_bus_slot objects encapsulating callbacks or vtables attached...
[elogind.git] / src / libsystemd / sd-bus / busctl.c
index b4fb364716ef224729cd2fccbc9cc1e173219499..454504701141df862114d3908218025b6e7ed136 100644 (file)
@@ -240,7 +240,7 @@ static int monitor(sd_bus *bus, char *argv[]) {
                 if (!m)
                         return log_oom();
 
-                r = sd_bus_add_match(bus, m, NULL, NULL);
+                r = sd_bus_add_match(bus, NULL, m, NULL, NULL);
                 if (r < 0) {
                         log_error("Failed to add match: %s", strerror(-r));
                         return r;
@@ -250,7 +250,7 @@ static int monitor(sd_bus *bus, char *argv[]) {
         }
 
         STRV_FOREACH(i, arg_matches) {
-                r = sd_bus_add_match(bus, *i, NULL, NULL);
+                r = sd_bus_add_match(bus, NULL, *i, NULL, NULL);
                 if (r < 0) {
                         log_error("Failed to add match: %s", strerror(-r));
                         return r;
@@ -260,7 +260,7 @@ static int monitor(sd_bus *bus, char *argv[]) {
         }
 
         if (!added_something) {
-                r = sd_bus_add_match(bus, "", NULL, NULL);
+                r = sd_bus_add_match(bus, NULL, "", NULL, NULL);
                 if (r < 0) {
                         log_error("Failed to add match: %s", strerror(-r));
                         return r;
@@ -507,6 +507,24 @@ int main(int argc, char *argv[]) {
                         log_error("Failed to set monitor mode: %s", strerror(-r));
                         goto finish;
                 }
+
+                r = sd_bus_negotiate_creds(bus, _SD_BUS_CREDS_ALL);
+                if (r < 0) {
+                        log_error("Failed to enable credentials: %s", strerror(-r));
+                        goto finish;
+                }
+
+                r = sd_bus_negotiate_timestamp(bus, true);
+                if (r < 0) {
+                        log_error("Failed to enable timestamps: %s", strerror(-r));
+                        goto finish;
+                }
+
+                r = sd_bus_negotiate_fds(bus, true);
+                if (r < 0) {
+                        log_error("Failed to enable fds: %s", strerror(-r));
+                        goto finish;
+                }
         }
 
         if (arg_address)