- The `ippValidateAttribute` function did not catch all instances of invalid
UTF-8 strings (Issue #5509)
- Non-Kerberized printing to Windows via IPP was broken (Issue #5515)
+- The scheduler no longer stops a printer if an error occurs when a job is
+ canceled or aborted (Issue #5517)
- Added a USB quirks rule for the DYMO 450 Turbo (Issue #5521)
- Added a USB quirks rule for Xerox printers (Issue #5523)
- The scheduler's self-signed certificate did not include all of the alternate
else if (ipp_status == IPP_STATUS_ERROR_CUPS_ACCOUNT_AUTHORIZATION_FAILED)
fputs("JOBSTATE: account-authorization-failed\n", stderr);
- if (ipp_status == IPP_STATUS_ERROR_NOT_AUTHORIZED || ipp_status == IPP_STATUS_ERROR_FORBIDDEN ||
- ipp_status == IPP_STATUS_ERROR_CUPS_AUTHENTICATION_CANCELED)
+ if (job_canceled)
+ return (CUPS_BACKEND_OK);
+ else if (ipp_status == IPP_STATUS_ERROR_NOT_AUTHORIZED || ipp_status == IPP_STATUS_ERROR_FORBIDDEN || ipp_status == IPP_STATUS_ERROR_CUPS_AUTHENTICATION_CANCELED)
return (CUPS_BACKEND_AUTH_REQUIRED);
else if (ipp_status == IPP_STATUS_ERROR_CUPS_ACCOUNT_LIMIT_REACHED ||
ipp_status == IPP_STATUS_ERROR_CUPS_ACCOUNT_INFO_NEEDED ||
/*
* Job management routines for the CUPS scheduler.
*
- * Copyright 2007-2018 by Apple Inc.
+ * Copyright 2007-2019 by Apple Inc.
* Copyright 1997-2007 by Easy Software Products, all rights reserved.
*
* These coded instructions, statements, and computer programs are the
* Stop the printer...
*/
+ if (job_state == IPP_JSTATE_CANCELED || job_state == IPP_JSTATE_ABORTED)
+ {
+ cupsdLogJob(job, CUPSD_LOG_INFO, "Ignored STOP from backend since the job is %s.", job_state == IPP_JSTATE_CANCELED ? "canceled" : "aborted");
+ break;
+ }
+
printer_state = IPP_PRINTER_STOPPED;
if (ErrorLog)
{
job_state = IPP_JOB_PENDING;
- ippSetString(job->attrs, &job->reasons, 0,
- "resources-are-not-ready");
+ ippSetString(job->attrs, &job->reasons, 0, "resources-are-not-ready");
}
break;