diff options
author | Marcel Holtmann <marcel@holtmann.org> | 2006-08-16 10:54:06 +0000 |
---|---|---|
committer | Marcel Holtmann <marcel@holtmann.org> | 2006-08-16 10:54:06 +0000 |
commit | a1bc48d15a5d6e78efe744eb7b27b6421cb7222f (patch) | |
tree | a7880f87c2585311975e4087d36255c9f1f0b7ec /hidd/main.c | |
parent | a23442be507d9384175898a28fb72c35f790fbd1 (diff) |
Convert to using ppoll() and pselect()
Diffstat (limited to 'hidd/main.c')
-rw-r--r-- | hidd/main.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/hidd/main.c b/hidd/main.c index 77f80c3f..cd1dceb9 100644 --- a/hidd/main.c +++ b/hidd/main.c @@ -25,6 +25,7 @@ #include <config.h> #endif +#define _GNU_SOURCE #include <stdio.h> #include <errno.h> #include <fcntl.h> @@ -47,6 +48,10 @@ #include "hidd.h" +#ifdef NEED_PPOLL +#include "ppoll.h" +#endif + enum { NONE, SHOW, @@ -327,9 +332,12 @@ error: static void run_server(int ctl, int csk, int isk, uint8_t subclass, int nosdp, int nocheck, int bootonly, int encrypt, int timeout) { struct pollfd p[2]; + sigset_t sigs; short events; int err, ncsk, nisk; + sigfillset(&sigs); + p[0].fd = csk; p[0].events = POLLIN | POLLERR | POLLHUP; @@ -340,8 +348,7 @@ static void run_server(int ctl, int csk, int isk, uint8_t subclass, int nosdp, i p[0].revents = 0; p[1].revents = 0; - err = poll(p, 2, 500); - if (err <= 0) + if (ppoll(p, 2, NULL, &sigs) < 1) continue; events = p[0].revents | p[1].revents; |