cups/cups-str3425.patch
2009-12-08 12:26:48 +00:00

101 lines
3.2 KiB
Diff

diff -up cups-1.4.2/scheduler/job.c.str3425 cups-1.4.2/scheduler/job.c
--- cups-1.4.2/scheduler/job.c.str3425 2009-12-08 12:23:15.694500898 +0000
+++ cups-1.4.2/scheduler/job.c 2009-12-08 12:23:35.005500733 +0000
@@ -444,11 +444,11 @@ cupsdCleanJobs(void)
cupsd_job_t *job; /* Current job */
- if (MaxJobs <= 0)
+ if (MaxJobs <= 0 && JobHistory)
return;
for (job = (cupsd_job_t *)cupsArrayFirst(Jobs);
- job && cupsArrayCount(Jobs) >= MaxJobs;
+ job && (cupsArrayCount(Jobs) >= MaxJobs || !JobHistory);
job = (cupsd_job_t *)cupsArrayNext(Jobs))
if (job->state_value >= IPP_JOB_CANCELED && !job->printer)
cupsdDeleteJob(job, CUPSD_JOB_PURGE);
@@ -2670,8 +2670,6 @@ cupsdSetJobState(
job->dirty = 1;
cupsdMarkDirty(CUPSD_DIRTY_JOBS);
}
- else if (!job->printer)
- cupsdDeleteJob(job, CUPSD_JOB_PURGE);
break;
}
diff -up cups-1.4.2/scheduler/main.c.str3425 cups-1.4.2/scheduler/main.c
--- cups-1.4.2/scheduler/main.c.str3425 2009-12-08 12:23:15.695501397 +0000
+++ cups-1.4.2/scheduler/main.c 2009-12-08 12:23:35.007501250 +0000
@@ -397,7 +397,7 @@ main(int argc, /* I - Number of comm
* parent's file descriptors to be blocking. This is a workaround for a
* limitation of userland libpthread on OpenBSD.
*/
-
+
_thread_sys_closefrom(0);
#endif /* __OpenBSD__ */
@@ -844,8 +844,8 @@ main(int argc, /* I - Number of comm
if (timeout == 86400 && Launchd && LaunchdTimeout && !NumPolled &&
!cupsArrayCount(ActiveJobs) &&
- (!Browsing ||
- (!BrowseRemoteProtocols &&
+ (!Browsing ||
+ (!BrowseRemoteProtocols &&
(!NumBrowsers || !BrowseLocalProtocols ||
cupsArrayCount(Printers) == 0))))
{
@@ -1073,6 +1073,7 @@ main(int argc, /* I - Number of comm
if ((current_time - senddoc_time) >= 10)
{
cupsdCheckJobs();
+ cupsdCleanJobs();
senddoc_time = current_time;
}
@@ -1231,8 +1232,8 @@ main(int argc, /* I - Number of comm
#endif /* HAVE_GSSAPI */
#if defined(__APPLE__) && defined(HAVE_DLFCN_H)
- /*
- * Unload Print Service quota enforcement library (X Server only)
+ /*
+ * Unload Print Service quota enforcement library (X Server only)
*/
PSQUpdateQuotaProc = NULL;
@@ -1594,13 +1595,13 @@ launchd_checkin(void)
if (lis)
{
- cupsdLogMessage(CUPSD_LOG_DEBUG,
+ cupsdLogMessage(CUPSD_LOG_DEBUG,
"launchd_checkin: Matched existing listener %s with fd %d...",
httpAddrString(&(lis->address), s, sizeof(s)), fd);
}
else
{
- cupsdLogMessage(CUPSD_LOG_DEBUG,
+ cupsdLogMessage(CUPSD_LOG_DEBUG,
"launchd_checkin: Adding new listener %s with fd %d...",
httpAddrString(&addr, s, sizeof(s)), fd);
@@ -1654,12 +1655,12 @@ launchd_checkout(void)
/*
* Create or remove the launchd KeepAlive file based on whether
- * there are active jobs, polling, browsing for remote printers or
+ * there are active jobs, polling, browsing for remote printers or
* shared printers to advertise...
*/
- if ((cupsArrayCount(ActiveJobs) || NumPolled ||
- (Browsing &&
+ if ((cupsArrayCount(ActiveJobs) || NumPolled ||
+ (Browsing &&
(BrowseRemoteProtocols ||
(BrowseLocalProtocols && NumBrowsers && cupsArrayCount(Printers))))))
{