summaryrefslogtreecommitdiffstats
path: root/dhcpcd
diff options
context:
space:
mode:
Diffstat (limited to 'dhcpcd')
-rw-r--r--dhcpcd/compat/pselect.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/dhcpcd/compat/pselect.c b/dhcpcd/compat/pselect.c
index 8c6d8ed1..a18e5b3e 100644
--- a/dhcpcd/compat/pselect.c
+++ b/dhcpcd/compat/pselect.c
@@ -27,6 +27,7 @@
#include <sys/time.h>
#include <sys/types.h>
+#include <sys/select.h>
#include <limits.h>
#include <poll.h>
@@ -42,6 +43,8 @@ pollts(struct pollfd *restrict fds, nfds_t nfds,
fd_set read_fds;
nfds_t n;
int maxfd, r;
+ struct timeval tv;
+ struct timeval *tvp;
FD_ZERO(&read_fds);
maxfd = 0;
@@ -53,7 +56,14 @@ pollts(struct pollfd *restrict fds, nfds_t nfds,
}
}
- r = pselect(maxfd + 1, &read_fds, NULL, NULL, ts, sigmask);
+ if (ts != NULL) {
+ TIMESPEC_TO_TIMEVAL(&tv, ts);
+ tvp = &tv;
+ } else {
+ tvp = NULL;
+ }
+
+ r = select(maxfd + 1, &read_fds, NULL, NULL, tvp);
if (r > 0) {
for (n = 0; n < nfds; n++) {
fds[n].revents =