cups-filters/cups-filters-apremotequeueid.patch

43 lines
1.8 KiB
Diff

diff -up cups-filters-1.13.4/utils/cups-browsed.c.apremotequeueid cups-filters-1.13.4/utils/cups-browsed.c
--- cups-filters-1.13.4/utils/cups-browsed.c.apremotequeueid 2017-02-24 12:14:22.099865138 +0100
+++ cups-filters-1.13.4/utils/cups-browsed.c 2017-02-24 12:18:44.039943820 +0100
@@ -1,4 +1,4 @@
-/***
+ /***
This file is part of cups-filters.
This file is free software; you can redistribute it and/or modify it
@@ -3491,7 +3491,8 @@ gboolean handle_cups_queues(gpointer unu
cups_job_t *jobs;
ipp_t *request;
time_t current_time = time(NULL);
- int i, new_cupsfilter_line_inserted, cont_line_read, want_raw;
+ int i, new_cupsfilter_line_inserted, ap_remote_queue_id_line_inserted,
+ cont_line_read, want_raw;
char *disabled_str, *ptr, *prefix;
const char *loadedppd = NULL;
int pass_through_ppd;
@@ -3813,6 +3814,7 @@ gboolean handle_cups_queues(gpointer unu
" and inhibiting client-side filtering of the job" : ""),
buf);
new_cupsfilter_line_inserted = 0;
+ ap_remote_queue_id_line_inserted = 0;
cont_line_read = 0;
while (cupsFileGets(in, line, sizeof(line))) {
if (pass_through_ppd == 1 &&
@@ -3896,6 +3898,14 @@ gboolean handle_cups_queues(gpointer unu
cupsFilePrintf(out, "%s\n", line);
} else if (cont_line_read == 0 || strncmp(line, "*End", 4)) {
cont_line_read = 0;
+ /* Write an "APRemoteQueueID" line to make this queue marked
+ as remote printer by CUPS */
+ if (strncmp(line, "*%", 2) &&
+ strncmp(line, "*PPD-Adobe:", 11) &&
+ ap_remote_queue_id_line_inserted == 0) {
+ ap_remote_queue_id_line_inserted = 1;
+ cupsFilePrintf(out, "*APRemoteQueueID: \"\"\n");
+ }
/* Simply write out the line as we read it */
cupsFilePrintf(out, "%s\n", line);
}