summaryrefslogtreecommitdiffstats
path: root/hidd/main.c
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2006-08-16 10:54:06 +0000
committerMarcel Holtmann <marcel@holtmann.org>2006-08-16 10:54:06 +0000
commita1bc48d15a5d6e78efe744eb7b27b6421cb7222f (patch)
treea7880f87c2585311975e4087d36255c9f1f0b7ec /hidd/main.c
parenta23442be507d9384175898a28fb72c35f790fbd1 (diff)
Convert to using ppoll() and pselect()
Diffstat (limited to 'hidd/main.c')
-rw-r--r--hidd/main.c11
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;