Till Kampetter [Tue, 9 Aug 2016 16:11:35 +0000 (18:11 +0200)]
Do not use host names for broadcasting print queues and
managing print queues broadcasted from other servers by default. Many
networks do not have valid host names for all machines.
Bug-Ubuntu: https://bugs.launchpad.net/bugs/449586
Patch-Name: do-not-broadcast-with-hostnames.patch
Tim Waugh [Tue, 9 Aug 2016 16:11:30 +0000 (18:11 +0200)]
Let snmp backend also use manufacturer-specific MIBs
… of HP and Ricoh to obtain the device IDs of network-connected
printers. This way we get more reliable information about make and model
and in addition the supported page description languages, which allows one to
identify whether an optional PostScript add-on is installed or for an
unsupported printer which generic PPD is the best choice (requested by
Ricoh).
Bug: https://github.com/apple/cups/issues/3552
Patch-Name: Let-snmp-backend-also-use-manufacturer-specific-MIBs.patch
Till Kamppeter [Sat, 22 Feb 2020 13:28:58 +0000 (14:28 +0100)]
Fix scheduler cupsd.conf load
When running it without arguments it is supposed to read the local CUPS's
cupsd.conf and show a summary of the setting. in CUPS 2.3.1 it shows a mess
with a lot of HTML inside and this is due to the fact that when loading the
file via HTTP using the /admin/cups/cupsd.conf path the scheduler calls the
admin.cgi program which returns the admin front page of the web admin
interface. cupsctl then tries to interpret that as the config file and displays
garbage. Even worse is if you run cupsctl with command line argument (one of
the five switches or a key=value pair) to change a setting. It seems to load
cupsd.conf again and gets again the HTML code of the web interface page.
cupsctl tries to interpret this again, producing garbage, adds the
user-supplied setting and writes all this back into cupsd.conf. Then it tries
to restart the scheduler which fails due to the broken config file.
The problem is that in the file scheduler/client.conf, in the function
get_file() the URI from the client is at first checked whether it begins with
"/admin/" and in this case the CGI program admin.cgi is responsible. Only after
that the check for "/admin/conf/cupsd.conf" comes and is never reached.
I have changed the order now appropriately and this way cupsctl works again.
Note that the problem only occurs if the web interface is active and the
cupsctl command is issued by a non-root user.
This is a regression caused by issue #5652.
Till Kamppeter [Mon, 17 Feb 2020 08:05:58 +0000 (09:05 +0100)]
Fix conversion of PPD InputSlot choice names
When I create a CUPS queue with a PPD file with choice names "Tray-1", "Tray-2",
... in the InputSlot option CUPS translates these names to double-dashed IPP
attribute names: "tray--1", "tray--2", ... in the "media-source" attribute, both
when passing a job to the printer with the IPP backend, making the printer
ignore the tray choice, and also when answering a get-printer-attributes IPP
request from a client. This happens when in the PPD a dash is followed by a
digit, as the pwg_unppdize_name() function in cups/ppd-cache.c inserts a dash
whenever a non-digit is followed by a digit in the PPD name. As IPP attribute
names generally never have double-dashes and also no dashes in the beginning or
the end of the name, I have modified the pwg_unppdize_name() function
appropriately.
Pranav Batra [Wed, 28 Oct 2020 04:14:16 +0000 (04:14 +0000)]
Fix handling of the output-bin and print-quality IPP attributes
The PPD generation code now works for printers that support a single
output bin. Also the PPD parsing code now parses the cupsPrintQuality
field which is generated by the PPD generation code.
Till Kamppeter [Mon, 12 Oct 2020 20:36:35 +0000 (22:36 +0200)]
Resolve DNS-SD URIs correctly also if they are from a service from localhost
If a service is only available locally, through the loopback device
("lo", "localhost"), like for example the IPP-over-USB daemon ipp-usb
or a Printer Application which is not sharing printers to the network,
the service cannot be accessed through the network host name but only
through the host name "localhost".
To make CUPS' DNS-SD-service-name-based device URIs working also with
these services we check whether the service comes through the loopback
interface and in this case we set the host name in the resolved
standard device URI to "localhost".
Michael R Sweet [Wed, 7 Oct 2020 20:37:52 +0000 (16:37 -0400)]
Fix default hostname on macOS - current versions of macOS use new ".lan" domain
for mDNS instead of ".local", which causes the IPP Everywhere self-certification
tests to fail.
cups/dests.c: cupsGetNamedDest() - set IPP_STATUS_ERROR_NOT_FOUND error if queue was not found
lp.c/lpr.c: check for IPP_STATUS_ERROR_NOT_FOUND and generate a proper message if hit
Michael R Sweet [Sat, 5 Sep 2020 16:30:21 +0000 (12:30 -0400)]
Merge ippeveprinter changes:
- IPP conformance issues with Create-Job, Send-Document, and Send-URI
- DNS-SD name collision changes
- Use FQDN with Avahi
- Multiple printer icon support
- Support Get-Printer-Attributes on "/"
- Rewrite URIs using Host: field
- Create the printer-uuid value using a deterministic algorithm
- Add "-S" option to define strings file
- Use system sounds on macOS for Identify-Printer
- Add Cancel-My-Jobs support
- Add "finishings-col" support
- Compiler warning fixes
Sean Kau [Wed, 4 Dec 2019 18:19:18 +0000 (10:19 -0800)]
Off by one error in ipp_finishings_vendor
When enumvalue is 101 and attrname is "finsishings-supported"
we were getting the memory after ipp_finishings_vendor
in the ipp_job_collation_types array.