chiark / gitweb /
bus: poll() on the right fds in proxyd
authorLennart Poettering <lennart@poettering.net>
Sat, 21 Dec 2013 16:46:35 +0000 (17:46 +0100)
committerLennart Poettering <lennart@poettering.net>
Sat, 21 Dec 2013 16:54:29 +0000 (17:54 +0100)
src/bus-proxyd/bus-proxyd.c

index d8caf406c7155d103be00f15e5dbddd202450884..91472d93f1976aea0c26bb839a39626207596a71 100644 (file)
@@ -266,6 +266,7 @@ int main(int argc, char *argv[]) {
                 int events_a, events_b, fd;
                 uint64_t timeout_a, timeout_b, t;
                 struct timespec _ts, *ts;
+                struct pollfd *pollfd;
                 int k;
 
                 r = sd_bus_process(a, &m);
@@ -374,14 +375,13 @@ int main(int argc, char *argv[]) {
                         ts = timespec_store(&_ts, t);
                 }
 
-                {
-                        struct pollfd p[3] = {
-                                {.fd = fd,            .events = events_a, },
-                                {.fd = STDIN_FILENO,  .events = events_b & POLLIN, },
-                                {.fd = STDOUT_FILENO, .events = events_b & POLLOUT, }};
+                pollfd = (struct pollfd[3]) {
+                        {.fd = fd,     .events = events_a,           },
+                        {.fd = in_fd,  .events = events_b & POLLIN,  },
+                        {.fd = out_fd, .events = events_b & POLLOUT, }
+                };
 
-                        r = ppoll(p, ELEMENTSOF(p), ts, NULL);
-                }
+                r = ppoll(pollfd, 3, ts, NULL);
                 if (r < 0) {
                         log_error("ppoll() failed: %m");
                         goto finish;