From: Zdenek Dohnal Date: Thu, 19 Dec 2024 11:55:53 +0000 (+0100) Subject: libcups: Don't overwrite permanent queue with network during discovery X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=36006d92509d93de807b4b6298d96165181b33a9;p=thirdparty%2Fcups.git libcups: Don't overwrite permanent queue with network during discovery Currently, if there is a permanent queue of the same name as network discovered printer, the network one is written in `lpstat -l -e` output. This is confusing to users and maintainers, because if print job is sent, it comes to the permanent one instead of listed network/temporary, which can have a different connection or PPD. This behavior happens when user creates manually a queue with the same name as the temporary one, or when the permanent queue is created by cups-browsed. In both cases user realizes he prints into a different queue once he enables debugging and see printer-uri in logs. --- diff --git a/CHANGES.md b/CHANGES.md index 5d3c7eae05..305c71d7a0 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -126,6 +126,8 @@ Changes in CUPS v2.5b1 (YYYY-MM-DD) - Fixed error handling when reading a mixed `1setOf` attribute. - Fixed how `ippeveprinter` responds to an unsupported request character set. - Fixed a recursion issue in `ippReadIO`. +- Fixed verbose listing of `lpstat -l -e` when permanent queue has the same name + as network discovered. - Removed hash support for SHA2-512-224 and SHA2-512-256. - Removed `mantohtml` script for generating html pages (use `https://www.msweet.org/mantohtml/`) diff --git a/cups/dest.c b/cups/dest.c index f0067100a6..a69f8dc848 100644 --- a/cups/dest.c +++ b/cups/dest.c @@ -3529,10 +3529,10 @@ cups_get_cb(_cups_getdata_t *data, // I - Data from cupsGetDests data->num_dests = cupsRemoveDest(dest->name, dest->instance, data->num_dests, &data->dests); } - else + else if (!cupsGetDest(dest->name, dest->instance, data->num_dests, data->dests)) { /* - * Add destination to array... + * Add destination to array if not already present... */ data->num_dests = cupsCopyDest(dest, data->num_dests, &data->dests);