[cups-devel] cupsEnumDests(): Does it distinguish between IPP printers which are driverless-capable and which are not, and how?

Till Kamppeter till.kamppeter at gmail.com
Tue May 16 10:20:00 PDT 2017


Hi,

mentoring GSoC students on new interfaces between printers and print 
dialogs I have done some testing with the cupsEnumDests() function and 
found out that it also lists IPP printers in the network, discovered via 
DNS-SD, for which there is no CUPS queue set up.

I have also found out that only the printers which support driverless 
printing are listed. So my HP DeskJet Ink Advantage 2540 is listed, also 
my HP Officejet Pro 8500 A910, both supporting Apple AirPrint (IPP 2.x + 
Apple Raster), but my HP Color LaserJet CM3530 MFP is not listed. It is 
AFAIK only IPP 1.x and it does not advertise any of the driverless 
printing PDLs PWG Raster, Apple Raster, or PDF in its DNS-SD record.

Now I want to know about this mechanism. Which printers does 
cupsEnumDests() exactly list and how does it find out whether to list or 
not to list a given printer?

Does it also mean that I can print to any printer which cupsEnumDests() 
lists and CUPS will for sure create a temporary print queue for 
driverless printing?

I have also already seen a problem:

I run cupsEnumDests(), get a list, select a DNS-SD discovered IPP 
printer, print on it, then run cupsEnumDests() again, and now I get two 
entries for this printer, one for the discovered printer and another for 
the auto-generated, temporary CUPS queue. Is there a way to suppress 
this, as it would irritate the user. Or should I file a bug on this?

    Till


More information about the cups-devel mailing list