|
 |
d905e8 |
diff -up cups-1.6.3/backend/socket.c.multifile-stuck cups-1.6.3/backend/socket.c
|
|
 |
d905e8 |
--- cups-1.6.3/backend/socket.c.multifile-stuck 2018-12-14 13:18:17.714146640 +0100
|
|
 |
d905e8 |
+++ cups-1.6.3/backend/socket.c 2018-12-14 13:20:15.781155072 +0100
|
|
 |
d905e8 |
@@ -430,8 +430,10 @@ main(int argc, /* I - Number of comm
|
|
 |
d905e8 |
lseek(print_fd, 0, SEEK_SET);
|
|
 |
d905e8 |
}
|
|
 |
d905e8 |
|
|
 |
d905e8 |
- tbytes = backendRunLoop(print_fd, device_fd, snmp_fd, &(addrlist->addr), 1,
|
|
 |
d905e8 |
- 0, backendNetworkSideCB);
|
|
 |
d905e8 |
+ if ((bytes = backendRunLoop(print_fd, device_fd, snmp_fd, &(addrlist->addr), 1, 0, backendNetworkSideCB)) < 0)
|
|
 |
d905e8 |
+ tbytes = -1;
|
|
 |
d905e8 |
+ else
|
|
 |
d905e8 |
+ tbytes = bytes;
|
|
 |
d905e8 |
|
|
 |
d905e8 |
if (print_fd != 0 && tbytes >= 0)
|
|
 |
d905e8 |
_cupsLangPrintFilter(stderr, "INFO", _("Print file sent."));
|
|
 |
d905e8 |
@@ -448,7 +450,7 @@ main(int argc, /* I - Number of comm
|
|
 |
d905e8 |
break;
|
|
 |
d905e8 |
#endif /* __APPLE__ */
|
|
 |
d905e8 |
|
|
 |
d905e8 |
- if (waiteof)
|
|
 |
d905e8 |
+ if (waiteof && tbytes >= 0)
|
|
 |
d905e8 |
{
|
|
 |
d905e8 |
/*
|
|
 |
d905e8 |
* Shutdown the socket and wait for the other end to finish...
|
|
 |
d905e8 |
@@ -485,7 +487,7 @@ main(int argc, /* I - Number of comm
|
|
 |
d905e8 |
if (print_fd != 0)
|
|
 |
d905e8 |
close(print_fd);
|
|
 |
d905e8 |
|
|
 |
d905e8 |
- return (CUPS_BACKEND_OK);
|
|
 |
d905e8 |
+ return (tbytes >= 0 ? CUPS_BACKEND_OK : CUPS_BACKEND_FAILED);
|
|
 |
d905e8 |
}
|
|
 |
d905e8 |
|
|
 |
d905e8 |
|
|
 |
d905e8 |
diff -up cups-1.6.3/scheduler/main.c.multifile-stuck cups-1.6.3/scheduler/main.c
|
|
 |
d905e8 |
--- cups-1.6.3/scheduler/main.c.multifile-stuck 2018-12-14 13:18:17.707146699 +0100
|
|
 |
d905e8 |
+++ cups-1.6.3/scheduler/main.c 2018-12-14 13:18:17.726146539 +0100
|
|
 |
d905e8 |
@@ -1855,9 +1855,16 @@ process_children(void)
|
|
 |
d905e8 |
(!job->filters[i] && WIFEXITED(old_status)))
|
|
 |
d905e8 |
{ /* Backend and filter didn't crash */
|
|
 |
d905e8 |
if (job->filters[i])
|
|
 |
d905e8 |
+ {
|
|
 |
d905e8 |
job->status = status; /* Filter failed */
|
|
 |
d905e8 |
+ }
|
|
 |
d905e8 |
else
|
|
 |
d905e8 |
+ {
|
|
 |
d905e8 |
job->status = -status; /* Backend failed */
|
|
 |
d905e8 |
+
|
|
 |
d905e8 |
+ if (job->current_file < job->num_files)
|
|
 |
d905e8 |
+ cupsdSetJobState(job, IPP_JOB_ABORTED, CUPSD_JOB_FORCE, "Canceling multi-file job due to backend failure.");
|
|
 |
d905e8 |
+ }
|
|
 |
d905e8 |
}
|
|
 |
d905e8 |
|
|
 |
d905e8 |
if (job->state_value == IPP_JOB_PROCESSING &&
|