Comments (10)
RFC 2911 says that, not 2910. The problem is the citation. RFC 8011 (replaced RFC 2911) section 4.1.3 is where the citation lives:
The attributes within a group MUST be unique; if an attribute with
the same name occurs more than once, the group is malformed. Clients
MUST NOT submit such malformed requests, and Printers MUST NOT return
such malformed responses. If such a malformed request is submitted
to a Printer, the Printer MUST either (1) reject the request with the
’client-error-bad-request’ status-code (RECOMMENDED -- see
Appendix B.1.4.1) or (2) process the request normally after selecting
only one of the attribute instances, depending on implementation.
Which attribute is selected when there are duplicate attributes
depends on implementation. The IPP Printer MUST NOT use the values
from more than one such duplicate attribute instance.
from jipp.
Even the IPP reference implementation CUPS sometimes responds with duplicate attributes. So resilience for this issue is highly recommended. Adding the attribute again sounds okay to me.
from jipp.
Yep, but
The attributes within a group MUST be unique; if an attribute with
the same name occurs more than once, the group is malformed. Clients
MUST NOT submit such malformed requests, and Printers MUST NOT return
such malformed responses. If such a malformed request is submitted
to a Printer, the Printer MUST either (1) reject the request with the
'client-error-bad-request' status-code (RECOMMENDED -- see
Appendix B.1.4.1) or (2) process the request normally after selecting
only one of the attribute instances, depending on implementation.
Which attribute is selected when there are duplicate attributes
depends on implementation. The IPP Printer MUST NOT use the values
from more than one such duplicate attribute instance.
Thats what i need:
(2) process the request normally after selecting
only one of the attribute instances, depending on implementation.
Which attribute is selected when there are duplicate attributes
depends on implementation
from jipp.
Agree.
Even the IPP reference implementation CUPS sometimes responds with duplicate attributes. So resilience for this issue is highly recommended. Adding the attribute again sounds okay to me.
Agree, i had to edit that lib and rebuild it to be able to use w/ cups correctly.
from jipp.
Alternatively you could use this CupsClient which supports already some additional CUPS operations (e.g. job subscriptions and printer setup)
from jipp.
No, this lib is fine. I made for me an IPP server using vert.x and this lib.
So the issue i described here i faced during debug.
from jipp.
So, how about contributing to the IPP community your IPP server?
from jipp.
So, how about contributing to the IPP community your IPP server?
i need to make it nice and remove shitcode from :)
thats for debug purposes. Works for win (spooler) & linux (cups), but i need to read more docs to make it nice and customisable.
The advantage to use vertx it's cause it's small, fast, reactive & IPP use simple http/https. So vertx is a core and it have simple flow (which use kind of my "lib" which use that lib).
Project is on Java (i don't code on kotlin).
from jipp.
Analyzed RFC8011 section 4.1.3
The attributes within a group MUST be unique; if an attribute with the same name occurs more than once, the group is malformed. Clients MUST NOT submit such malformed requests, and Printers MUST NOT return such malformed responses. If such a malformed request is submitted to a Printer, the Printer MUST either (1) reject the request with the 'client-error-bad-request' status-code (RECOMMENDED -- see [Appendix B.1.4.1](https://www.rfc-editor.org/rfc/rfc8011.html#appendix-B.1.4.1)) or (2) process the request normally after selecting only one of the attribute instances, depending on implementation. Which attribute is selected when there are duplicate attributes depends on implementation. The IPP Printer MUST NOT use the values from more than one such duplicate attribute #instance.
with above comments in consideration, we are reconsidering the logic.
from jipp.
This is taken care and available in the latest release. Hence closing.
from jipp.
Related Issues (20)
- Fix genType script to handle IPP registration xml released on 2022-11-28 HOT 3
- overrides appears to be ignored HOT 3
- Adding utility methods HOT 1
- How to add 'PageOrderReceived' job attribute? HOT 2
- Roam encountered an issue while parsing response of a create-job request HOT 2
- Collect data for JIPP release HOT 1
- Spike: Look into better test framework for JIPP HOT 1
- How to set IppPacket version number in Java HOT 1
- Validating IppPacket
- Serializing and Deserializing IppPacket to JSON using Jackson mapper HOT 1
- what's the magic numbers in the render sample
- Kotlin lib upgrade HOT 1
- How to add custom types/attributes to a group for GetPrinterAttributes? HOT 1
- EOF exception during load test
- LaserJet Enterprise M407[client-error-bad-request] HOT 4
- PWG decoder fails with monochrome pwg from windows 11 (112dpi, custom page size)
- DPI pdf page size
- Address changes in IPP registrations release 2023-11-27
- Sending a print job but the page is blank HOT 8
- Update copyright information in model files
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from jipp.