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.