From 36006d92509d93de807b4b6298d96165181b33a9 Mon Sep 17 00:00:00 2001 From: Zdenek Dohnal Date: Thu, 19 Dec 2024 12:55:53 +0100 Subject: [PATCH] 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. --- CHANGES.md | 2 ++ cups/dest.c | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index 5d3c7eae0..305c71d7a 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 f0067100a..a69f8dc84 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);