All of lore.kernel.org
 help / color / mirror / Atom feed
From: Brian Norris <computersforpeace@gmail.com>
To: printing-architecture@lists.linux-foundation.org
Cc: till.kamppeter@gmail.com
Subject: Re: [Printing-architecture] [cups-filters] using cups-browsed for DNS-SD/IPP discovery
Date: Mon, 11 Apr 2016 09:51:43 -0700	[thread overview]
Message-ID: <20160411165143.GA15308@localhost> (raw)
In-Reply-To: <20160322204034.GA96488@google.com>

Ping? Should I just file a bug for these sort of questions?

On Tue, Mar 22, 2016 at 01:40:34PM -0700, Brian Norris wrote:
> Hi,
> 
> I'm looking at the features of cups-browsed to see if I would want to
> use it for my purposes, and I ran across a really confusing piece of
> logic in the source code:
> 
>     if (!pdl || pdl[0] == '\0' ||
>         (!strcasestr(pdl, "application/postscript") &&
>          !strcasestr(pdl, "application/pdf") &&
>          !strcasestr(pdl, "image/pwg-raster") &&
>          ((!strcasestr(pdl, "application/vnd.hp-PCL") &&
>            !strcasestr(pdl, "application/PCL") &&
>            !strcasestr(pdl, "application/x-pcl")) ||
>           ((strncasecmp(make_model, "HP", 2) ||
>             strncasecmp(make_model, "Hewlett Packard", 15) ||
>             strncasecmp(make_model, "Hewlett-Packard", 15)) &&
>            !strcasestr(make_model, "LaserJet") &&
>            !strcasestr(make_model, "Mopier"))) &&
>          !strcasestr(pdl, "application/vnd.hp-PCLXL"))) {
>       debug_printf("cups-browsed: Cannot create remote printer %s (%s) as its PDLs are not known, ignoring this printer.\n",
>                    p->name, p->uri);
>       goto fail;
>     }
> 
> First of all, can anyone explain exactly what the block about HP is
> really supposed to be doing? I can't honestly figure it out.
> 
> But at any rate, I don't see how it could be correct. Particularly, this
> clause is always true (at most one of the comparisons will return 0), so
> why is it there?
> 
>            (strncasecmp(make_model, "HP", 2) ||
>             strncasecmp(make_model, "Hewlett Packard", 15) ||
>             strncasecmp(make_model, "Hewlett-Packard", 15))
> 
> Seems like at a minimum, this block should be corrected to actually
> produce the status of "is this an HP model." e.g., does the following
> diff make sense?
> 
> === modified file 'utils/cups-browsed.c'
> --- utils/cups-browsed.c	2016-02-10 14:18:28 +0000
> +++ utils/cups-browsed.c	2016-03-22 20:25:19 +0000
> @@ -2784,8 +2784,8 @@
>  	 ((!strcasestr(pdl, "application/vnd.hp-PCL") &&
>  	   !strcasestr(pdl, "application/PCL") &&
>  	   !strcasestr(pdl, "application/x-pcl")) ||
> -	  ((strncasecmp(make_model, "HP", 2) ||
> -	    strncasecmp(make_model, "Hewlett Packard", 15) ||
> +	  ((strncasecmp(make_model, "HP", 2) &&
> +	    strncasecmp(make_model, "Hewlett Packard", 15) &&
>  	    strncasecmp(make_model, "Hewlett-Packard", 15)) &&
>  	   !strcasestr(make_model, "LaserJet") &&
>  	   !strcasestr(make_model, "Mopier"))) &&
> 
> But I still don't feel like that's really what's intended, so an answer
> to my first question would be the most helpful.
> 
> Now, besides the correctness of this logic, is this aspect of the daemon
> something that people regularly use? I see that it's installed on many
> Linux distributions, but it seems like it isn't really exercised for
> Bonjour/DNS-SD discovery unless someone modifies the default
> cups-browsed.conf to have 'CreateIPPPrinterQueues Yes'.
> 
> Regards,
> Brian

  reply	other threads:[~2016-04-11 16:51 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-03-22 20:40 [Printing-architecture] [cups-filters] using cups-browsed for DNS-SD/IPP discovery Brian Norris
2016-04-11 16:51 ` Brian Norris [this message]
2016-04-11 18:04   ` Ira McDonald

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20160411165143.GA15308@localhost \
    --to=computersforpeace@gmail.com \
    --cc=printing-architecture@lists.linux-foundation.org \
    --cc=till.kamppeter@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.