You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
29 lines
938 B
29 lines
938 B
diff -up hplip-3.9.8/prnt/hpijs/services.cpp.hpcups-sigpipe hplip-3.9.8/prnt/hpijs/services.cpp |
|
--- hplip-3.9.8/prnt/hpijs/services.cpp.hpcups-sigpipe 2009-08-04 22:35:41.000000000 +0100 |
|
+++ hplip-3.9.8/prnt/hpijs/services.cpp 2009-10-29 11:56:23.015022337 +0000 |
|
@@ -29,6 +29,7 @@ |
|
POSSIBILITY OF SUCH DAMAGE. |
|
\*****************************************************************************/ |
|
|
|
+#include <errno.h> |
|
#include <sys/stat.h> |
|
#include <stdio.h> |
|
#include <stdlib.h> |
|
@@ -382,8 +383,16 @@ DRIVER_ERROR UXServices::ToDevice(const |
|
if (write(OutputPath, pBuffer, *Count) != (ssize_t)*Count) |
|
{ |
|
static int cnt=0; |
|
- if (cnt++ < 5) |
|
+ if (cnt < 5) |
|
+ { |
|
+ cnt++; |
|
BUG("unable to write to output, fd=%d, count=%d: %m\n", OutputPath, *Count); |
|
+ } |
|
+ |
|
+ if (errno == EPIPE) |
|
+ /* The backend has exited. There's no recovering from that. */ |
|
+ exit (1); |
|
+ |
|
return IO_ERROR; |
|
} |
|
|
|
|