diff -up cups-1.6.3/scheduler/ipp.c.str4648 cups-1.6.3/scheduler/ipp.c
--- cups-1.6.3/scheduler/ipp.c.str4648 2015-07-08 10:24:31.389942557 +0100
+++ cups-1.6.3/scheduler/ipp.c 2015-07-08 10:24:51.042104284 +0100
@@ -3392,6 +3392,8 @@ cancel_all_jobs(cupsd_client_t *con, /*
}
con->response->request.status.status_code = IPP_OK;
+
+ cupsdCheckJobs();
}
diff -up cups-1.6.3/scheduler/job.c.str4648 cups-1.6.3/scheduler/job.c
--- cups-1.6.3/scheduler/job.c.str4648 2015-07-08 10:24:31.399942636 +0100
+++ cups-1.6.3/scheduler/job.c 2015-07-08 10:24:51.043104293 +0100
@@ -267,8 +267,6 @@ cupsdCancelJobs(const char *dest, /* I -
"Job canceled by user.");
}
}
-
- cupsdCheckJobs();
}
@@ -3488,13 +3486,6 @@ finalize_job(cupsd_job_t *job, /* I - J
job->printer->job = NULL;
job->printer = NULL;
-
- /*
- * Try printing another job...
- */
-
- if (printer_state != IPP_PRINTER_STOPPED)
- cupsdCheckJobs();
}
@@ -4744,6 +4735,8 @@ update_job(cupsd_job_t *job) /* I - Job
*ptr; /* Pointer update... */
int loglevel, /* Log level for message */
event = 0; /* Events? */
+ cupsd_printer_t *printer = job->printer;
+ /* Printer */
static const char * const levels[] = /* Log levels */
{
"NONE",
@@ -5063,10 +5056,11 @@ update_job(cupsd_job_t *job) /* I - Job
finalize_job(job, 1);
/*
- * Check for new jobs...
+ * Try printing another job...
*/
- cupsdCheckJobs();
+ if (printer->state != IPP_PRINTER_STOPPED)
+ cupsdCheckJobs();
}
}