         MODULE=ipp-usb
        VERSION=0.9.33
         SOURCE=$MODULE-$VERSION.tar.gz
SOURCE_URL_FULL=https://github.com/OpenPrinting/ipp-usb/archive/${VERSION}.tar.gz
     SOURCE_VFY=sha256:bafefb6069f6eebb50164fc9714a806ff59549ec5ed66c97add6d5b69f8b089a
       WEB_SITE=https://github.com/OpenPrinting/ipp-usb/
        ENTERED=20201006
        UPDATED=20260514
          SHORT="Allows using the IPP protocol by USB printers"

cat << EOF
IPP-over-USB allows using the IPP protocol, normally designed for network
printers, to be used with USB printers as well.
The idea behind this standard is simple: It allows to send HTTP requests to the
device via a USB connection, so enabling IPP, eSCL (AirScan) and web console on
devices without Ethernet or WiFi connections.
Unfortunately, the naive implementation, which simply relays a TCP connection
to USB, does not work. It happens because closing the TCP connection on the
client side has a useful side effect of discarding all data sent to this
connection from the server side, but it does not happen with USB connections.
In the case of USB, all data not received by the client will remain in the USB
buffers, and the next time the client connects to the device, it will receive
unexpected data, left from the previous abnormally completed request.
Actually, it is an obvious flaw in the IPP-over-USB standard, but we have to
live with it.
So the implementation, once the HTTP request is sent, must read the entire HTTP
response, which means that the implementation must understand the HTTP protocol,
and effectively implement a HTTP reverse proxy, backed by the IPP-over-USB
connection to the device.
EOF
