From 4290816865ccc42a26255c53843100b4f3291d2c Mon Sep 17 00:00:00 2001 From: nidhijainpnp <12njain06@gmail.com> Date: Wed, 29 Jul 2020 11:18:12 +0530 Subject: [PATCH] changes in driverless.c file to list IPPS printers (cherry picked from commit d3384bb12278cbdf845540bf744268244d895c32) --- utils/driverless.1 | 7 ++++++- utils/driverless.c | 14 ++++++++++++-- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/utils/driverless.1 b/utils/driverless.1 index 189a612f5..364421725 100644 --- a/utils/driverless.1 +++ b/utils/driverless.1 @@ -5,7 +5,7 @@ .SH SYNOPSIS .nf .fam C -\fBdriverless\fP [\fB-h\fP | \fB--help\fP | \fB--version\fP] [\fB-d\fP | \fB-v\fP | \fB--debug\fP] [\fBlist\fP] | [\fBcat\fP \fIdriver URI\fP] | [\fIIPP printer URI\fP] +\fBdriverless\fP [\fB-h\fP | \fB--help\fP | \fB--version\fP] [\fB-d\fP | \fB-v\fP | \fB--debug\fP] [\fBlist\fP] [\fB_ipps._tcp\fP] | [\fBcat\fP \fIdriver URI\fP] | [\fIIPP printer URI\fP] .fam T .fi @@ -52,6 +52,11 @@ List the driver URIs and metadata for all available IPP printers suitable for driverless PPD file generation (to be used by CUPS). .TP .B +\fB_ipps._tcp\fP +List the driver URIs and metadata for all available IPPS printers suitable +for driverless PPD file generation (to be used by CUPS). +.TP +.B \fBcat\fP \fIdriver URI\fP Generate the PPD file for the supplied \fIdriver URI\fP from the output of "list" (to be used by CUPS). diff --git a/utils/driverless.c b/utils/driverless.c index 4ec1f1d94..45aab1226 100644 --- a/utils/driverless.c +++ b/utils/driverless.c @@ -90,6 +90,8 @@ list_printers (int mode) i = 0; ippfind_argv[i++] = "ippfind"; + if(mode == 3) + ippfind_argv[i++] = "_ipps._tcp"; ippfind_argv[i++] = "-T"; /* Bonjour poll timeout */ ippfind_argv[i++] = "3"; /* 3 seconds */ ippfind_argv[i++] = "!"; /* ! --txt printer-type */ @@ -384,8 +386,8 @@ list_printers (int mode) snprintf(driverless_info, 255, "%s", driverless_support_strs[driverless_support]); driverless_info[255] = '\0'; - if (mode == 1) - /* Call with "list" argument (PPD generator in list mode */ + if (mode == 1 || mode == 3) + /* Call with "list" argument or with "_ipps._tcp" argument (PPD generator in list mode) */ printf("\"driverless:%s\" en \"%s\" \"%s, %s, cups-filters " VERSION "\" \"%s\"\n", service_uri, make, make_and_model, driverless_info, device_id); else @@ -630,6 +632,11 @@ int main(int argc, char*argv[]) { driverless printing */ debug = 1; exit(list_printers(1)); + } else if (!strcasecmp(argv[i], "_ipps._tcp")) { + /* List a driver URI and metadata for "IPPS" printer suitable for + driverless printing */ + debug = 1; + exit(list_printers(3)); } else if (!strncasecmp(argv[i], "cat", 3)) { /* Generate the PPD file for the given driver URI */ debug = 1; @@ -688,6 +695,9 @@ int main(int argc, char*argv[]) { " list List the driver URIs and metadata for all available\n" " IPP printers supporting driverless printing (to be\n" " used by CUPS).\n" + " _ipps._tcp List the driver URIs and metadata for all available\n" + " IPPS printers supporting driverless printing (to be\n" + " used by CUPS).\n" " cat Generate the PPD file for the driver URI\n" " (to be used by CUPS).\n" " Generate the PPD file for the IPP printer URI\n" -- 2.47.3