560
560
/* CONTENT_TYPE env variable */
561
561
device_uri[1024],
562
562
/* DEVICE_URI env variable */
563
final_content_type[1024],
563
final_content_type[1024] = "",
564
564
/* FINAL_CONTENT_TYPE env variable */
565
565
lang[255], /* LANG env variable */
640
* Figure out the final content type...
643
cupsdLogJob(job, CUPSD_LOG_DEBUG, "%d filters for job:",
644
cupsArrayCount(filters));
645
for (filter = (mime_filter_t *)cupsArrayFirst(filters);
647
filter = (mime_filter_t *)cupsArrayNext(filters))
648
cupsdLogJob(job, CUPSD_LOG_DEBUG, "%s (%s/%s to %s/%s, cost %d)",
650
filter->src ? filter->src->super : "???",
651
filter->src ? filter->src->type : "???",
652
filter->dst ? filter->dst->super : "???",
653
filter->dst ? filter->dst->type : "???",
656
if (!job->printer->remote)
658
for (filter = (mime_filter_t *)cupsArrayLast(filters);
659
filter && filter->dst;
660
filter = (mime_filter_t *)cupsArrayPrev(filters))
661
if (strcmp(filter->dst->super, "printer") ||
662
strcmp(filter->dst->type, job->printer->name))
665
if (filter && filter->dst)
667
if ((ptr = strchr(filter->dst->type, '/')) != NULL)
668
snprintf(final_content_type, sizeof(final_content_type),
669
"FINAL_CONTENT_TYPE=%s", ptr + 1);
671
snprintf(final_content_type, sizeof(final_content_type),
672
"FINAL_CONTENT_TYPE=%s/%s", filter->dst->super,
640
678
* Remove NULL ("-") filters...
1033
1071
envp[envc ++] = banner_page ? "CUPS_FILETYPE=job-sheet" :
1034
1072
"CUPS_FILETYPE=document";
1036
if (!job->printer->remote && !job->printer->raw)
1038
filter = (mime_filter_t *)cupsArrayLast(filters);
1040
if (job->printer->port_monitor)
1041
filter = (mime_filter_t *)cupsArrayPrev(filters);
1043
if (filter && filter->dst)
1045
if ((ptr = strchr(filter->dst->type, '/')) != NULL)
1046
snprintf(final_content_type, sizeof(final_content_type),
1047
"FINAL_CONTENT_TYPE=%s", ptr + 1);
1049
snprintf(final_content_type, sizeof(final_content_type),
1050
"FINAL_CONTENT_TYPE=%s/%s", filter->dst->super,
1052
envp[envc ++] = final_content_type;
1074
if (final_content_type[0])
1075
envp[envc ++] = final_content_type;
1056
1077
if (Classification && !banner_page)
1942
1963
if (cupsFileGets(fp, line, sizeof(line)) &&
1943
!strcmp(line, "CUPSD-AUTH-V2"))
1964
!strcmp(line, "CUPSD-AUTH-V3"))
1946
1967
while (cupsFileGetConf(fp, line, sizeof(line), &value, &linenum))
1949
1970
* Decode value...
1952
bytes = sizeof(data);
1953
httpDecode64_2(data, &bytes, value);
1973
if (strcmp(line, "negotiate") && strcmp(line, "uid"))
1975
bytes = sizeof(data);
1976
httpDecode64_2(data, &bytes, value);
1956
1980
* Assign environment variables...
1971
1995
else if (!strcmp(line, "password"))
1972
1996
cupsdSetStringf(job->auth_env + i, "AUTH_PASSWORD=%s", data);
1973
1997
else if (!strcmp(line, "negotiate"))
1974
cupsdSetStringf(job->auth_env + i, "AUTH_NEGOTIATE=%s", data);
1998
cupsdSetStringf(job->auth_env + i, "AUTH_NEGOTIATE=%s", value);