diff options
author | DongHun Kwak <dh0128.kwak@samsung.com> | 2017-09-13 11:53:50 +0900 |
---|---|---|
committer | DongHun Kwak <dh0128.kwak@samsung.com> | 2017-09-13 11:53:56 +0900 |
commit | 5ed126d6de36f982f1f800f54d468dac5730050d (patch) | |
tree | e879d7ec04890d2b5395408fee767ff8e7fde2a1 /scheduler | |
parent | 1465a9590ad148bed86bf8930007467ad37f7ac0 (diff) | |
download | cups-5ed126d6de36f982f1f800f54d468dac5730050d.tar.gz cups-5ed126d6de36f982f1f800f54d468dac5730050d.tar.bz2 cups-5ed126d6de36f982f1f800f54d468dac5730050d.zip |
Imported Upstream version 2.2.3
Change-Id: I3d6e094a6bcee5cd32563c3b4b9e77d653a4949d
Signed-off-by: DongHun Kwak <dh0128.kwak@samsung.com>
Diffstat (limited to 'scheduler')
-rw-r--r-- | scheduler/client.c | 6 | ||||
-rw-r--r-- | scheduler/conf.c | 6 | ||||
-rw-r--r-- | scheduler/cups-driverd.cxx | 2 | ||||
-rw-r--r-- | scheduler/job.c | 11 | ||||
-rw-r--r-- | scheduler/main.c | 4 | ||||
-rw-r--r-- | scheduler/printers.c | 85 | ||||
-rw-r--r-- | scheduler/process.c | 4 |
7 files changed, 84 insertions, 34 deletions
diff --git a/scheduler/client.c b/scheduler/client.c index 50e00be..f27decd 100644 --- a/scheduler/client.c +++ b/scheduler/client.c @@ -2349,17 +2349,15 @@ cupsdSendHeader( if (auth_type == CUPSD_AUTH_BASIC) strlcpy(auth_str, "Basic realm=\"CUPS\"", sizeof(auth_str)); -#ifdef HAVE_GSSAPI else if (auth_type == CUPSD_AUTH_NEGOTIATE) { -# ifdef AF_LOCAL +#ifdef AF_LOCAL if (httpAddrFamily(httpGetAddress(con->http)) == AF_LOCAL) strlcpy(auth_str, "Basic realm=\"CUPS\"", sizeof(auth_str)); else -# endif /* AF_LOCAL */ +#endif /* AF_LOCAL */ strlcpy(auth_str, "Negotiate", sizeof(auth_str)); } -#endif /* HAVE_GSSAPI */ if (con->best && auth_type != CUPSD_AUTH_NEGOTIATE && !_cups_strcasecmp(httpGetHostname(con->http, NULL, 0), "localhost")) diff --git a/scheduler/conf.c b/scheduler/conf.c index 3cde8bd..36f043f 100644 --- a/scheduler/conf.c +++ b/scheduler/conf.c @@ -1,7 +1,7 @@ /* * Configuration routines for the CUPS scheduler. * - * Copyright 2007-2016 by Apple Inc. + * Copyright 2007-2017 by Apple Inc. * Copyright 1997-2007 by Easy Software Products, all rights reserved. * * These coded instructions, statements, and computer programs are the @@ -2233,7 +2233,6 @@ parse_aaa(cupsd_location_t *loc, /* I - Location */ if (loc->level == CUPSD_AUTH_ANON) loc->level = CUPSD_AUTH_USER; } -#ifdef HAVE_GSSAPI else if (!_cups_strcasecmp(value, "negotiate")) { loc->type = CUPSD_AUTH_NEGOTIATE; @@ -2241,7 +2240,6 @@ parse_aaa(cupsd_location_t *loc, /* I - Location */ if (loc->level == CUPSD_AUTH_ANON) loc->level = CUPSD_AUTH_USER; } -#endif /* HAVE_GSSAPI */ else { cupsdLogMessage(CUPSD_LOG_WARN, @@ -3175,10 +3173,8 @@ read_cupsd_conf(cups_file_t *fp) /* I - File to read from */ default_auth_type = CUPSD_AUTH_NONE; else if (!_cups_strcasecmp(value, "basic")) default_auth_type = CUPSD_AUTH_BASIC; -#ifdef HAVE_GSSAPI else if (!_cups_strcasecmp(value, "negotiate")) default_auth_type = CUPSD_AUTH_NEGOTIATE; -#endif /* HAVE_GSSAPI */ else if (!_cups_strcasecmp(value, "auto")) default_auth_type = CUPSD_AUTH_AUTO; else diff --git a/scheduler/cups-driverd.cxx b/scheduler/cups-driverd.cxx index d7d0171..9030911 100644 --- a/scheduler/cups-driverd.cxx +++ b/scheduler/cups-driverd.cxx @@ -2123,7 +2123,7 @@ load_ppd(const char *filename, /* I - Real filename */ if (is_direct && !is_storage) type = PPD_TYPE_OBJECT_DIRECT; - if (!is_direct && is_storage) + else if (!is_direct && is_storage) type = PPD_TYPE_OBJECT_STORAGE; else type = PPD_TYPE_OBJECT_ANY; diff --git a/scheduler/job.c b/scheduler/job.c index 1b12fe5..7824015 100644 --- a/scheduler/job.c +++ b/scheduler/job.c @@ -456,6 +456,7 @@ cupsdCleanJobs(void) else if (job->file_time && job->file_time <= curtime) { cupsdLogJob(job, CUPSD_LOG_DEBUG, "Removing document files."); + cupsdLogJob(job, CUPSD_LOG_DEBUG2, "curtime=%ld, job->file_time=%ld", (long)curtime, (long)job->file_time); remove_job_files(job); cupsdMarkDirty(CUPSD_DIRTY_JOBS); @@ -1743,6 +1744,8 @@ cupsdLoadJob(cupsd_job_t *job) /* I - Job */ else job->file_time = INT_MAX; + cupsdLogJob(job, CUPSD_LOG_DEBUG2, "cupsdLoadJob: job->file_time=%ld, time-at-completed=%ld, JobFiles=%d", (long)job->file_time, (long)attr->values[0].integer, JobFiles); + if (job->file_time < JobHistoryUpdate || !JobHistoryUpdate) JobHistoryUpdate = job->file_time; @@ -2742,7 +2745,7 @@ cupsdSetJobState( job->dirty = 1; cupsdMarkDirty(CUPSD_DIRTY_JOBS); } - else if (!job->printer) + else if (!JobHistory && !job->printer) { /* * Delete the job immediately if not actively printing... @@ -2876,12 +2879,14 @@ cupsdUpdateJobs(void) else job->file_time = INT_MAX; + cupsdLogJob(job, CUPSD_LOG_DEBUG2, "cupsdUpdateJobs: job->file_time=%ld, time-at-completed=%ld, JobFiles=%d", (long)job->file_time, (long)attr->values[0].integer, JobFiles); + if (job->file_time < JobHistoryUpdate || !JobHistoryUpdate) JobHistoryUpdate = job->file_time; } } - cupsdLogMessage(CUPSD_LOG_DEBUG2, "cupsdUpdateAllJobs: JobHistoryUpdate=%ld", + cupsdLogMessage(CUPSD_LOG_DEBUG2, "cupsdUpdateJobs: JobHistoryUpdate=%ld", (long)JobHistoryUpdate); } @@ -4601,7 +4606,7 @@ set_time(cupsd_job_t *job, /* I - Job to update */ JobHistoryUpdate = job->history_time; if (JobFiles < INT_MAX && attr) - job->file_time = attr->values[0].integer + JobFiles; + job->file_time = curtime + JobFiles; else job->file_time = INT_MAX; diff --git a/scheduler/main.c b/scheduler/main.c index e18ffb0..bdb27a6 100644 --- a/scheduler/main.c +++ b/scheduler/main.c @@ -1,7 +1,7 @@ /* * Main loop for the CUPS scheduler. * - * Copyright 2007-2016 by Apple Inc. + * Copyright 2007-2017 by Apple Inc. * Copyright 1997-2007 by Easy Software Products, all rights reserved. * * These coded instructions, statements, and computer programs are the @@ -889,7 +889,7 @@ main(int argc, /* I - Number of command-line args */ * Write dirty config/state files... */ - if (DirtyCleanTime && current_time >= DirtyCleanTime) + if (DirtyCleanTime && current_time >= DirtyCleanTime && cupsArrayCount(Clients) == 0) cupsdCleanDirty(); #ifdef __APPLE__ diff --git a/scheduler/printers.c b/scheduler/printers.c index 63ca80d..e17d331 100644 --- a/scheduler/printers.c +++ b/scheduler/printers.c @@ -1,7 +1,7 @@ /* * Printer routines for the CUPS scheduler. * - * Copyright 2007-2016 by Apple Inc. + * Copyright 2007-2017 by Apple Inc. * Copyright 1997-2007 by Easy Software Products, all rights reserved. * * These coded instructions, statements, and computer programs are the @@ -3802,7 +3802,7 @@ load_ppd(cupsd_printer_t *p) /* I - Printer */ ipp_attribute_t *attr; /* Attribute data */ _ipp_value_t *val; /* Attribute value */ int num_finishings, /* Number of finishings */ - finishings[5]; /* finishings-supported values */ + finishings[100]; /* finishings-supported values */ int num_qualities, /* Number of print-quality values */ qualities[3]; /* print-quality values */ int num_margins, /* Number of media-*-margin-supported values */ @@ -4584,16 +4584,74 @@ load_ppd(cupsd_printer_t *p) /* I - Printer */ if (ppdFindOption(ppd, "Collate") != NULL) p->type |= CUPS_PRINTER_COLLATE; - if (ppdFindOption(ppd, "StapleLocation") != NULL) + if (p->pc && p->pc->finishings) { - p->type |= CUPS_PRINTER_STAPLE; - finishings[num_finishings++] = IPP_FINISHINGS_STAPLE; - } + _pwg_finishings_t *fin; /* Current finishing value */ - if (ppdFindOption(ppd, "BindEdge") != NULL) - { - p->type |= CUPS_PRINTER_BIND; - finishings[num_finishings++] = IPP_FINISHINGS_BIND; + for (fin = (_pwg_finishings_t *)cupsArrayFirst(p->pc->finishings); fin; fin = (_pwg_finishings_t *)cupsArrayNext(p->pc->finishings)) + { + if (num_finishings < (int)(sizeof(finishings) / sizeof(finishings[0]))) + finishings[num_finishings++] = fin->value; + + switch (fin->value) + { + case IPP_FINISHINGS_BIND : + case IPP_FINISHINGS_BIND_LEFT : + case IPP_FINISHINGS_BIND_TOP : + case IPP_FINISHINGS_BIND_RIGHT : + case IPP_FINISHINGS_BIND_BOTTOM : + case IPP_FINISHINGS_EDGE_STITCH : + case IPP_FINISHINGS_EDGE_STITCH_LEFT : + case IPP_FINISHINGS_EDGE_STITCH_TOP : + case IPP_FINISHINGS_EDGE_STITCH_RIGHT : + case IPP_FINISHINGS_EDGE_STITCH_BOTTOM : + p->type |= CUPS_PRINTER_BIND; + break; + + case IPP_FINISHINGS_COVER : + p->type |= CUPS_PRINTER_COVER; + break; + + case IPP_FINISHINGS_PUNCH : + case IPP_FINISHINGS_PUNCH_TOP_LEFT : + case IPP_FINISHINGS_PUNCH_BOTTOM_LEFT : + case IPP_FINISHINGS_PUNCH_TOP_RIGHT : + case IPP_FINISHINGS_PUNCH_BOTTOM_RIGHT : + case IPP_FINISHINGS_PUNCH_DUAL_LEFT : + case IPP_FINISHINGS_PUNCH_DUAL_TOP : + case IPP_FINISHINGS_PUNCH_DUAL_RIGHT : + case IPP_FINISHINGS_PUNCH_DUAL_BOTTOM : + case IPP_FINISHINGS_PUNCH_TRIPLE_LEFT : + case IPP_FINISHINGS_PUNCH_TRIPLE_TOP : + case IPP_FINISHINGS_PUNCH_TRIPLE_RIGHT : + case IPP_FINISHINGS_PUNCH_TRIPLE_BOTTOM : + case IPP_FINISHINGS_PUNCH_QUAD_LEFT : + case IPP_FINISHINGS_PUNCH_QUAD_TOP : + case IPP_FINISHINGS_PUNCH_QUAD_RIGHT : + case IPP_FINISHINGS_PUNCH_QUAD_BOTTOM : + p->type |= CUPS_PRINTER_PUNCH; + break; + + case IPP_FINISHINGS_STAPLE : + case IPP_FINISHINGS_STAPLE_TOP_LEFT : + case IPP_FINISHINGS_STAPLE_BOTTOM_LEFT : + case IPP_FINISHINGS_STAPLE_TOP_RIGHT : + case IPP_FINISHINGS_STAPLE_BOTTOM_RIGHT : + case IPP_FINISHINGS_STAPLE_DUAL_LEFT : + case IPP_FINISHINGS_STAPLE_DUAL_TOP : + case IPP_FINISHINGS_STAPLE_DUAL_RIGHT : + case IPP_FINISHINGS_STAPLE_DUAL_BOTTOM : + case IPP_FINISHINGS_STAPLE_TRIPLE_LEFT : + case IPP_FINISHINGS_STAPLE_TRIPLE_TOP : + case IPP_FINISHINGS_STAPLE_TRIPLE_RIGHT : + case IPP_FINISHINGS_STAPLE_TRIPLE_BOTTOM : + p->type |= CUPS_PRINTER_STAPLE; + break; + + default : + break; + } + } } for (i = 0; i < ppd->num_sizes; i ++) @@ -4715,13 +4773,6 @@ load_ppd(cupsd_printer_t *p) /* I - Printer */ } /* - * 3D printer support... - */ - - if (ppdFindAttr(ppd, "cups3D", NULL)) - p->type |= CUPS_PRINTER_3D; - - /* * Show current and available port monitors for this printer... */ diff --git a/scheduler/process.c b/scheduler/process.c index cf67e74..27e8010 100644 --- a/scheduler/process.c +++ b/scheduler/process.c @@ -1,7 +1,7 @@ /* * Process management routines for the CUPS scheduler. * - * Copyright 2007-2015 by Apple Inc. + * Copyright 2007-2017 by Apple Inc. * Copyright 1997-2007 by Easy Software Products, all rights reserved. * * These coded instructions, statements, and computer programs are the @@ -874,7 +874,7 @@ cupsd_requote(char *dst, /* I - Destination buffer */ if (ch == '/' && !*src) break; /* Don't add trailing slash */ - if (strchr(".?*()[]^$\\", ch)) + if (strchr(".?*()[]^$\\\"", ch)) *dstptr++ = '\\'; *dstptr++ = (char)ch; |