ubus: Correct usage of timeout on poll function
[project/ubus.git] / libubus-io.c
index fa53040..e6d4236 100644 (file)
@@ -11,6 +11,7 @@
  * GNU General Public License for more details.
  */
 
+#define _GNU_SOURCE
 #include <sys/types.h>
 #include <sys/uio.h>
 #include <sys/socket.h>
@@ -53,7 +54,7 @@ static void wait_data(int fd, bool write)
        struct pollfd pfd = { .fd = fd };
 
        pfd.events = write ? POLLOUT : POLLIN;
-       poll(&pfd, 1, 0);
+       poll(&pfd, 1, -1);
 }
 
 static int writev_retry(int fd, struct iovec *iov, int iov_len, int sock_fd)
@@ -320,7 +321,7 @@ void __hidden ubus_poll_data(struct ubus_context *ctx, int timeout)
                .events = POLLIN | POLLERR,
        };
 
-       poll(&pfd, 1, timeout);
+       poll(&pfd, 1, timeout ? timeout : -1);
        ubus_handle_data(&ctx->sock, ULOOP_READ);
 }