chiark / gitweb /
timedated: use libsystemd-bus instead of libdbus for bus communication
[elogind.git] / src / stdio-bridge / stdio-bridge.c
index 8667bbf9b6fb37e799c02f8355ebd3e89d44d1cb..07218e90c5d2322666dbc621ec7b790c265027ff 100644 (file)
@@ -36,6 +36,7 @@
 #include "sd-bus.h"
 #include "bus-internal.h"
 #include "bus-message.h"
+#include "bus-util.h"
 
 int main(int argc, char *argv[]) {
         _cleanup_bus_unref_ sd_bus *a = NULL, *b = NULL;
@@ -68,7 +69,7 @@ int main(int argc, char *argv[]) {
                 goto finish;
         }
 
-        r = sd_bus_set_negotiate_fds(a, is_unix);
+        r = sd_bus_negotiate_fds(a, is_unix);
         if (r < 0) {
                 log_error("Failed to set FD negotiation: %s", strerror(-r));
                 goto finish;
@@ -104,7 +105,7 @@ int main(int argc, char *argv[]) {
                 goto finish;
         }
 
-        r = sd_bus_set_negotiate_fds(b, is_unix);
+        r = sd_bus_negotiate_fds(b, is_unix);
         if (r < 0) {
                 log_error("Failed to set FD negotiation: %s", strerror(-r));
                 goto finish;
@@ -124,7 +125,6 @@ int main(int argc, char *argv[]) {
 
         for (;;) {
                 _cleanup_bus_message_unref_ sd_bus_message *m = NULL;
-                struct pollfd p[3];
                 int events_a, events_b, fd;
                 uint64_t timeout_a, timeout_b, t;
                 struct timespec _ts, *ts;
@@ -211,15 +211,14 @@ int main(int argc, char *argv[]) {
                         ts = timespec_store(&_ts, t);
                 }
 
-                zero(p);
-                p[0].fd = fd;
-                p[0].events = events_a;
-                p[1].fd = STDIN_FILENO;
-                p[1].events = events_b & POLLIN;
-                p[2].fd = STDOUT_FILENO;
-                p[2].events = events_b & POLLOUT;
+                {
+                        struct pollfd p[3] = {
+                                {.fd = fd,            .events = events_a, },
+                                {.fd = STDIN_FILENO,  .events = events_b & POLLIN, },
+                                {.fd = STDOUT_FILENO, .events = events_b & POLLOUT, }};
 
-                r = ppoll(p, ELEMENTSOF(p), ts, NULL);
+                        r = ppoll(p, ELEMENTSOF(p), ts, NULL);
+                }
                 if (r < 0) {
                         log_error("ppoll() failed: %m");
                         goto finish;