summaryrefslogtreecommitdiff
path: root/scheduler/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'scheduler/main.c')
-rw-r--r--scheduler/main.c22
1 files changed, 14 insertions, 8 deletions
diff --git a/scheduler/main.c b/scheduler/main.c
index 9d6b8f8d6..f90e74545 100644
--- a/scheduler/main.c
+++ b/scheduler/main.c
@@ -1718,16 +1718,21 @@ process_children(void)
else
job->status = -status; /* Backend failed */
- if ((!(job->printer->type & CUPS_PRINTER_FAX) || job->filters[i]) &&
- job->status_level > CUPSD_LOG_ERROR)
+ if (job->status_level > CUPSD_LOG_ERROR)
{
job->status_level = CUPSD_LOG_ERROR;
- snprintf(job->printer->state_message,
- sizeof(job->printer->state_message), "%s failed", name);
- cupsdAddPrinterHistory(job->printer);
+ if (job->printer)
+ {
+ snprintf(job->printer->state_message,
+ sizeof(job->printer->state_message), "%s failed", name);
+ cupsdAddPrinterHistory(job->printer);
+ }
+
+ if (!job->attrs)
+ cupsdLoadJob(job);
- if (!job->printer_message)
+ if (!job->printer_message && job->attrs)
{
if ((job->printer_message =
ippFindAttribute(job->attrs, "job-printer-state-message",
@@ -1738,8 +1743,9 @@ process_children(void)
NULL, "");
}
- cupsdSetString(&(job->printer_message->values[0].string.text),
- job->printer->state_message);
+ if (job->printer_message)
+ cupsdSetString(&(job->printer_message->values[0].string.text),
+ job->printer->state_message);
}
}