Hi Till, Le dimanche, 5 janvier 2014, 13.12:31 Till Kamppeter a écrit : > On 01/05/2014 12:45 PM, Didier 'OdyX' Raboud wrote: > > Your proposed patch is functionally equivalent to disabling the > > get-ppd- file-for-statically-configured-ipp-shared-queues.patch , > > which was introduced in 1.6.1-1 as a backport from upstream's fix > > for http://cups.org/str.php?L4178 > > > > Till, as you wrote this patch, what do you think about this? > > > > Apparently, http://cups.org/str.php?L4159 was related to this > > problem > > and got solved differently in 1.6.2, and now cups/util.c appears to > > be redundant around this codeblock. > > > > Till, can we remove this patch on all versions > 1.6.2 ? > > Important is to check whether if you create a raw IPP queue pointing > to a CUPS queue on a remote server that you get access to the options > on the client (means that the client loads the PPD from the server). > Please test this.
Actually, what I'm saying is that the patch adds a redundant block. See the attached abstract from util.c. In my reading, lines 26 to 41 (added by the patch) is redundant with lines 6 to 25 (upstream code). >From that, I tend to think the patch can be safely removed, no? Cheers, OdyX
if ((attr = ippFindAttribute(response, "device-uri",
IPP_TAG_URI)) != NULL)
device_uri = attr->values[0].string.text;
if (device_uri &&
(!strncmp(device_uri, "ipp://", 6) ||
!strncmp(device_uri, "ipps://", 7) ||
((strstr(device_uri, "._ipp.") != NULL ||
strstr(device_uri, "._ipps.") != NULL) &&
!strcmp(device_uri + strlen(device_uri) - 5, "/cups"))))
{
/*
* Statically-configured shared printer.
*/
httpSeparateURI(HTTP_URI_CODING_ALL,
_httpResolveURI(device_uri, uri, sizeof(uri),
_HTTP_RESOLVE_DEFAULT, NULL, NULL),
scheme, sizeof(scheme), username, sizeof(username),
host, hostsize, port, resource, resourcesize);
ippDelete(response);
return (1);
}
else if (device_uri &&
(!strncmp(device_uri, "ipp:", 4) != NULL ||
!strncmp(device_uri, "ipps:", 5) != NULL))
{
/*
* Statically-configured IPP shared printer.
*/
httpSeparateURI(HTTP_URI_CODING_ALL,
device_uri,
scheme, sizeof(scheme), username, sizeof(username),
host, hostsize, port, resource, resourcesize);
ippDelete(response);
return (1);
}
else if ((attr = ippFindAttribute(response, "member-uris",
IPP_TAG_URI)) != NULL)
{
/*
* Get the first actual printer name in the class...
*/
for (i = 0; i < attr->num_values; i ++)
{
httpSeparateURI(HTTP_URI_CODING_ALL, attr->values[i].string.text,
scheme, sizeof(scheme), username, sizeof(username),
host, hostsize, port, resource, resourcesize);
if (!strncmp(resource, "/printers/", 10))
{
signature.asc
Description: This is a digitally signed message part.
