X-Git-Url: https://git.zerfleddert.de/cgi-bin/gitweb.cgi/hmcfgusb/blobdiff_plain/627e3f3325f221daeb7dfe3610cc6d5caecc3b58..d57fdaf62fa1ce7e8573404206903ad281ff889c:/hmcfgusb.c diff --git a/hmcfgusb.c b/hmcfgusb.c index 75838fe..1a6bb76 100644 --- a/hmcfgusb.c +++ b/hmcfgusb.c @@ -317,6 +317,8 @@ struct hmcfgusb_dev *hmcfgusb_init(hmcfgusb_cb_fn cb, void *data) dev->n_pfd = dev->n_usb_pfd; + quit = 0; + return dev; } @@ -370,6 +372,7 @@ int hmcfgusb_poll(struct hmcfgusb_dev *dev, int timeout) n = poll(dev->pfd, dev->n_pfd, tv.tv_sec * 1000); if (n < 0) { perror("poll"); + errno = 0; return -1; } else if (n == 0) { usb_event = 1; @@ -380,6 +383,7 @@ int hmcfgusb_poll(struct hmcfgusb_dev *dev, int timeout) usb_event = 1; break; } else { + errno = 0; return dev->pfd[fd_n].fd; } } @@ -397,8 +401,11 @@ int hmcfgusb_poll(struct hmcfgusb_dev *dev, int timeout) } } - if (quit) + errno = 0; + if (quit) { + fprintf(stderr, "closing device-connection due to error %d\n", quit); errno = quit; + } return -1; }