cupsdLogMessage(CUPSD_LOG_DEBUG2, "finalize_job(job=%p(%d))", job, job->id);
/*
- * Clear the "connecting-to-device" reason, which is only valid when a
- * printer is processing...
+ * Clear the "connecting-to-device" and "com.apple.print.recoverable-warning"
+ * reasons, which are only valid when a printer is processing...
*/
cupsdSetPrinterReasons(job->printer, "-connecting-to-device");
+ cupsdSetPrinterReasons(job->printer, "-com.apple.print.recoverable-warning");
/*
* Similarly, clear the "offline-report" reason for non-USB devices since we
cupsdStopPrinter(job->printer, 1);
return;
}
- else
+ else if (cupsdSetPrinterReasons(job->printer, message))
{
- cupsdSetPrinterReasons(job->printer, message);
cupsdAddPrinterHistory(job->printer);
event |= CUPSD_EVENT_PRINTER_STATE;
}
cupsFreeOptions(num_keywords, keywords);
}
-#ifdef __APPLE__
else if (!strncmp(message, "recoverable:", 12))
{
ptr = message + 12;
if (*ptr)
{
- cupsdSetPrinterReasons(job->printer,
- "+com.apple.print.recoverable-warning");
- cupsdSetString(&(job->printer->recoverable), ptr);
- cupsdAddPrinterHistory(job->printer);
- event |= CUPSD_EVENT_PRINTER_STATE;
+ if (cupsdSetPrinterReasons(job->printer,
+ "+com.apple.print.recoverable-warning") ||
+ !job->printer->recoverable ||
+ strcmp(job->printer->recoverable, ptr))
+ {
+ cupsdSetString(&(job->printer->recoverable), ptr);
+ cupsdAddPrinterHistory(job->printer);
+ event |= CUPSD_EVENT_PRINTER_STATE;
+ }
}
}
else if (!strncmp(message, "recovered:", 10))
{
- cupsdSetPrinterReasons(job->printer,
- "-com.apple.print.recoverable-warning");
-
ptr = message + 10;
while (isspace(*ptr & 255))
ptr ++;
- cupsdSetString(&(job->printer->recoverable), ptr);
- cupsdAddPrinterHistory(job->printer);
- event |= CUPSD_EVENT_PRINTER_STATE;
+ if (cupsdSetPrinterReasons(job->printer,
+ "-com.apple.print.recoverable-warning") ||
+ !job->printer->recoverable || strcmp(job->printer->recoverable, ptr))
+ {
+ cupsdSetString(&(job->printer->recoverable), ptr);
+ cupsdAddPrinterHistory(job->printer);
+ event |= CUPSD_EVENT_PRINTER_STATE;
+ }
}
-#endif /* __APPLE__ */
else
{
cupsdLogJob(job, loglevel, "%s", message);