mirror of
https://gitdl.cn/https://github.com/chakralinux/core.git
synced 2025-02-10 19:54:36 +08:00
36 lines
976 B
Diff
36 lines
976 B
Diff
diff -urNad cups-1.4.0~/backend/usb-libusb.c cups-1.4.0/backend/usb-libusb.c
|
|
--- cups-1.4.0~/backend/usb-libusb.c 2009-08-08 00:24:14.000000000 +0200
|
|
+++ cups-1.4.0/backend/usb-libusb.c 2009-09-02 16:37:31.000000000 +0200
|
|
@@ -158,7 +158,7 @@
|
|
|
|
while (poll(pfds, 2, -1) > 0)
|
|
{
|
|
- if (pfds[0].revents & POLLIN)
|
|
+ if (pfds[0].revents & (POLLIN + POLLHUP))
|
|
{
|
|
if ((bytes = read(print_fd, buffer, sizeof(buffer))) > 0)
|
|
{
|
|
@@ -179,7 +179,12 @@
|
|
}
|
|
|
|
if (pfds[1].revents & POLLIN)
|
|
- tbytes += side_cb(printer, print_fd);
|
|
+ {
|
|
+ if ((bytes = side_cb(printer, print_fd)) < 0)
|
|
+ pfds[1].events = 0; /* Filter has gone away... */
|
|
+ else
|
|
+ tbytes += bytes;
|
|
+ }
|
|
}
|
|
}
|
|
|
|
@@ -747,7 +752,7 @@
|
|
if (cupsSideChannelRead(&command, &status, data, &datalen, 1.0))
|
|
{
|
|
_cupsLangPuts(stderr, _("WARNING: Failed to read side-channel request!\n"));
|
|
- return (0);
|
|
+ return (-1);
|
|
}
|
|
|
|
switch (command)
|