summaryrefslogtreecommitdiff
path: root/read-dev-usbmon.c
diff options
context:
space:
mode:
authorPeter Wu <lekensteyn@gmail.com>2013-04-27 21:33:19 +0200
committerPeter Wu <lekensteyn@gmail.com>2013-04-27 21:33:19 +0200
commitbfcf1487ae3e96b78162b160b0b37fe471259900 (patch)
treecddcb9c594084dd62336495ceefdf537f7d9b50c /read-dev-usbmon.c
parentaf94dbf89bbca2c9beb5250e70f50d0cefd8136c (diff)
downloadltunify-bfcf1487ae3e96b78162b160b0b37fe471259900.tar.gz
read-dev-usbmon: retry ioctl when interrupted
Allows read-dev-usbmon to function after suspend/resume.
Diffstat (limited to 'read-dev-usbmon.c')
-rw-r--r--read-dev-usbmon.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/read-dev-usbmon.c b/read-dev-usbmon.c
index 149db45..a20ed89 100644
--- a/read-dev-usbmon.c
+++ b/read-dev-usbmon.c
@@ -26,6 +26,7 @@
#include <string.h>
#include <stdint.h>
#include <stdlib.h> /* getenv */
+#include <errno.h>
typedef uint16_t u16;
typedef int32_t s32;
@@ -104,6 +105,9 @@ int main(int argc, char ** argv) {
for (;;) {
memset(&data, 0xCC, sizeof data); // for debugging purposes
r = ioctl(fd, MON_IOCX_GET, &event);
+ if (r == -1 && errno == EINTR) {
+ continue;
+ }
if (r < 0) {
perror("ioctl");
break;