chiark / gitweb /
bus: add APIs for negotiating what is attached to messages
[elogind.git] / src / stdio-bridge / stdio-bridge.c
index 8667bbf9b6fb37e799c02f8355ebd3e89d44d1cb..ab1a43ab1a99f586ccf57499810106e5c2c1d9a6 100644 (file)
@@ -68,7 +68,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 +104,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 +124,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 +210,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;